Возникает перед выполнением записи объекта из формы. Процедура-обработчик данного события вызывается перед вызовом процедуры-обработчика события ПередЗаписью объекта ДокументОбъект.<Имя документа>.
Синтаксис
ПередЗаписью(<Отказ>, <РежимЗаписи>, <РежимПроведения>)Полное описание, параметры и ограничения
Расширение формы документа.ПередЗаписью (Document form extension.BeforeWrite)
Расширение формы документа (Document form extension)
ПередЗаписью (BeforeWrite)
Доступен, начиная с версии 8.0.
Синтаксис:
ПередЗаписью(<Отказ>, <РежимЗаписи>, <РежимПроведения>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от записи документа. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись документа выполнена не будет.
Значение по умолчанию: Ложь.
<РежимЗаписи>
Тип: РежимЗаписиДокумента.
Режим записи документа. Позволяет определить выполняется запись, проведение или отмена проведения.
Изменение значения параметра позволяет изменить режим записи.
<РежимПроведения>
Тип: РежимПроведенияДокумента.
Позволяет определить, выполняется оперативное проведение или нет.
Изменение значения параметра позволяет изменить режим проведения.
Описание:
Возникает перед выполнением записи объекта из формы. Процедура-обработчик данного события вызывается перед вызовом процедуры-обработчика события ПередЗаписью объекта ДокументОбъект.<Имя документа>.
Доступность:
Толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
ПередЗаписью: обычная форма УчебнаяЗаписка
Обычная объектная форма останавливает отрицательное значение до записи. Отказ относится к её настоящему событию, а не результату придуманного вызова.
Где и как запускать
Основной код — модуль собственной обычной объектной формы, толстый клиент; открытие — модуль другой обычной учебной формы.
Подготовка
Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте Документ УчебнаяЗаписка; не добавляйте эти учебные объекты в рабочую базу.
Для документа задайте строковый номер длиной 12 с автонумерацией. Проведение для этой учебной записки не требуется; код выполняет только обычную запись.
Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.
У Документ УчебнаяЗаписка создайте именно обычную объектную форму УчебнаяОбычная, не управляемую и не форму списка. Основной реквизит формы назовите Объект, тип — объект данного собственного метаданного.
Выведите Объект.Лимит и Объект.Комментарий на форму. Оставьте штатные команды записи. Добавьте надпись УчебноеПояснение без связи с данными.
В модуле этой формы назначьте событие ПередЗаписью основной процедуре из примера. Процедуры соседних событий размещаются отдельно, каждая только один раз.
В отдельной внешней обработке создайте обычную форму и кнопку ОткрытьСвойОбъект; последний дополнительный блок назначьте её обработчиком. Это настоящий производитель объекта, который получает его именованную форму.
Запуск — толстый клиент, обычные формы, отдельная учебная конфигурация. Директивы &НаКлиенте / &НаСервере в модуль обычной формы не добавляются.
Для обычного опыта задайте число 25. Старт процесса выполняется только подготовительным производителем задачи; сами события записи не стартуют процесс и не выполняют задачу.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Объект.Лимит < 0 Тогда
Отказ = Истина;
Сообщить("Отрицательная учебная сумма не допускается");
КонецЕсли;
КонецПроцедурыОтдельная обычная учебная форма: собственный объект и его точная форма
Процедура ОткрытьСвойОбъект(Кнопка)
СвойОбъект = Документы.УчебнаяЗаписка.СоздатьДокумент();
СвойОбъект.Дата = Дата(2026, 10, 14);
СвойОбъект.Лимит = 100;
СвойОбъект.Комментарий = "Учебный пример";
ФормаОбъекта = СвойОбъект.ПолучитьФорму("УчебнаяОбычная");
ФормаОбъекта.Открыть();
КонецПроцедурыРазбор по шагам
Открываем точную обычную форму собственного объекта, созданного дополнительным кодом.
Платформа вызывает назначенный обработчик своей формы с параметрами установленной справки.
Обычная объектная форма останавливает отрицательное значение до записи. Отказ относится к её настоящему событию, а не результату придуманного вызова.
Как проверить результат
Введите -1 и нажмите штатную кнопку Записать: форма отклоняет запись с сообщением.
Введите 25: эта проверка пропускает запись; прочие ограничения объекта продолжают действовать.
Ожидаемый результат
Событие проверяется в настоящей собственной объектной форме толстого клиента.
На что обратить внимание
Этот пример не предназначен для управляемой формы: контексты и последовательности событий различаются.
Правило формы не защищает программную запись без этой формы; общие правила данных размещают в модуле объекта.
Не вызывайте Записать повторно внутри ПередЗаписью, ПриЗаписи или ПослеЗаписи; здесь нет рекурсивной записи.
ПриИзмененииДанных означает инициализацию / перечитывание / смену объекта, а не пользовательское ПриИзменении отдельного поля.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.