События управляемой формы

conference

В данной статье рассмотрим последовательность событий связанных с управляемой формой документа.

Очень часто начинающие программисты не понимают в какой последовательности происходят стандартые события управляемой формой, например, при записи или открытии документа. И это не удивительно т.к. у управляемой формы существует большое количество событий. Чтобы лучше понять и запомнить как это всё происходит предлагаю вам ознакомиться со следующей таблицей.

Процедуры модуля объекта (необходимы для реализации общего поведения объекта, проверка, которая должна срабатываться всегда).

Процедуры модуля формы (для обработки поведения конкретной формы).

Открытие и интерактивное проведение существующего документа
1. ПриЧтенииНаСервере(ТекущийОбъект)  
2. ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)  
3. ПриОткрытии(Отказ)  
У клиента открывается УФ, которую он заполняет и нажимает на кнопку Проведения
4. ПередЗаписью (Отказ, ПараметрыЗаписи)  
5. ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)  
6. ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)  
7. ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)  
8. ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Начало транзакции
8.* ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс) Транзакция
В этот момент происходит запись объекта в БД
9. ПриЗаписи(Отказ) Транзакция
10. ОбработкаПроведения(Отказ, Режим) Транзакция

11. ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Окончание транзакции
12. ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)  
13. ПослеЗаписи(ПараметрыЗаписи)  
14. ПередЗакрытием(Отказ, СтандартнаяОбработка)                                                
15. ПриЗакрытии()  
Отмена проведения документа
1. ПередЗаписью(Отказ, ПараметрыЗаписи)
2. ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
3. ОбработкаУдаленияПроведения(Отказ)
Происходит запись объекта в БД со значением стандартного реквизита Проведен = Ложь
4. ПриЗаписи(Отказ)
5. ПриЗаписиНаСервере(Отказ,  ТекущийОбъект, ПараметрыЗаписи)
6. ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
7. ПослеЗаписи(ПараметрыЗаписи)

Надеюсь, данная таблица Вам поможет более осознанно вносить доработки в конфигурацию. Единственное, о чём ещё следует сказать в общих чертах — это про транзакцию.

Транзакция — это действия, которые приводят к блокировке некоторых ресурсов (другие пользователи не смогут пользоваться заблокированными ресурсами до тех пор, пока транзакция не завершится) и, которые могут быть либо полностью выполнены, либо полностью "откатаны" до исходного состояния.

tranzakciya_1

Например, когда пользователь нажимает на кнопку записать, то в момент начала события 8. ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)  до окончания события 11. ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) происходит блокировка документа. Если в процессе выполнения действия произошла ошибка, то все выполненные ранее операции будут отменены.

Рассмотрим пример записи документа.

  tranzakciya_2

Отказаться от выполнения записи можем в любой момент, например, как в событии 8. ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) так и в событии 9. ПриЗаписи(Отказ) . Все действия с БД будут восстановлены к "исходному" состоянию.

tranzakciya_3

Понравилось? Не забудь поддержать сайт!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *