КонстантаМенеджерЗначения.<Имя константы>.ПередЗаписью

События · BeforeWrite

Возникает перед выполнением записи константы. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи константы.

Синтаксис

ПередЗаписью(<Отказ>)
Полное описание, параметры и ограничения

КонстантаМенеджерЗначения.<Имя константы>.ПередЗаписью (ConstantValueManager.<Constant name>.BeforeWrite)

КонстантаМенеджерЗначения.<Имя константы> (ConstantValueManager.<Constant name>)

ПередЗаписью (BeforeWrite)

Доступен, начиная с версии 8.0.

Синтаксис:
ПередЗаписью(<Отказ>)
Параметры:

<Отказ>
Тип: Булево.
Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись выполнена не будет и будет вызвано исключение.
Значение по умолчанию: Ложь.
Описание:

Возникает перед выполнением записи константы. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи константы.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Замечание:

Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Обработать ПередЗаписью собственной константы

Менеджер значения читает и записывает реальную собственную числовую константу. Правило отрицательного лимита относится только к этому учебному объекту.

Где и как запускать

Модуль значения собственной константы УчебныйЛимит. Проверочный блок отдельно в серверной процедуре своей обработки.

Подготовка

  1. В отдельной пустой учебной конфигурации создайте константу УчебныйЛимит типа Число 12.2 с разрешённым отрицательным знаком. Это не константа типовой конфигурации: не создавайте её в рабочей базе.

  2. В модуле значения константы разместите основной обработчик целиком, без клиентских директив. Не путайте модуль значения с модулем менеджера константы или модулем формы.

  3. Обновите только учебную базу. Проверочный блок вставьте в тело серверной процедуры собственной учебной обработки. Он действительно изменяет только собственную константу УчебныйЛимит после явной проверки заполнения.

Процедура ПередЗаписью(Отказ)
    Если ЭтотОбъект.Значение < 0 Тогда
        Отказ = Истина;
        Сообщить("Учебный лимит не может быть отрицательным");
    КонецЕсли;
КонецПроцедуры
Серверная процедура: чтение, изменение и запись собственной константы
Лимит = Константы.УчебныйЛимит.СоздатьМенеджерЗначения();
Лимит.Прочитать();
Лимит.Значение = 750;
Если Лимит.ПроверитьЗаполнение() Тогда
    Лимит.Записать();
    Сообщить("Собственная константа: " + Строка(Константы.УчебныйЛимит.Получить()));
КонецЕсли;

Разбор по шагам

  1. СоздатьМенеджерЗначения и Прочитать получают собственную константу; значение 750 задаётся до проверки и записи.

  2. ПроверитьЗаполнение и Записать вызывают платформенные обработчики модуля значения, не модуля менеджера.

  3. ПриЗаписи только сообщает записываемое значение; для отказа используются соответствующие проверяющие обработчики.

Как проверить результат

  1. С положительным значением сохранена собственная константа 750.

  2. Для проверяющих обработчиков повторите с -1: Отказ отменяет проверку / запись. ПриЗаписи этого правила не содержит и не является сообщением о завершении внешней транзакции.

Ожидаемый результат

Платформенное событие сработало при явной проверке или записи собственной константы.

На что обратить внимание

  1. ЭтотОбъект.Значение — значение менеджера; оно не читается автоматически из базы без Прочитать.

  2. Внутри ПриЗаписи / ПередЗаписью не вызывайте Записать снова: это повторный цикл записи.

  3. Никакие константы типовой конфигурации код не использует. Браузер BSL не исполняет.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.