Правила створення модулів форм
1. У модулі форми розміщуються процедури та функції, які необхідні лише для реалізації логіки роботи цієї форми та виконуються в контексті цієї форми.Див. також
1. У модулі форми розміщуються процедури та функції, які необхідні лише для реалізації логіки роботи цієї форми та виконуються в контексті цієї форми.
1.1. Не слід розміщувати експортні процедури та функції в модулях форм. Для реалізації експортних процедур і функцій рекомендується використовувати модулі об'єктів, модулі менеджерів об'єктів або загальні модулі.
1.2. Неправильно використовувати експортні процедури та функції форми для параметризації форми під час відкриття. Наприклад, неправильно:
Форма = ОтриматиФорму("ЗагальнаФорма.МояФорма"); Форма.Відкрити(); Форма.ВстановитиПараметрЗаДопомогоюЦієїЕкспортноїФункції(РежимРоботи);
правильно:
ПараметриФорми = Новий Структура("РежимРоботи", РежимРоботи) ВідкритиФорму("ЗагальнаФорма.МояФорма", ПараметриФорми)
Див. також: Відкриття форм
1.3. Також не слід викликати експортні процедури та функції модуля форми для оновлення даних форми або для програмного перемальовування форми в результаті дій користувача в інших формах. У цьому разі слід використовувати метод глобального контексту Сповістити, методи форми СповіститиПроЗаписНового, СповіститиПроАктивізацію і СповіститиПроВибір.
1.4. Винятки з цього правила можливі в окремих, обґрунтованих випадках. Зокрема, до них належать:
- експортна процедура ВстановитиПараметриВикористання під час використання методики кешування часто використовуваних форм;
- експортні процедури та функції, необхідні для автоматичного тестування логіки роботи форм. Такі функції повинні мати префікс «АвтоТест_».
Приклад імені процедури: АвтоТест_ПідбірНоменклатури; - експортні процедури-обробники сповіщень (ОписСповіщення.Ім'яПроцедури).
2. У деяких випадках у модулі форми виникає необхідність реалізації процедур і функцій, які виконуються як на боці клієнта, так і на сервері. Наприклад, для оновлення даних форми із серверного обробника ПідЧасСтворенняНаСервері і з клієнтських подій ПідЧасЗміни.
Щоб уникнути дублювання коду, такі процедури та функції необхідно розміщувати в модулі форми з директивою компіляції &НаКлієнтіНаСерверіБезКонтексту і передавати до них контекст самостійно у вигляді параметра. Як контекст може виступати або сама форма (КерованаФорма), або її реквізит (ДаніФормиСтруктура).
Приклад:
&НаСервері Процедура ПідЧасСтворенняНаСервері() ВстановитиДоступність(ЦяФорма); КінецьПроцедури &НаКлієнті Процедура ДозволитиРедагуванняСумиПідЧасЗміни(Елемент) ВстановитиДоступність(ЦяФорма); КінецьПроцедури &НаКлієнтіНаСерверіБезКонтексту Процедура ВстановитиДоступність(Форма) Форма.Елементи.ТовариСума.Доступність = Форма.Об'єкт.ДозволитиРедагуванняСуми; КінецьПроцедури
Див. також
-
Структура модуля
-
Контекстне та позаконтекстне передавання керування на сервер