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