Возникает перед выполнением записи элемента справочника. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи элемента справочника.
Синтаксис
ПередЗаписью(<Отказ>)Полное описание, параметры и ограничения
СправочникОбъект.<Имя справочника>.ПередЗаписью (CatalogObject.<Catalog name>.BeforeWrite)
СправочникОбъект.<Имя справочника> (CatalogObject.<Catalog name>)
ПередЗаписью (BeforeWrite)
Доступен, начиная с версии 8.0.
Синтаксис:
ПередЗаписью(<Отказ>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от записи элемента. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись элемента выполнена не будет и будет вызвано исключение.
Значение по умолчанию: Ложь.
Описание:
Возникает перед выполнением записи элемента справочника. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи элемента справочника.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Замечание:
Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Запретить запись товара с отрицательной ценой
Проверка в модуле объекта действует и при интерактивной, и при программной записи.
Где и как запускать
Модуль объекта или набора записей, указанный в подготовке. Обработчик вызывается платформой; не вызывайте его как обычную команду формы.
Подготовка
В отдельной учебной конфигурации создайте неиерархический справочник УчебныеТовары: строковый код длиной 10 с автонумерацией, наименование длиной 100.
Добавьте реквизиты Цена (Число 15.2) и СнятСПродажи (Булево). Для Цена не включайте автоматический запрет отрицательного знака: в примере его проверяет код.
Откройте Справочники → УчебныеТовары → Модуль объекта. Обработчики размещаются на уровне модуля, не внутри команды формы. Обновите только учебную базу и проверяйте её элементы.
Процедура ПередЗаписью(Отказ)
Если Цена < 0 Тогда
Отказ = Истина;
Сообщить("Цена товара не может быть отрицательной");
КонецЕсли;
КонецПроцедурыРазбор по шагам
ПередЗаписью вызывается платформой до записи элемента.
Отрицательная цена нарушает правило этого учебного справочника.
Отказ = Истина отменяет запись; сообщение объясняет причину.
Как проверить результат
При цене -1 запись не выполняется.
При цене 150 запись разрешена, если нет других ошибок.
Ожидаемый результат
Недопустимая цена не попадает в учебный справочник.
На что обратить внимание
Не вызывайте Записать повторно из ПередЗаписью: это рекурсия.
Проверка выполняется внутри транзакции; долгие сетевые обращения здесь не нужны.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.