HelpF.pro

Событие ПередЗаписью регистра сведений. Как перед записью изменить значение реквизита записи?

Событие ПередЗаписью возникает перед выполнением записи набора регистра сведений. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи набора регистра сведений.

Пример проверки на условие и заполнение реквизита Цвет:

Код 1C v 8.х
 Процедура ПередЗаписью(Отказ, Замещение)
Для Каждого ТекЗапись Из ЭтотОбъект Цикл
Если ТекЗапись.СерияНоменклатуры.Восстановленный Тогда 
ТекЗапись.Цвет="2551650";
Иначе
ТекЗапись.Цвет="";
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Ниже приведен пример процедуры ПередЗаписью для регистра сведений «Курсы», который содержит курсы валют по периодам. При попытке ввести или изменить курс валюты период которого раньше даты регистрации фирмы будет выведено два сообщения:

Код 1C v 8.2 УП
 Процедура ПередЗаписью (Отказ, Замещение)
            ДатаРегистрации = Константы.ДатаРегистрации.Получить ();
            Для Каждого ТекЗапись Из ЭтотОбъект Цикл
             
                        Если ТекЗапись.Период < ДатаРегистрации Тогда
// Если период раньше даты регистрации
            Отказ = Истина; // отказ от записи
                        Сообщить(" Запись от " + ТекЗапись.Период +
                                               " с курсом " + ТекЗапись.Курс +
                                               " раньше даты регистрации фирмы!");
                        КонецЕсли;
            КонецЦикла;
             
    Если Отказ Тогда
            Сообщить ("Запись не выполнена!");
            КонецЕсли;
КонецПроцедуры

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1833.html