EventHandler:OnSave
From In-Portal Developers Guide
| ||
---|---|---|
Статьи в этой категории | ||
Данное событие:
- сохраняет данные из формы редактирования главной записи во временные таблицы;
- если на форме не было ошибок, то сохраняет данные из временных таблиц в оригинальные;
- если на форме не было ошибок, то стирает временные таблицы.
Для копирования данных это событие вызывает метод kTempTablesHandler::SaveEdit
, который копирует данные и стирает временные таблицы по завершении процесса копирования. После выполнения данного события окно редактирования закрывается автоматически.
Contents |
Вызывается из шаблона
Данное событие вызывается при нажатии кнопки "Save
" на панели инструментов в шаблоне редактирования главной записи. Если нажать на аналогичную кнопку на шаблоне редактирования подчинённой записи то будет вызвано событие OnCreate или OnUpdate. Какое конкретно будет выполнено событие определяется тэгом SaveEvent.
Входные параметры
название | описание |
---|---|
master_ids (array) | Необязательный параметр, позволяющий указать ID , которые будут скопированы из временных таблиц в оригинальные. Если его не передать (как обычно и происходит), то будут скопированы все данные, находящиеся во временных таблицах на момент вызова данного события.
|
ids (string) | Только после завершения своей работы в событии становиться доступен параметр "ids ", содержащий в себе строку из IDs (разделённых запятой), которые были скопированы в оригинальные таблицы (только IDs записей из главной таблицы, без подчинённых). Данный параметр может использоваться для массовой обработки сохранённых записей.
|
Вызывает события
Для сохранения данных с формы редактирования во временные таблицы вызывается событие OnPreSave. Вызываемый далее метод kTempTablesHandler::SaveEdit
в свою очередь косвенно может вызывать следующие события (события перечислены в порядке вызова):
Потенциальное применение
Данное событие можно переписывать с целью работы с данными тогда, когда они уже полностью скопированы в оригинальные таблицы (см. параметр ids). Например для рассылки почтовых извещений после сохранения записей в оригинальную таблицу. События OnAfterItemCreate и OnAfterItemUpdate для этого не подходят, т.к. при работе со временными таблицами они будут вызываться когда данные будут меняться только во временных таблицах. В таком случае если пользователь нажмёт кнопку "Cancel
" (событие OnCancelEdit) на панели инструментов главной записи, то данные не будут сохранены в оригинальные таблицы.
Ограничения
Данное событие можно вызывать только при работе с временными таблицами, в противном случае произойдёт фатальная ошибка.