Цикл статей:
События Типов справочников и ТКЭД. Часть 1.
События Типов справочников и ТКЭД. Часть 2.
События Типов справочников и ТКЭД. Часть 3.
Выполняется перед добавлением строки в таблицу. На момент выполнения события строка не существует ни на клиенте, ни на сервере.
В случае ошибки в вычислениях события выводится сообщение об ошибке, добавление строки отменяется.
Событие выполняется после добавления строки в таблицу. На момент выполнения события строка существует только на клиенте. При копировании строки к моменту срабатывания события все копируемые поля уже заполнены.
В случае ошибки в вычислениях события выводится сообщение об ошибке, добавление строки не отменяется.
Внимание! На момент выполнения события функция СпрТблСтрКол() и свойство IDataSet.RecordCount возвращают старое количество строк, т.е. без учета только что добавленной строки.
Событие выполняется до удаления строки из таблицы. На момент выполнения события строка еще существует и на клиенте, и на сервере. Событие не выполняется при отмене добавления строки. Отмена добавления строки происходит в том случае, когда указатель перемещается с вновь добавленной строки без заполнения хотя бы одного поля. Поле «№» не учитывается.
В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление строки отменяется.
Внимание! После выполнения события и до фактического удаления строки принудительно очищаются значения всех числовых реквизитов удаляемой строки, как следствие выполняются все вычисления на этих реквизитах. Поэтому, если в карточке справочника есть итоговые реквизиты, суммирующие данные из таблицы, то для их корректного пересчета можно использовать функцию СпрТблИтог() в вычислении на суммируемом реквизите таблицы. В этом случае не нужно дублировать пересчет итоговых реквизитов в событии Таблица. Удаление – После.
Событие выполняется после удаления строки из таблицы. На момент выполнения события строка удалена только на клиенте. Событие не выполняется при отмене добавления строки. Отмена добавления строки происходит в том случае, когда указатель перемещается с вновь добавленной строки без заполнения хотя бы одного поля. Поле № не учитывается.
В случае ошибки в вычислениях события выводится сообщение об ошибке, удаление строки не отменяется.
Внимание! Нельзя использовать функции записи реквизитов, работающие в контексте текущей строки, т.к. на момент выполнения события удаляемой строки уже нет.
Выполняется до начала транзакции на удаление записи на сервере. На момент выполнения события запись существует и на клиенте, и на сервере. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать на кнопку Отменить.
В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление записи отменяется.
Здесь целесообразно производить вычисления, аналогичные событию Сохранение Возможность, т.е. ДО транзакции. Например, проверку права пользователя на удаление записи.
Выполняется ДО события Запись – Закрытие – при закрытии записи, смене текущей записи, отмене изменений записи.
В случае ошибки в вычислениях события выводится сообщение об ошибке, но карточка закрывается.
В этом событии нельзя выводить диалоговые окна. И, наоборот, можно и целесообразно производить действия, касающиеся только скрытия карточки, а не закрытия всей записи. Например, чистить реестр и/или переменные окружения, которые использовались только в процессе визуальной работы.
Выполняется до удаления записи в рамках транзакции на удаление, на момент выполнения события запись существует и на клиенте, и на сервере. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать на кнопку Отменить.
В случае ошибки в вычислениях события выводится сообщение об ошибке, удаление записи отменяется.
Внимание! Нельзя использовать функции, выводящие диалоговые окна, т.к. это может привести к блокировкам работы других пользователей на время показа диалогового окна. Нельзя изменять значения реквизитов удаляемой записи.
В этом событии нужно выполнять вычисления, влияющие на другие объекты системы. При возникновении ошибки, изменения откатываются вместе с транзакцией. Также тут целесообразно запоминать данные (например, значения реквизитов удаляемой записи), используя функции Окружение(), Сохр(), чтобы потом использовать эту информацию в событии Удаление После.
Выполняется после удаления записи в рамках транзакции на удаление. На момент выполнения события запись удалена и на клиенте, и на сервере. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать на кнопку Отменить. В этом событии указатель (Object) находится на следующей за удаляемой записью или указывает на пустой набор данных, если записей больше нет.
В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление записи отменяется.
Внимание! Нельзя использовать функции, выводящие диалоговые окна, т.к. это может привести к блокировкам работы других пользователей на время показа диалогового окна.
Нельзя использовать функции чтения-записи реквизитов, работающие в контексте текущей записи, т.к. они будут работать не с удаляемой записью.
Событие выполняется при закрытии карточки записи и при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать на кнопку Отменить.
В случае ошибки в вычислениях события выводится сообщение об ошибке, но запись закрывается.
Внимание! Нельзя использовать функции записи реквизитов, работающие в контексте текущей записи.
Здесь можно чистить переменные окружения, реестр и другую информацию, сформированную во время работы с записью.
Выполняется после закрытия набора данных, то есть после выхода из компоненты. В данном событии можно «подчищать» информацию, сформированную во время работы с записью. Например, переменные окружения, данные реестра.
Набор событий для ТС и ТКЭД – одинаковый. Разница лишь в том, что при работе с ТКЭД, в наборе данных всегда одна запись. Поэтому все вышеописанное подходит и для работы с ТКЭД, однако есть следующая особенность: при открытии текста документа, карточки документа, состояния документа, создании версии документа – срабатывают два события Набор данных – Открытие и Запись – Открытие.
По поводу событий таблицы полезно знать, что в веб-доступе, до версии 4.9, при сохранении записи справочника происходит удаление, а потом занесение по новой всех строк детальных разделов. Таким образом в веб-доступе при нажатии на кнопку "Сохранить" происходят события Таблица - Удаление до --> Таблица - Удаление после --> Таблица - Добавление до --> Таблица - Добавление после --> Сохранение возможность --> Сохранение до --> Сохранение после.
В веб-доступе 4.9 это поправили.
Авторизуйтесь, чтобы написать комментарий