Типы справочников
События типов справочников
События типа справочника могут быть связаны с записью справочника в целом («Карточка», «Операция»), с отдельной записью любой табличной части записи справочника («Таблица» – «Таблица6»), со всем набором записей справочника («Набор данных») или с отдельными реквизитами («Реквизит»).
Описание объектов и их событий представлено в таблице:
Объект |
Событие |
Описание события |
Особенности обработки |
Набор данных |
Открытие |
Выполняется перед открытием набора данных, т.е. перед считыванием данных с сервера. |
|
Закрытие |
Выполняется после закрытия набора данных, то есть после выхода из компоненты. |
|
|
Карточка |
Открытие |
Выполняется при открытии карточки существующей записи и при открытии карточки вновь добавляемой записи, после выполнения события «Добавление После». В случае ошибки в вычислениях события выводится сообщение об ошибке, но карточка открывается. |
Внимание! Событие срабатывает не только при программном или визуальном открытии записи, но и при открытии свойств записи в списке записей (Файл\Свойства записи). |
Закрытие |
Выполняется при закрытии карточки записи. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать кнопку Отменить. В случае ошибки в вычислениях события выводится сообщение об ошибке, но карточка закрывается. |
Нельзя использовать функции записи реквизитов, работающие в контексте текущей записи. |
|
Добавление До |
Выполняется перед добавлением записи; на момент выполнения события запись не существует ни на сервере, ни на клиенте. В случае ошибки в вычислениях события выводится сообщение об ошибке и добавление записи отменяется. |
Нельзя использовать функции чтения-записи реквизитов, работающие в контексте текущей записи, т.к. они будут работать не с добавляемой, а с текущей записью. |
|
Добавление После |
Выполняется после добавления записи; на момент выполнения события запись существует только на клиенте. При копировании записи к моменту выполнения события все копируемые реквизиты уже заполнены. В случае ошибки в вычислениях события выводится сообщение об ошибке и добавление записи отменяется. |
|
|
Сохранение Возможность |
Выполняется до начала транзакции на сохранение изменений записи на сервере. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены. В случае ошибки в вычислениях события выводится сообщение об ошибке и происходит возврат в режим изменения записи. |
|
|
Сохранение До |
Выполняется до сохранения записи в рамках транзакции на сохранение. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены. В случае ошибки в вычислениях события выводится сообщение об ошибке и происходит возврат в режим изменения записи. |
Нельзя использовать функции, выводящие диалоговые окна, т.к. это может привести к блокировкам работы других пользователей на время показа диалогового окна. |
|
Сохранение После |
Выполняется при сохранении записи в рамках транзакции на сохранение. На момент срабатывания события изменения в сохраняемой записи на сервере уже отражены. В случае ошибки в вычислениях события выводится сообщение об ошибке и происходит возврат в режим изменения записи. |
Нельзя использовать функции, выводящие диалоговые окна, т.к. это может привести к блокировкам работы других пользователей на время показа диалогового окна. Нельзя изменять значения реквизитов сохраняемой записи. |
|
Удаление Возможность |
Выполняется до начала транзакции на удаление записи на сервере. На момент выполнения события запись существует и на клиенте, и на сервере. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать кнопку Отменить. В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление записи отменяется. |
|
|
Удаление До |
Выполняется до удаления записи в рамках транзакции на удаление, на момент выполнения события запись существует и на клиенте, и на сервере. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать кнопку Отменить. В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление записи отменяется. |
Нельзя использовать функции, выводящие диалоговые окна, т.к. это может привести к блокировкам работы других пользователей на время показа диалогового окна. Нельзя изменять значения реквизитов удаляемой записи. |
|
Удаление После |
Выполняется после удаления записи в рамках транзакции на удаление. На момент выполнения события запись удалена и на клиенте, и на сервере. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать кнопку Отменить. В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление записи отменяется. |
Нельзя использовать функции, выводящие диалоговые окна, т.к. это может привести к блокировкам работы других пользователей на время показа диалогового окна. Нельзя использовать функции чтения-записи реквизитов, работающие в контексте текущей записи, т.к. они будут работать не с удаляемой записью, а со следующей за удаляемой. |
|
Операция |
Выполнение |
Выполняется после события «Карточка. Сохранение До» до сохранения изменений записи на сервере. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены. В случае ошибки в вычислениях события выводится сообщение об ошибке и происходит возврат в режим изменения записи. |
Устаревшее событие, оставленное для совместимости с предыдущими версиями. Не рекомендуется использовать во вновь разрабатываемых типах справочников. |
Таблица–Таблица6 |
Добавление До |
Выполняется перед добавлением строки в таблицу. На момент выполнения события строка не существует ни на клиенте, ни на сервере. В случае ошибки в вычислениях события выводится сообщение об ошибке и добавление строки отменяется. |
Нельзя использовать функции изменения значения реквизитов, работающие в контексте текущей строки таблицы, т.к. на момент срабатывания события строка еще не существует. |
Добавление После |
Выполняется после добавления строки в таблицу. На момент выполнения события строка существует только на клиенте. При копировании строки к моменту срабатывания события все копируемые поля уже заполнены. В случае ошибки в вычислениях события выводится сообщение об ошибке, добавление строки не отменяется. |
На момент выполнения события функция СпрТблСтрКол() и свойство IDataSet.RecordCount возвращают старое количество строк, т.е. без учета только что добавленной строки. |
|
Удаление До |
Выполняется до удаления строки из таблицы. На момент выполнения события строка еще существует и на клиенте, и на сервере. Событие не выполняется при отмене добавления строки. Отмена добавления строки происходит в том случае, когда курсор уходит с вновь добавленной строки без заполнения хотя бы одного поля (поле № не учитывается). В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление строки отменяется. |
После выполнения события и до фактического удаления строки принудительно очищаются значения всех числовых реквизитов удаляемой строки, как следствие выполняются все вычисления на этих реквизитах. Поэтому, если в карточке справочника есть итоговые реквизиты, суммирующие данные из таблицы, то для их корректного пересчета можно использовать функцию СпрТблИтог() в вычислении на суммируемом реквизите таблицы. В этом случае ненужно дублировать пересчет итоговых реквизитов в событии «Удаление После». |
|
Удаление После |
Выполняется после удаления строки из таблицы. На момент выполнения события строка удалена только на клиенте. Событие не выполняется при отмене добавления строки. Отмена добавления строки происходит в том случае, когда курсор уходит с вновь добавленной строки без заполнения хотя бы одного поля (поле № не учитывается). В случае ошибки в вычислениях события выводится сообщение об ошибке, удаление строки не отменяется. |
Нельзя использовать функции записи реквизитов, работающие в контексте текущей строки, т.к. на момент выполнения события удаляемой строки уже нет. |
|
Реквизит |
Вычисление |
Выполняется после изменения значения реквизита и предназначено для задания действий, которые должны быть выполнены при изменении значения реквизита. |
|
Выбор из справочника |
Выполняется при нажатии на кнопку , а также при ручном вводе значения реквизита в карточке записи справочника. Предназначено для переопределения стандартного механизма выбора из справочника, например, чтобы ограничить доступ к записям справочника. А также для определения выбора из справочника для полей, у которых нет стандартного механизма выбора, например, для реквизита типа «Строка». |
Для выполнения события при ручном вводе значения реквизита параметр типа справочника Вызывать событие “Выбор из справочника” при ручном вводе значений реквизитов должен быть установлен в значение «Да» (подробнее см. раздел «Параметры типов справочников»). |
См. также:
· Основное окно редактора событий.
© 2009, Компания DIRECTUM
|
Отправить комментарий к этому разделу на
support@directum.ru
|