Событие |
Описание события |
Особенности обработки |
---|---|---|
Открытие |
Выполняется при открытии карточки существующей записи и при открытии карточки вновь добавляемой записи, после выполнения события «Добавление После». Например, используется, чтобы в зависимости от определенных условий задать видимость кнопок на форме. В этом событии из БД загружаются значения всех реквизитов, в том числе и табличных частей. В случае ошибки в вычислениях события выводится сообщение, открытие записи отменяется, карточка не открывается |
Событие срабатывает не только при программном или визуальном открытии записи, но и при открытии свойств в списке записей по кнопке Свойства на вкладке Дополнительно в группе Запись.
В событии не рекомендуется автоматически формировать отчеты и другие расчеты, которые могут быть произведены уже после открытия. Это может снизить производительность системы. Если нужен отчет, то следует сделать отдельную кнопку для построения и вывода отчета |
Закрытие |
Выполняется при закрытии карточки записи и при отмене добавления записи. Отмена добавления записи происходит, если в карточке только что добавленной записи нажать на кнопку Отменить изменения. В событии можно очищать переменные окружения, реестр и другую информацию, сформированную во время работы с записью. В случае ошибки в вычислениях события выводится сообщение об ошибке, но карточка закрывается |
Нельзя использовать функции записи реквизитов, работающие в контексте текущей записи |
Добавление До |
Выполняется перед добавлением записи. На момент выполнения события запись не существует ни на сервере, ни на клиенте, поэтому работать с ее реквизитами нельзя. В случае ошибки в вычислениях события выводится сообщение об ошибке, добавление записи отменяется.
В событии рекомендуется делать проверки на возможность добавления записи. Например, предупредить, что запись в справочник не добавляется напрямую, а только из другого справочника с означенной переменной окружения |
Нельзя использовать функции чтения и записи реквизитов, работающие в контексте текущей записи, так как они будут работать не с добавляемой, а с текущей записью |
Добавление После |
Выполняется после добавления записи; на момент выполнения события запись существует только на клиенте. При копировании записи к моменту выполнения события все копируемые реквизиты уже заполнены. Используется для вычисления и заполнения значений реквизитов. В случае ошибки в вычислениях события выводится сообщение об ошибке, добавление записи отменяется |
|
Сохранение Возможность |
Выполняется до начала транзакции на сохранение изменений записи на сервере. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены. Например, используется для проверки корректности заполнения полей карточки. В случае ошибки в вычислениях события выводится сообщение об ошибке, происходит возврат в режим изменения записи |
|
Сохранение До |
Выполняется до сохранения записи в рамках транзакции на сохранение. На момент выполнения события изменения в сохраняемой записи на сервере еще не отражены. Например, используется для формирования наименования новой записи справочника.
В случае ошибки в вычислениях события выводится сообщение об ошибке, происходит возврат в режим изменения записи |
Нельзя использовать функции, выводящие диалоговые окна, поскольку это может привести к блокировкам работы других пользователей на время показа диалогового окна |
Сохранение После |
Выполняется при сохранении записи в рамках транзакции на сохранение. На момент срабатывания события изменения в сохраняемой записи на сервере уже отражены.
По аналогии с событием «Сохранение До» в событии целесообразно выполнять те действия, которые влияют на другие объекты системы и которые необходимо откатить вместе с транзакцией при возникновении ошибки. Основное отличие в том, что данные по текущей записи справочника уже отражены на сервере и, можно изменять объекты системы, зависящие от текущей записи. Например, если текущую запись надо указать в качестве значения реквизита другой записи.
В случае ошибки в вычислениях события выводится сообщение об ошибке, происходит возврат в режим изменения записи |
Нельзя использовать функции, выводящие диалоговые окна, так как это может привести к блокировкам работы других пользователей на время показа диалогового окна. Нельзя изменять значения реквизитов сохраняемой записи |
Удаление Возможность |
Выполняется до начала транзакции на удаление записи на сервере. На момент выполнения события запись существует на клиенте и на сервере. Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит в случае, если в карточке только что добавленной записи нажать на кнопку Отменить изменения.
В случае ошибки в вычислениях события выводится сообщение об ошибке и удаление записи отменяется |
|
Удаление До |
Выполняется до удаления записи в рамках транзакции на удаление, на момент выполнения события запись существует и на клиенте, и на сервере.
Например, в событии можно задать поиск незавершенных задач, в которые вложена удаляемая запись справочника. Если такие задачи найдены, отменить удаление.
В случае ошибки в вычислениях события выводится сообщение об ошибке, удаление записи отменяется |
Нельзя использовать функции, выводящие диалоговые окна, так как это может привести к блокировкам работы других пользователей на время показа диалогового окна. Нельзя изменять значения реквизитов удаляемой записи.
Событие не выполняется при отмене добавления записи. Отмена добавления записи происходит, если в карточке только что добавленной записи нажать на кнопку Отменить изменения. |
Удаление После |
Выполняется после удаления записи в рамках транзакции на удаление. На момент выполнения события запись удалена и на клиенте, и на сервере.
В этом событии указатель (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 |