#std404¶
Открытие форм¶
1.¶
Для открытия форм используйте метод ОткрытьФорму.
(В проектах на платформе 1С:Предприятие 8.2 и ниже ОткрытьФормуМодально).
Не рекомендуется открывать форму через ПолучитьФорму с последующим вызовом Открыть()/ОткрытьМодально().
Причины:
- меньше зависимость вызывающего кода от внутреннего устройства формы;
- единая стилистика кода;
- гарантированная серверная инициализация в
ПриСозданииНаСервере.
2.¶
Если форма требует параметризации при открытии, передавайте все параметры через набор параметров формы.
Так набор параметров декларативно описывает поддерживаемые сценарии открытия. Вызывающий код передает только то, что объявлено в параметрах формы.
3.¶
Не используйте альтернативные способы параметризации формы при открытии. Избегайте обращения к свойствам и элементам формы сразу после ее открытия.
Неправильно
Правильно
4.¶
Результат работы формы получайте через обработчики оповещений. Не читайте реквизиты формы напрямую после закрытия.
Неправильно
Правильно
Обработчик = Новый ОписаниеОповещения("ПослеЗакрытияФормы", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ФормаВопроса", , , , , Обработчик, РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
&НаКлиенте
Процедура ПослеЗакрытияФормы(БольшеНеПоказыватьНапоминание, Параметры) Экспорт
Если БольшеНеПоказыватьНапоминание = Неопределено Тогда
Возврат;
КонецЕсли;
Если БольшеНеПоказыватьНапоминание Тогда
// ...
КонецЕсли;
КонецПроцедуры
Возвращаемое значение формы формируйте в модуле формы методом Закрыть().
5.¶
Дополнительные ограничения:
- в
ПриОткрытиине открывайте другие формы, чтобы не нарушать порядок отображения окон; - не открывайте и не закрывайте форму в одном обработчике, такие действия разносите по времени;
- если в конфигурации используется БСП и форма предназначена только для внешних пользователей, явно блокируйте ее открытие для обычных пользователей.
Пример
6.¶
Следующие виды форм должны быть доступны пользователю в режиме 1С:Предприятие из меню Все функции, даже если объект не выведен в командный интерфейс:
- основная форма списка (для всех объектов);
- основная форма обработки;
- основная форма отчета.
См. также¶
- #std741: Открытие параметризированных форм
- #std544: Ограничение на использование экспортных процедур и функций