Возникает на сервере при записи объекта из формы. Процедура-обработчик вызывается после записи объекта (после события ПриЗаписи объекта) в базу данных, но до окончания транзакции записи.
Синтаксис
ПриЗаписиНаСервере(<Отказ>, <ТекущийОбъект>, <ПараметрыЗаписи>)Полное описание, параметры и ограничения
Расширение формы клиентского приложения для записи регистра сведений.ПриЗаписиНаСервере (Client application form extension for information register records.OnWriteAtServer)
Расширение формы клиентского приложения для записи регистра сведений (Client application form extension for information register records)
ПриЗаписиНаСервере (OnWriteAtServer)
Доступен, начиная с версии 8.2.
Синтаксис:
ПриЗаписиНаСервере(<Отказ>, <ТекущийОбъект>, <ПараметрыЗаписи>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись произведена не будет.
Значение по умолчанию: Ложь.
<ТекущийОбъект>
Тип: РегистрСведенийМенеджерЗаписи.<Имя регистра сведений>.
Записываемый объект.
<ПараметрыЗаписи>
Тип: Структура.
Структура, содержащая параметры записи.
Описание:
Возникает на сервере при записи объекта из формы. Процедура-обработчик вызывается после записи объекта (после события ПриЗаписи объекта) в базу данных, но до окончания транзакции записи.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Откатить запись, нарушающую учебный лимит
Серверный обработчик вызывается после записи объекта, но до завершения транзакции; Отказ ещё отменяет её. Контекст: Регистры сведений → УчебныйКонтрольЗаписей → Формы → ФормаЗаписи.
Где и как запускать
Модуль управляемой формы: Регистры сведений → УчебныйКонтрольЗаписей → Формы → ФормаЗаписи. Серверная и клиентская директивы уже указаны; не вставляйте процедуру внутрь другой.
Подготовка
Все действия выполняйте только в отдельной учебной конфигурации.
Создайте независимый непериодический регистр сведений УчебныйКонтрольЗаписей: измерение Код (Строка 20), ресурс КонтрольноеЧисло (Число 15.2), реквизит Комментарий (Строка 100).
Создайте основную управляемую форму записи с основным реквизитом Объект типа РегистрСведенийМенеджерЗаписи. Проверяйте запись с кодом УРОК; это не форма набора записей.
Основной реквизит формы должен называться Объект. Если мастер дал другое имя, переименуйте основной реквизит и исправьте пути данных его полей в редакторе формы.
Выведите основной числовой реквизит и комментарий на форму. Добавьте отдельный реквизит формы Статус (Строка 200), выведите его недоступным для редактирования.
Откройте Регистры сведений → УчебныйКонтрольЗаписей → Формы → ФормаЗаписи → Модуль формы. Назначьте событие ПриЗаписиНаСервере одноимённой процедуре. Обновите только учебную базу.
Примеры соседних событий можно объединить в одном модуле: каждая процедура должна существовать только один раз. Для обычного опыта задайте число 25 и комментарий Учебный объект.
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ТекущийОбъект.КонтрольноеЧисло > 100 Тогда
Отказ = Истина;
Сообщить("Значение больше учебного лимита 100");
КонецЕсли;
КонецПроцедурыРазбор по шагам
Платформа вызывает назначенный обработчик, передавая параметры именно своего расширения формы.
Серверный обработчик вызывается после записи объекта, но до завершения транзакции; Отказ ещё отменяет её.
Работа ведётся с реквизитами объекта, который полностью объявлен в подготовке.
Как проверить результат
Введите 150: клиентская проверка отрицательного значения пропускает его, но эта серверная проверка отменяет запись.
Вновь откройте ранее сохранённый объект: 150 не должно заменить старое значение; при 25 запись проходит.
Ожидаемый результат
Откатить запись, нарушающую учебный лимит для собственного учебного объекта.
На что обратить внимание
Событие не означает успешную фиксацию транзакции.
Здесь не отправляйте внешние уведомления об успехе: транзакция может быть отменена.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.