Компоненты разработчика

 

Типы справочников

 

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

События типа справочника могут быть связаны с записью справочника в целом («Карточка», «Операция»), с отдельной записью любой табличной части записи справочника («Таблица» – «Таблица6»), со всем набором записей справочника («Набор данных») или с отдельными реквизитами («Реквизит»).

Описание объектов и их событий представлено в таблице:

 

Объект

Событие

Описание события

Особенности обработки

Набор данных

Открытие

Выполняется перед открытием набора данных, т.е. перед считыванием данных с сервера.

 

Закрытие

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

 

Карточка

Открытие

Выполняется при открытии карточки существующей записи и при открытии карточки вновь добавляемой записи, после выполнения события «Добавление После».

В случае ошибки в вычислениях события выводится сообщение об ошибке, но карточка открывается.

Внимание! Событие срабатывает не только при программном или визуальном открытии записи, но и при открытии свойств записи в списке записей (Файл\Свойства записи).

Закрытие

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

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

В случае ошибки в вычислениях события выводится сообщение об ошибке, но карточка закрывается.

Нельзя использовать функции записи реквизитов, работающие в контексте текущей записи.

Добавление До

Выполняется перед добавлением записи; на момент выполнения события запись не существует ни на сервере, ни на клиенте.

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

Нельзя использовать функции чтения-записи реквизитов, работающие в контексте текущей записи, т.к. они будут работать не с добавляемой, а с текущей записью.

Добавление После

Выполняется после добавления записи; на момент выполнения события запись существует только на клиенте.

При копировании записи к моменту выполнения события все копируемые реквизиты уже заполнены.

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

 

Сохранение Возможность

Выполняется до начала транзакции на сохранение изменений записи на сервере. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены.

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

 

Сохранение До

Выполняется до сохранения записи в рамках транзакции на сохранение. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены.

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

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

Сохранение После

Выполняется при сохранении записи в рамках транзакции на сохранение. На момент срабатывания события изменения в сохраняемой записи на сервере уже отражены.

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

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

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

Удаление Возможность

Выполняется до начала транзакции на удаление записи на сервере. На момент выполнения события запись существует и на клиенте, и на сервере.

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

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

 

Удаление До

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

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

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

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

Нельзя изменять значения реквизитов удаляемой записи.

Удаление После

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

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

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

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

Нельзя использовать функции чтения-записи реквизитов, работающие в контексте текущей записи, т.к. они будут работать не с удаляемой записью, а со следующей за удаляемой.

Операция

Выполнение

Выполняется после события «Карточка. Сохранение До» до сохранения изменений записи на сервере. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены.

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

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

Таблица–Таблица6

Добавление До

Выполняется перед добавлением строки в таблицу. На момент выполнения события строка не существует ни на клиенте, ни на сервере.

В случае ошибки в вычислениях события выводится сообщение об ошибке и добавление строки отменяется.

Нельзя использовать функции изменения значения реквизитов, работающие в контексте текущей строки таблицы, т.к. на момент срабатывания события строка еще не существует.

Добавление После

Выполняется после добавления строки в таблицу. На момент выполнения события строка существует только на клиенте.

При копировании строки к моменту срабатывания события все копируемые поля уже заполнены.

В случае ошибки в вычислениях события выводится сообщение об ошибке, добавление строки не отменяется.

На момент выполнения события функция СпрТблСтрКол() и свойство IDataSet.RecordCount возвращают старое количество строк, т.е. без учета только что добавленной строки.

Удаление До

Выполняется до удаления строки из таблицы. На момент выполнения события строка еще существует и на клиенте, и на сервере.

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

В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление строки отменяется.

После выполнения события и до фактического удаления строки принудительно очищаются значения всех числовых реквизитов удаляемой строки, как следствие выполняются все вычисления на этих реквизитах. Поэтому, если в карточке справочника есть итоговые реквизиты, суммирующие данные из таблицы, то для их корректного пересчета можно использовать функцию СпрТблИтог() в вычислении на суммируемом реквизите таблицы. В этом случае ненужно дублировать пересчет итоговых реквизитов в событии «Удаление После».

Удаление После

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

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

В случае ошибки в вычислениях события выводится сообщение об ошибке, удаление строки не отменяется.

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

Реквизит

Вычисление

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

 

Выбор из

справочника

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

Предназначено для переопределения стандартного механизма выбора из справочника, например, чтобы ограничить доступ к записям справочника. А также для определения выбора из справочника для полей, у которых нет стандартного механизма выбора, например, для реквизита типа «Строка».

Для выполнения события при ручном вводе значения реквизита параметр типа справочника Вызывать событие “Выбор из справочника” при ручном вводе значений реквизитов должен быть установлен в значение «Да» (подробнее см. раздел «Параметры типов справочников»).

 

 

См. также:

·         Основное окно редактора событий.