Скрипты справочников

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

DevBookmark_Scripts Обработчик при создании записи справочника BeforeCreate:

Вызывается при создании записи справочника.

input На вход передаются создаваемая запись справочника и параметры ее создания.

Обычно обработчик этого события используется для автоматического заполнения полей создаваемой записи справочника.

DevBookmark_Scripts Обработчик инициализации записи справочника AfterLoad:

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

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

С помощью обработчика этого события можно, например, загрузить дополнительные данные в запись справочника.

DevBookmark_Scripts Обработчик перед сохранением записи справочника BeforeSave:

Вызывается при сохранении создаваемой/редактируемой записи справочника.

input На вход передается сохраняемая запись справочника.

С помощью обработчика этого события можно, например, проверить данные и при необходимости изменить их перед сохранением.

output После успешного выполнения обработчика запись справочника будет сохранена, а ядром будет вызван обработчик после сохранения, либо, в случае неудачного выполнения, будет возвращена ошибка.

DevBookmark_Scripts Обработчик при неудавшемся сохранении записи справочника SaveFailed:

Вызывается в случае выдачи исключения во время операции сохранения записи справочника.

input На вход передаются сохраняемая запись справочника и исключение, выданное во время сохранения.

DevBookmark_Scripts Обработчик после сохранения записи справочника AfterSave:

Вызывается после успешного выполнения обработчика перед сохранением и после непосредственно сохранения записи справочника, но до фиксации транзакции.

input На вход передается сохраненная запись справочника.

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

DevBookmark_Scripts Обработчик перед удалением записи справочника BeforeDelete:

Вызывается перед удалением записи справочника.

input На вход передается идентификатор удаляемой записи справочника;

С помощью обработчика этого события можно отменить удаление, выдав исключение.

DevBookmark_Scripts Обработчик при неудавшемся удалении записи справочника DeleteFailed:

Вызывается в случае выдачи исключения во время операции удаления записи справочника.

input На вход передаются идентификатор удаляемой записи справочника и исключение, выданное во время удаления.

DevBookmark_Scripts Обработчик после удаления записи справочника AfterDelete:

Вызывается после успешного выполнения обработчика перед удалением, а также после успешного удаления записи справочника (записи справочника уже не существует), но до фиксации транзакции.

input На вход передается идентификатор удаленной записи справочника;

С помощью обработчика этого события можно отменить удаление, выдав исключение.

Кроме того, прикладной разработчик может изменять общий обработчик событий справочника – он имеет такой же интерфейс, но вызывается при любом событии записи справочника любого типа.

Последовательность вызовов обработчиков событий справочника:

1.При сохранении:

общий обработчик перед сохранением;

обработчик перед сохранением;

сохранение изменений записи в БД;

общий обработчик после сохранения;

обработчик после сохранения;

Если на любом этапе сохранения произошла какая-либо ошибка, будет вызван обработчик для исключительной ситуации SaveFailed.

2.При удалении:

общий обработчик перед удалением;

обработчик перед удалением;

удаление записи в БД;

общий обработчик после удаления;

обработчик после удаления;

Если на любом этапе удаления произошла какая-либо ошибка, будет вызван обработчик для исключительной ситуации DeleteFailed.

3.При создании:

создание объекта соответствующего класса;

получение нового идентификатора;

общий обработчик при создании;

обработчик при создании.

4.При загрузке записи:

загрузка записи из БД и инициализация объекта;

общий обработчик инициализации записи;

обработчик инициализации записи.