Модуль формы (клиент) | Модуль формы (сервер) | Модуль объекта (сервер) |
1. Открытие формы |
||
|
ПриЧтенииНаСервере()(1) Только для существующего объекта. Подготовка доп.данных, зависящих от данных объекта. Объект - основной элемент открываемой формы; ТекущийОбъект - объект, прочитанный из БД (доступны экспортные методы объекта) |
ОбработкаЗаполнения()(1) Только для нового объекта. Начальное заполнение объекта данными. Доступны ДанныеЗаполнения (ссылка на объект-основание либо структура отбора). В случае "СтандартнаяОбработка = Истина", после обработки заполнения, обрабатываются сначала ДанныеЗаполнения, затем ЗначенияЗаполнения |
ПриСозданииНаСервере() Окончательная подготовка формы (ее представления) к открытию |
||
ПриОткрытии() Действия, связанные с открытием, которые на сервере выполнить невозможно; выполняемые тогда, когда форма наверняка открывается. Последний обработчик перед открытием, в котором можно отказаться от открытия |
||
2. Запись объекта из формы |
||
ПередЗаписью() Анализ готовности вспомогательных данных для записи объекта |
||
1. ОбработкаПроверкиЗаполненияНаСервере() Проверка данных, не относящихся к объекту. Параметр ПроверяемыеРеквизиты содержит массив имен реквизитов формы |
Механизм проверки заполнения(2) | |
2. ОбработкаПроверкиЗаполнения() Всё, что относится к проверкам реквизитов основного объекта БД. Параметр ПроверяемыеРеквизиты содержит массив имен реквизитов объекта |
||
ПередЗаписьюНаСервере() Объект - основной реквизит формы объекта; ТекущийОбъект - объект, который реально будет записан в БД. Анализировать данные и дозаполнять реквизиты нужно через ТекущийОбъект, модификация Объекта ни к чему не приведет. Обработчик вызывается только при записи из формы |
||
Транзакция |
ПередЗаписью() Вызывается при любом способе записи. Данные объекта записываются в БД, но транзакция не закрывается |
|
ПриЗаписи() Выполняются действия над доп.данными, которые неразрывно связаны с основными данными объекта |
||
ПриЗаписиНаСервере() Предназначение аналогично ПриЗаписи(), но при обработке доп.данных можно использовать данные формы. ТекущийОбъект - данные, которые были записаны в БД, работать следует именно с ним; Объект - данные основного реквизита формы, которые были до записи, его модификация бесполезна. Если это запись нового объекта, то у Объект свойство Ссылка пустое, а у ТекущийОбъект уже заполнено |
||
ПослеЗаписиНаСервере() Действия над формой, которые выполняются только в том случае, когда объект гарантированно записан. ТекущийОбъект загружен в Объект, и теперь следует работать с Объектом, т.к. ТекущийОбъект будет уничтожен после обработчика. Но его можно использовать для вызова экспортных методов объекта |
||
ПослеЗаписи() Действия, которые невозможно выполнить на сервере, или требующие интерактивного взаимодействия с пользователем. Объект гарантированно записан |
||
3. Закрытие формы |
||
ПередЗакрытием() Проверка, можно закрыть форму или нельзя. Если отключить стандартную обработку, то форма будет закрыта, независимо от модифицированности |
||
ПриЗакрытии() Выполняется, если форма 100% закрывается. На момент вызова пользователь форму уже не видит |
||
Примечания:
1) Вызывается только один из двух обработчиков, в зависимости от того, записан объект в БД или создаётся новый;
2) Параметр Отказ нужен для отказа от записи объекта (не будет вызываться обработчик ПередЗаписьюНаСервере()). Чтобы отказаться от проверки заполнения, нужно очистить массив ПроверяемыеРеквизиты. При этом, если в обработчике [1] удалить из массива значение Объект, то обработчик [2] вызываться не будет. Если проверяемый реквизит привязан к функциональной опции, то при ее отключении заполнение реквизита проверяться не будет (имя отсутствует в массиве ПроверяемыеРеквизиты);
INFOSTART TOOLKIT
Самый продвинутый набор инструментов для управляемых форм 1С 8.3: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Подписки на события и др.