Довідковий матеріал

Правила створення модулів форм

1. У модулі форми розміщуються процедури та функції, які необхідні лише для реалізації логіки роботи цієї форми та виконуються в контексті цієї форми.Див. також

Редакційна сцена з центральною формою та чітко розділеними локальними й загальними модулями, поєднаними прозорими зв’язками між клієнтським і серверним рівнями.

Див. також

 

1. У модулі форми розміщуються процедури та функції, які необхідні лише для реалізації логіки роботи цієї форми та виконуються в контексті цієї форми.

1.1. Не слід розміщувати експортні процедури та функції в модулях форм. Для реалізації експортних процедур і функцій рекомендується використовувати модулі об'єктів, модулі менеджерів об'єктів або загальні модулі.

1.2. Неправильно використовувати експортні процедури та функції форми для параметризації форми під час відкриття. Наприклад, неправильно:

Форма = ОтриматиФорму("ЗагальнаФорма.МояФорма");
Форма.Відкрити();
Форма.ВстановитиПараметрЗаДопомогоюЦієїЕкспортноїФункції(РежимРоботи);

правильно:

ПараметриФорми = Новий Структура("РежимРоботи", РежимРоботи)
ВідкритиФорму("ЗагальнаФорма.МояФорма", ПараметриФорми)

Див. також: Відкриття форм

1.3. Також не слід викликати експортні процедури та функції модуля форми для оновлення даних форми або для програмного перемальовування форми в результаті дій користувача в інших формах. У цьому разі слід використовувати метод глобального контексту Сповістити, методи форми СповіститиПроЗаписНового, СповіститиПроАктивізацію і СповіститиПроВибір.

1.4. Винятки з цього правила можливі в окремих, обґрунтованих випадках. Зокрема, до них належать:

  • експортна процедура ВстановитиПараметриВикористання під час використання методики кешування часто використовуваних форм;
  • експортні процедури та функції, необхідні для автоматичного тестування логіки роботи форм. Такі функції повинні мати префікс «АвтоТест_».
    Приклад імені процедури: АвтоТест_ПідбірНоменклатури;
  • експортні процедури-обробники сповіщень (ОписСповіщення.Ім'яПроцедури).

2. У деяких випадках у модулі форми виникає необхідність реалізації процедур і функцій, які виконуються як на боці клієнта, так і на сервері. Наприклад, для оновлення даних форми із серверного обробника ПідЧасСтворенняНаСервері і з клієнтських подій ПідЧасЗміни.

Щоб уникнути дублювання коду, такі процедури та функції необхідно розміщувати в модулі форми з директивою компіляції &НаКлієнтіНаСерверіБезКонтексту і передавати до них контекст самостійно у вигляді параметра. Як контекст може виступати або сама форма (КерованаФорма), або її реквізит (ДаніФормиСтруктура).

Приклад:

&НаСервері
Процедура ПідЧасСтворенняНаСервері()
	ВстановитиДоступність(ЦяФорма);
КінецьПроцедури

&НаКлієнті
Процедура ДозволитиРедагуванняСумиПідЧасЗміни(Елемент)
	ВстановитиДоступність(ЦяФорма);
КінецьПроцедури

&НаКлієнтіНаСерверіБезКонтексту
Процедура ВстановитиДоступність(Форма)
	Форма.Елементи.ТовариСума.Доступність = Форма.Об'єкт.ДозволитиРедагуванняСуми;
КінецьПроцедури

Див. також

  • Структура модуля
  • Контекстне та позаконтекстне передавання керування на сервер
Записатися телефоном