1с проверить что форма открыта

v8: как проверить программно что форма уже была открыта?!

ProfforG 16.11.2011 19:31
Прочитано: 13965
00
у меня некоторые Элементы на форме имеют закрытый доступ или видимость. при повторном открытии мне нужно проверить форма открыта повторно или нет?! как условие будет выглядеть?!

ПриПовторномОткрытии()
Если ЭтаФорма. = Истино Тогда
//
//выставляю все доступы элементов и видимость как мне надо
//
КонецЕсли;
КонецПроцедуры

Yandex
Возможно, вас также заинтересует
rekl150103

если форма документа(ранее созданного) открывается повторно, то тогда (пишу необходимый обработчик)

а вот почему мне нужна такая проверка при повторном открытии формы документа:

у меня видимость к некоторым полям стоит изначально закрытая. при заполнении одного поля открывается другое, оно заполняется соответственно. провожу документ. закрываю его. потом пытаюсь документ к примеру изменить или добавляю копированием или просто открываю его, открывается форма, и те реквизиты которые заполнены, у них видимость = ложь, а мне надо чтобы видимость = истина была.

в обработчике ПриПОвторном открытии будет так:

Если (форма документа открыта повторно?! )=да тогда
реквизиты.видимость = истина

Источник

Открытие форм

Область применения: управляемое приложение, мобильное приложение.

Рекомендация обусловлена соображениями

2. В случаях когда форма требует параметризации при открытии, все ее параметры следует указывать в наборе параметров формы. Таким образом, набор параметров формы декларативно описывает возможности формы по ее параметризации.

Параметры формы из этого набора могут быть указаны в вызывающем коде при открытии формы ( ОткрытьФорму ).

3. Не следует применять другие способы параметризации формы при открытии. Например, нужно избегать обращения к методам и свойствам формы после ее открытия.
Например, вместо

ФормаПутеводитель = Форма.ОткрытьФорму(«ОбщаяФорма.ПутеводительПоСистеме»);
ФормаПутеводитель.Элементы.ГруппаШаг.ТекущаяСтраница = ФормаПутеводитель.Элементы.ГруппаШаг.Страницы.Приветствие;

следует по той же причине использовать параметры формы:

ОткрытьФорму(«ОбщаяФорма.ПутеводительПоСистеме», Новый Структура(«РежимОткрытия», «Приветствие»));

4. Для получения результата работы формы, вместо непосредственного обращения к элементам и реквизитам формы

ФормаВопроса = ПолучитьФорму(«ОбщаяФорма.ФормаВопроса»);
ФормаВопроса.ОткрытьМодально();
Если ФормаВопроса.БольшеНеПоказыватьНапоминание Тогда
// …

следует использовать процедуры-обработчики оповещений, которые будут вызваны при завершении работы пользователя с формой:

Оповещение = Новый ОписаниеОповещения(«БольшеНеПоказыватьНапоминаниеЗавершение», ЭтотОбъект);
ОткрытьФорму(«ОбщаяФорма.ФормаВопроса». Оповещение, РежимОткрытияОкнаФормы.БлокироватьВеcьИнтерфейс);
.

&НаКлиенте
Процедура БольшеНеПоказыватьНапоминаниеЗавершение(БольшеНеПоказыватьНапоминание, Параметры) Экспорт

Если БольшеНеПоказыватьНапоминание = Неопределено Тогда
Возврат;
КонецЕсли;

Если БольшеНеПоказыватьНапоминание Тогда
// …

5. Другие ограничения:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Не ПользователиКлиентСервер.ЭтоСеансВнешнегоПользователя() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;

КонецПроцедуры

6. Следующие виды форм должны быть всегда доступны пользователю в режиме 1С:Предприятия из меню «Все функции» вне зависимости от того, размещены ли соответствующие объекты в командном интерфейсе приложения или нет:

Источник

Узнать, открыта ли форма документа

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как узнать, открыта ли форма каким-то пользователем?
Добрый день! Ситуация такова: в сетевой базе 1С 8.1 (сервер 1С 8.1) есть обработка, которая по.

Как узнать открыта ли определенная форма
Есть две формы. На ВТОРОЙ форме определенные действия должны происходить ТОЛЬКО в том случае, если.

