Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Событие

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

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

Открытие

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

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

В этом событии из БД загружаются значения всех реквизитов, в том числе и табличных частей.

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

Событие срабатывает не только при программном или визуальном открытии записи, но и при открытии свойств в списке записей по кнопке Свойства на вкладке Дополнительно в группе Запись.

 

В событии не рекомендуется автоматически формировать отчеты и другие расчеты, которые могут быть произведены уже после открытия. Это может снизить производительность системы. Если нужен отчет, то следует сделать  отдельную кнопку для построения и вывода отчета

Закрытие

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

 

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

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

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

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

 

По аналогии с событием «Сохранение До» в событии  целесообразно выполнять те действия, которые влияют на другие объекты системы и которые необходимо откатить вместе с транзакцией при возникновении ошибки. Основное отличие в том, что данные по текущей записи справочника уже отражены на сервере и, можно изменять объекты системы, зависящие от текущей записи. Например, если текущую запись надо указать в качестве значения реквизита другой записи.

 

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

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

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

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

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

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

 

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

 

Удаление До

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

 

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

 

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

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

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

 

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

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

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

 

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

 

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

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

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

 

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

Отмена До

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

 

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

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

 

Например, если в процессе изменения значений реквизитов справочника создаются другие записи, при отмене изменений их можно удалить.

 

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

 

Отмена После

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

 

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

При отмене изменения во вновь созданной записи справочника нельзя обращаться к контекстной переменной Object, поскольку. она будет ссылаться на другую текущую запись справочника. Чтобы обратиться к значениям реквизитов  записи справочника, проверьте, открыта ли запись с помощью свойств IComponent.RecordOpened и IDataSet.RecordOpened

Дополнительные сведения:

событие Запись – Добавление После:

Вычисления на реквизитах срабатывают после изменения значений этих реквизитов. В платформе есть возможность отключения этого механизма:

 

// Получить объект типа IRequisite.

AdditionReq = Object.Requisites('Дополнение')

// Отключить вычисления на реквизите «Дополнение»

AdditionReq.Events.Events(reOnChange).Enabled = FALSE

// Присвоить значение.

AdditionReq Value = <значение>

// Включить вычисления на реквизите обратно.

AdditionReq.Events.Events(reOnChange).Enabled = TRUE

событие ЗаписьОткрытие:

Событие срабатывает не только при программном или визуальном открытии записи, но и при открытии свойств записи в списке записей:

 

// Определить, открываются ли свойства записи.

if Object.Params.IndexOfName(SHOW_RECORD_PROPERTIES_FORM) > -1

  // Открылись свойства записи.

endif

сравнительная таблица свойств для сохранения записи:

Событие

Транзакция началась?

Когда требуется использовать событие

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

Нет

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

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

Да

Вычисления изменяют другие объекты системы. В случае ошибки все изменения надо очистить

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

Да

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

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }