Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение. Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана. Пример: Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) // Сообщим платформе, что мы сами обрабатываем проверку реквизита Организация ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Организация")); Для Каждого Проводка Из ЭтотОбъект Цикл Индекс = ЭтотОбъект.Индекс(Проводка) Если Не ЗначениеЗаполнено(Проводка.Организация) Тогда Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "В строке " + Индекс + " не указана Организация"; Сообщение.Поле = "[" + Индекс + "].Организация"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; КонецЦикла; КонецПроцедуры
Синтаксис
ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)Полное описание, параметры и ограничения
ПерерасчетНаборЗаписей.<Имя перерасчета>.ОбработкаПроверкиЗаполнения (RecalculationRecordSet.<Recalculation name>.FillCheckProcessing)
ПерерасчетНаборЗаписей.<Имя перерасчета> (RecalculationRecordSet.<Recalculation name>)
ОбработкаПроверкиЗаполнения (FillCheckProcessing)
Доступен, начиная с версии 8.2.
Синтаксис:
ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
Параметры:
<Отказ>
Тип: Булево.
Если в теле процедуры-обработчика установить данному параметру значение Истина, то будет выполнен отказ от продолжения работы после выполнения проверки заполнения.
Значение по умолчанию: Ложь.
<ПроверяемыеРеквизиты>
Тип: Массив.
Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Описание:
Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение.
Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.
Пример:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
// Сообщим платформе, что мы сами обрабатываем проверку реквизита Организация
ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Организация"));
Для Каждого Проводка Из ЭтотОбъект Цикл
Индекс = ЭтотОбъект.Индекс(Проводка)
Если Не ЗначениеЗаполнено(Проводка.Организация) Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "В строке " + Индекс + " не указана Организация";
Сообщение.Поле = "[" + Индекс + "].Организация";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Доступность:
Сервер, толстый клиент, внешнее соединение.
Замечание:
Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
См. также:
СправочникОбъект.<Имя справочника>, метод ПроверитьЗаполнение
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
ОбработкаПроверкиЗаполнения: свой набор перерасчёта УчебнаяПроверка регистра УчебныеНачисленияНастроек
Настоящее событие набора, собственное измерение и ограниченный опыт с обязательной отменой транзакции.
Где и как запускать
Основной блок — модуль набора; дополнительные процедуры — свой серверный общий модуль.
Подготовка
Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте ПланВидовРасчета УчебныеВидыРасчета; не добавляйте эти учебные объекты в рабочую базу.
Код — строковый длиной 10, наименование длиной 100. Для справочника, плана обмена и плана видов характеристик включите автонумерацию. Для счетов и видов расчёта код назначается явно в примере.
Для плана видов расчёта не включайте зависимость от базового периода и действие по периоду. Регистры расчёта в этом уроке не нужны.
Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.
Для этой диагностики дополнительно создайте документ УчебныйРасчетНастроек с разрешённым проведением. Создайте регистр расчёта УчебныеНачисленияНастроек, периодичность Месяц, план видов расчёта УчебныеВидыРасчета, регистратор УчебныйРасчетНастроек, ресурс Результат типа Число 12.2.
У регистра расчёта УчебныеНачисленияНастроек добавьте измерение КодКниги Строка 40. Создайте перерасчёт УчебнаяПроверка с измерением КодКниги, свяжите его с одноимённым основным измерением регистра.
Объект перерасчёта — собственный документ УчебныйРасчетНастроек. Остальные механизмы расчёта оставьте выключенными. Источник ниже создаёт собственные вид расчёта, документ и начисление 750 только внутри отменяемой транзакции.
Основной обработчик поместите в модуль набора записей перерасчёта УчебнаяПроверка регистра УчебныеНачисленияНастроек, не в модуль менеджера и не в форму документа.
Две дополнительные процедуры — в свой серверный общий модуль УчебныеСобытияНабора с установленным Сервер. Вызовите его экспортную процедуру ПроверитьСвойНабор отдельной собственной командой; у неё не должно быть внешней транзакции.
Для положительного опыта оставьте заполненное собственное измерение. Для отрицательного очистите только Запись.КодКниги в подготовке. Не удаляйте системные проверяемые реквизиты всего набора.
Обе ветки драйвера отменяют собственную транзакцию. При сборке HTML BSL и записи базы не выполнялись.
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Позиция = ПроверяемыеРеквизиты.Найти("КодКниги");
Если Позиция <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(Позиция);
КонецЕсли;
Для Каждого Запись Из ЭтотОбъект Цикл
Если ПустаяСтрока(СокрЛП(Запись.КодКниги)) Тогда
Отказ = Истина;
Сообщить("В своей строке набора не заполнено КодКниги");
КонецЕсли;
КонецЦикла;
КонецПроцедурыСвой серверный общий модуль: ограниченный источник набора
Процедура ПодготовитьИЗаписатьСвойНабор()
ВидРасчета = ПланыВидовРасчета.УчебныеВидыРасчета.СоздатьВидРасчета();
ВидРасчета.Код = Лев(Строка(Новый УникальныйИдентификатор), 8);
ВидРасчета.Наименование = "Учебное начисление";
ВидРасчета.Записать();
Документ = Документы.УчебныйРасчетНастроек.СоздатьДокумент();
Документ.Дата = Дата(2026, 10, 14);
Документ.Записать();
Набор = РегистрыРасчета.УчебныеНачисленияНастроек.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Документ.Ссылка);
Запись = Набор.Добавить();
Запись.ПериодРегистрации = Дата(2026, 10, 1);
Запись.ВидРасчета = ВидРасчета.Ссылка;
Запись.Активность = Истина;
Запись.Результат = 750;
Запись.КодКниги = "BOOK-001";
Набор.Записать();
Менеджер = РегистрыРасчета.УчебныеНачисленияНастроек.Перерасчеты.УчебнаяПроверка;
Набор = Менеджер.СоздатьНаборЗаписей();
Набор.Отбор.ОбъектПерерасчета.Установить(Документ.Ссылка);
Запись = Набор.Добавить();
Запись.ОбъектПерерасчета = Документ.Ссылка;
Запись.КодКниги = "BOOK-001";
Если Набор.ПроверитьЗаполнение() Тогда
Набор.Записать();
КонецЕсли;
КонецПроцедурыТот же модуль: отдельный драйвер, отмена транзакции в обеих ветках
Процедура ПроверитьСвойНабор() Экспорт
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Запустите отдельную учебную команду вне чужой транзакции";
КонецЕсли;
НачатьТранзакцию();
Попытка
ПодготовитьИЗаписатьСвойНабор();
ОтменитьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Сообщить("Учебные записи отменены, завершение транзакции не подтверждает запись");
КонецПроцедурыРазбор по шагам
Создайте указанные собственные метаданные и назначьте событие в модуле набора.
Вызовите отдельную экспортную процедуру драйвера: она создаёт и проверяет настоящий набор.
Сравните заполненный и пустой варианты измерения; после опыта вся собственная транзакция отменена.
Как проверить результат
Пустое / пробельное собственное измерение приводит к Отказ=Истина. Заполненный пример не переписывает входной отказ на Ложь.
Для проверки заполнения исключён только собственный реквизит, уже проверенный кодом; остальные штатные проверки сохранены.
Ожидаемый результат
Правило применяется к реальным строкам нужного набора, а фаза события отделена от фиксации транзакции.
На что обратить внимание
ПроверитьЗаполнение вызывает ОбработкаПроверкиЗаполнения; не вызывайте эту процедуру вручную.
Код не меняет границы последовательности, не перепроводит документы и не пересчитывает зарплату.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.