Как узнать какая форма открыта?
Допустим у меня в программе 10 форм Form1, Form2 и т.д. и например открыты 1, 3, 6, 8 формы, как.

Сразу возникает вопрос: а зачем?

А если эта форма открыта у другого пользователя на другом компьютере, то узнать об этом будет невозможно.

Ну если спрашиваю, значит нужно.
Если прям очень интересно, то инвентаризация проводится долго, а документами, которые могут висеть открытыми пользуются многие. Если они у кого-то долго будут висеть открытыми, то другие не смогут их редактировать.

Другие пользователи мне не нужны. Нужно узнать, открыта ли у текущего пользователя.

tickУзнать с какой формы открыта текущая форма
Нужно узнать с какой формы, был осуществлен переход на текущую форму. т.е. что то типа Sender, но.

Как узнать, с какой формы открыта форма, активная сейчас
есть 3 формы Form1, Form2, Form3 На этих формах есть кнопка Adotable1.Append;.

Как узнать, с какой формы была открыта (Form*.ShowModal:) текущая форма
Доброго всем времени суток! Помогите, пожалуйста решить одну задачку: Проект для расчёта времени.

Как узнать, форма открыта для добавления записи или для изменения существующей?
всем привет! собственно вопрос в том и заключается: как узнать форма открыта для добавления записи.

Проверить, открыта ли форма?
Люди добрые, как проверить, открыта ли форма?

Источник

Как получить список открытых окон 1С

В 1С есть возможность перебрать все открытые окна и проанализировать их содержимое. Рассмотрим работу с открытыми окнами на примере.

Ниже представлен код для решения поставленной задачи:

При нахождении нужного заголовка происходит получение управляемой формы и анализ реквизита «Контрагент». Если контрагент пустой, то текущее окно активизируется методом Активизировать () и выполнение процедуры прекращается.

Остались вопросы?
Спросите в комментариях к статье.

2 комментария

Здравствуйте, при написании этого кода:
Процедура СохранитьДанныеКлиенскогоПриложения()
Окна = ПолучитьОкна();
Для каждого Окно Из Окна Цикл
Формы = Окно.Содержимое;
Для каждого Форма из Формы Цикл
Если Форма.Модифицировать Тогда
Файл = Новый ЗаписьXML
ФАйл.ОткрытьФайл0(«D:/Working»+Форма,ИмяФормы».xml»);
СериализаторXDTO.ЗаписатьXML(Файл,Форма.Объект);
Файл.Закрыть();
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

После уго запуска высвечивает ошибку:
Поле объекта не обнаружено (Содержимое)

Добрый день!
Возможно, Вы пробуете выполнить код в режиме обычного приложения. В этом случае метод ПолучитьОкна() возвращает значение Неопределено. Данный метод работает только в режиме управляемого приложения. К тому же, «Окно» — это зарезервированная переменная в режиме управляемого приложения, необходимо использовать другую переменную.

Источник

как узнаешь, что документ открыт именно для редактирования?

ЗЫ. почитай про блокировки

Форма осуществляет запись только поверх той версии объекта, из которой она открывалась. В твоем примере, насколько я понял:
1. Открывается форма версии 1.
2. Обработка читает из БД документ версии 1
3. Обработка изменяет и записывает документов. Ставится версия 2 у этого документа.
4. При попытке записать форму, система проверяет текущую версию в БД (она там будет уже за номером 2). Найдя расхождение, система ругается.
5.
6. ПРОФИТ!
7-Uho > что то никак с ней не разбирусь.
«ЗаблокироватьДанныеФормы:Для установки пессимистической блокировки»
Написал в Основную Форму
в процедуру Перед ОТкрытием
КлючУникальности = Новый УникальныйИдентификатор;
ЗаблокироватьДанныеДляРедактирования(ссылка,,КлючУ никальности);

Создаю новый документ, записываю его (не провожу) произвожу в нем после этого изменения

(4) Что за чушь? В данном применении, совершенно бредово сохранить отредактированное письмо, хотя отправлен был совершенно другой экземпляр. Опиши конкретную ситуацию, тогда и можно говорить. 10-med > в обработке используй

Попытка
ЗаблокироватьДанныеДляРедактирования()
Исключение

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с проверить существует ли реквизит формы
  • 1с проверить существование элемента формы