Каталог решений - Жизненный цикл управляемой формы. Шпаргалка разработчика

Жизненный цикл управляемой формы. Шпаргалка разработчика

Жизненный цикл управляемой формы. Шпаргалка разработчика

В наличии

Прочитав когда-то давно книжку «Разработка управляемых форм», составил для себя такую схемку-напоминалку для обращения в процессе разработки. С тех пор не раз выручала и избавляла от необходимости лезть в гуглы.

Категория:

Описание

 

Модуль формы (клиент)Модуль формы (сервер)Модуль объекта (сервер)

 

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

  

 

ПриЧтенииНаСервере()(1)

Только для существующего объекта. Подготовка доп.данных, зависящих от данных объекта. Объект — основной элемент открываемой формы; ТекущийОбъект — объект, прочитанный из БД (доступны экспортные методы объекта)

ОбработкаЗаполнения()(1)

Только для нового объекта. Начальное заполнение объекта данными. Доступны ДанныеЗаполнения (ссылка на объект-основание либо структура отбора). В случае "СтандартнаяОбработка = Истина", после обработки заполнения, обрабатываются сначала ДанныеЗаполнения, затем ЗначенияЗаполнения

 

ПриСозданииНаСервере()

Окончательная подготовка формы (ее представления) к открытию

 

ПриОткрытии()

Действия, связанные с открытием, которые на сервере выполнить невозможно; выполняемые тогда, когда форма наверняка открывается. Последний обработчик перед открытием, в котором можно отказаться от открытия

  

 

2. Запись объекта из формы

  

ПередЗаписью()

Анализ готовности вспомогательных данных для записи объекта

  
 

1. ОбработкаПроверкиЗаполненияНаСервере()

Проверка данных, не относящихся к объекту. Параметр ПроверяемыеРеквизиты содержит массив имен реквизитов формы

Механизм проверки заполнения(2)
  

2. ОбработкаПроверкиЗаполнения()

Всё, что относится к проверкам реквизитов основного объекта БД. Параметр ПроверяемыеРеквизиты содержит массив имен реквизитов объекта

 

ПередЗаписьюНаСервере()

Объект — основной реквизит формы объекта; ТекущийОбъект — объект, который реально будет записан в БД. Анализировать данные и дозаполнять реквизиты нужно через ТекущийОбъект, модификация Объекта ни к чему не приведет. Обработчик вызывается только при записи из формы

 
 Транзакция

ПередЗаписью()

Вызывается при любом способе записи. Данные объекта записываются в БД, но транзакция не закрывается

  

ПриЗаписи()

Выполняются действия над доп.данными, которые неразрывно связаны с основными данными объекта

 

ПриЗаписиНаСервере()

Предназначение аналогично ПриЗаписи(), но при обработке доп.данных можно использовать данные формы. ТекущийОбъект — данные, которые были записаны в БД, работать следует именно с ним; Объект — данные основного реквизита формы, которые были до записи, его модификация бесполезна. Если это запись нового объекта, то у Объект свойство Ссылка пустое, а у ТекущийОбъект уже заполнено

 
 

ПослеЗаписиНаСервере()

Действия над формой, которые выполняются только в том случае, когда объект гарантированно записан. ТекущийОбъект загружен в Объект, и теперь следует работать с Объектом, т.к. ТекущийОбъект будет уничтожен после обработчика. Но его можно использовать для вызова экспортных методов объекта

 

ПослеЗаписи()

Действия, которые невозможно выполнить на сервере, или требующие интерактивного взаимодействия с пользователем. Объект гарантированно записан

  

 

3. Закрытие формы

  

ПередЗакрытием()

Проверка, можно закрыть форму или нельзя. Если отключить стандартную обработку, то форма будет закрыта, независимо от модифицированности

  

ПриЗакрытии()

Выполняется, если форма 100% закрывается. На момент вызова пользователь форму уже не видит

  
   

Примечания:

1) Вызывается только один из двух обработчиков, в зависимости от того, записан объект в БД или создаётся новый;

2) Параметр Отказ нужен для отказа от записи объекта (не будет вызываться обработчик ПередЗаписьюНаСервере()). Чтобы отказаться от проверки заполнения, нужно очистить массив ПроверяемыеРеквизиты. При этом, если в обработчике [1] удалить из массива значение Объект, то обработчик [2] вызываться не будет. Если проверяемый реквизит привязан к функциональной опции, то при ее отключении заполнение реквизита проверяться не будет (имя отсутствует в массиве ПроверяемыеРеквизиты);

 

has been added to your cart:
Оформление заказа