Возникает при записи объекта из формы. Процедура-обработчик вызывается после записи объекта (после события ПриЗаписи объекта КонстантаМенеджерЗначения.<Имя константы>) в базу данных, но до окончания транзакции записи.
Синтаксис
ПриЗаписи(<Отказ>)Полное описание, параметры и ограничения
Расширение формы констант.ПриЗаписи (Constant form extension.OnWrite)
Расширение формы констант (Constant form extension)
ПриЗаписи (OnWrite)
Доступен, начиная с версии 8.0.
Синтаксис:
ПриЗаписи(<Отказ>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от записи объекта. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись объекта выполнена не будет.
Значение по умолчанию: Ложь.
Описание:
Возникает при записи объекта из формы. Процедура-обработчик вызывается после записи объекта (после события ПриЗаписи объекта КонстантаМенеджерЗначения.<Имя константы>) в базу данных, но до окончания транзакции записи.
Доступность:
Толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
ПриЗаписи: собственная обычная форма constant
ПриЗаписи формы вызывается после записи данных объекта, но до конца транзакции. Выходной Отказ позволяет отменить именно эту собственную запись.
Где и как запускать
Модуль обычной формы конкретного собственного объекта. Открывающий обработчик — другая собственная обычная форма; толстый клиент.
Подготовка
В отдельной пустой учебной конфигурации создайте константу УчебныйЛимитФормы типа Число 12.2.
В Общие → Общие формы конструктором создайте обычную форму констант УчебныеКонстанты, включите только УчебныйЛимитФормы. В свойствах корня конфигурации назначьте её Основной формой констант.
Форма должна быть именно формой констант, а не произвольной формой с похожим числовым реквизитом. Источник открывает назначенную основную форму; изменяйте только свой учебный лимит.
В самой обычной форме констант добавьте собственные реквизиты Статус (Строка 200) и ОтменятьВТранзакции (Булево); выведите их на форму.
Основной блок назначьте событию формы ПриЗаписи, дополнительный инициализатор — ПриОткрытии этой же формы. Это не событие модуля набора / значения константы.
Открывающий блок разместите в другой обычной форме своей внешней обработки и назначьте кнопке. Запуск — толстый клиент. В открытой форме используйте стандартную команду Записать, не прямой вызов обработчика.
Процедура ПриЗаписи(Отказ)
Если ОтменятьВТранзакции Тогда
Отказ = Истина;
Статус = "Отмена собственной записи до завершения транзакции";
Иначе
Статус = "Этап ПриЗаписи: фиксация транзакции ещё не подтверждена";
КонецЕсли;
Сообщить(Статус);
КонецПроцедурыТа же целевая обычная форма: назначить событию ПриОткрытии
Процедура ПриОткрытии()
ОтменятьВТранзакции = Ложь;
Статус = "Собственная форма готова к проверке записи";
Сообщить(Статус);
КонецПроцедурыДругая обычная форма своей внешней обработки: кнопка ОткрытьСвойУрок
Процедура ОткрытьСвойУрок(Кнопка)
ФормаУрока = Константы.ПолучитьФорму();
ФормаУрока.Открыть();
Сообщить("Измените только свой УчебныйЛимитФормы");
КонецПроцедурыРазбор по шагам
Конструктор создаёт настоящую форму конкретной собственной записи / набора / констант.
Открывающая кнопка передаёт форме реальный собственный объект с ограниченным ключом / регистратором.
Стандартная команда формы вызывает платформенное событие; обработчик меняет только свой флаг отказа или локальный статус.
Как проверить результат
При включённом флажке запись формы отменяется; сообщение ПриЗаписи нельзя трактовать как доказательство фиксации.
Выключите флажок: обработчик не отказывает. Сам объект не записывается повторно внутри обработчика, рекурсии нет.
Ожидаемый результат
Этап записи показан на настоящей собственной обычной форме, а не ручным вызовом процедуры с подставными аргументами.
На что обратить внимание
ПередЗаписью, ПриЗаписи и ПослеЗаписи — разные этапы. Не посылайте внешние сообщения об успехе из ПриЗаписи до фиксации.
Источник набора нельзя открывать без отбора регистратора / собственного ключа; не заменяйте источник рабочим набором.
При сборке HTML BSL, запись в 1С и открытие её форм не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.