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