1С:Предприятие 8.2 /
Разработчикам /
Разработка пользовательских интерфейсов
Правила создания модулей форм
1. В модуле формы размещаются процедуры и функции, которые необходимы только для реализации логики работы этой формы и исполняются в контексте этой формы.
1.1. Не следует размещать экспортные процедуры и функции в модулях форм. Для реализации экспортных процедур и функций рекомендуется использовать модули объектов, модули менеджеров объектов или общие модули.
1.2. Неправильно использовать экспортные процедуры и функции формы для параметризации формы при открытии. Например, неправильно:
Форма = ПолучитьФорму("ОбщаяФорма.МояФорма"); Форма.Открыть(); Форма.УстановитьПараметрСПомощьюЭтойЭкспортнойФункции(РежимРаботы);
правильно:
ПараметрыФормы = Новый Структура("РежимРаботы", РежимРаботы) ОткрытьФорму("ОбщаяФорма.МояФорма", ПараметрыФормы)
См. также: Открытие форм
1.3. Также не следует вызывать экспортные процедуры и функции модуля формы для обновления данных формы или для программной перерисовки формы в результате действий пользователя в других формах. В этом случае следует использовать метод глобального контекста Оповестить, методы формы ОповеститьОЗаписиНового, ОповеститьОбАктивизации и ОповеститьОВыборе.
1.4. Исключения из этого правила возможны в отдельных, обоснованных случаях. В частности, к ним относятся:
- экспортная процедура УстановитьПараметрыИспользования при использовании методики кеширования часто используемых форм;
- экспортные процедуры и функции, необходимые для автоматического тестирования логики работы форм. Такие функции должны иметь префикс «АвтоТест_».
Пример имени процедуры: АвтоТест_ПодборНоменклатуры; - экспортные процедуры-обработчики оповещений (ОписаниеОповещения.ИмяПроцедуры).
2. В некоторых случаях в модуле формы возникает необходимость реализации процедур и функций, которые выполняются как на стороне клиента, так и на сервере. Например, для обновления данных формы из серверного обработчика ПриСозданииНаСервере и из клиентских событий ПриИзменении.
Для того чтобы избежать дублирования кода, такие процедуры и функции необходимо размещать в модуле формы с директивой компиляции &НаКлиентеНаСервереБезКонтекста и передавать в них контекст самостоятельно в виде параметра. В качестве контекста может выступать либо сама форма (УправляемаяФорма), либо ее реквизит (ДанныеФормыСтруктура).
Пример:
&НаСервере Процедура ПриСозданииНаСервере() УстановитьДоступность(ЭтаФорма); КонецПроцедуры &НаКлиенте Процедура РазрешитьРедактированиеСуммыПриИзменении(Элемент) УстановитьДоступность(ЭтаФорма); КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Процедура УстановитьДоступность(Форма) Форма.Элементы.ТоварыСумма.Доступность = Форма.Объект.РазрешитьРедактированиеСуммы; КонецПроцедуры
См. также
Другие материалы по теме:
конфигурирование
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Разработка пользовательских интерфейсов
Другие материалы по теме:
Графики для регистров расчета с поддержкой периода действия и особенности их конфигурирования
Нас находят: получитьформу описаниеоповещения, ОповеститьОЗаписиНового 1с, Правила создания общих модулей, правила создания модулей, ОповеститьОЗаписиНового, описаниеоповещения передаче форме, объект в ДанныеФормыСтруктура пример, НаКлиентеНаСервереБезКонтекста, 1с чем плохи экспортные процедуры
Мы на Facebook