В управляемых формах 1С реализован механизм проверки заполнения реквизитов, который позволяет контролировать корректность ввода данных пользователем. Этот механизм позволяет указать, для каких реквизитов требуется проверка заполнения, и настроить поведение формы в случае обнаружения незаполненных реквизитов.
Настройка проверки заполнения
Для настройки проверки заполнения реквизитов необходимо в свойствах реквизита установить значение свойства Проверка заполнения. Доступны следующие значения⁚
- Не проверять ⎯ проверка заполнения не выполняется.
- Показывать предупреждение ― при обнаружении незаполненного реквизита пользователю отображается предупреждение.
- Выдавать ошибку ⎯ при обнаружении незаполненного реквизита пользователю отображается сообщение об ошибке и запись объекта не выполняется.
Обработка проверки заполнения
При выполнении записи объекта или его изменения вызывается обработчик ОбработкаПроверкиЗаполнения. В этом обработчике можно реализовать дополнительную проверку заполнения реквизитов, а также управлять поведением формы в случае обнаружения незаполненных реквизитов.
Для того чтобы отменить проверку заполнения реквизитов, необходимо очистить массив ПроверяемыеРеквизиты. Если установить параметр Отказ при обработке события в объекте в значение Истина, то после выполнения обработчика ОбработкаПроверкиЗаполнения процесс записи будет прекращен.
Пример использования
Рассмотрим пример использования проверки заполнения реквизитов управляемой формы. Пусть у нас есть форма документа, в которой есть реквизит Наименование. Необходимо настроить проверку заполнения этого реквизита, чтобы при попытке записи документа без заполнения реквизита пользователю отображалось сообщение об ошибке.
Для этого в свойствах реквизита Наименование установим значение свойства Проверка заполнения в значение Выдавать ошибку.
В обработчике ОбработкаПроверкиЗаполнения проверим, заполнен ли реквизит Наименование. Если реквизит не заполнен, установим параметр Отказ в значение Истина, чтобы отменить запись документа.
&НаКлиенте
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты, ПараметрыПроверкиЗаполнения)
// Проверить заполнение реквизита «Наименование»
Если ПроверяемыеРеквизиты.Найти(«Наименование») <> Неопределено Тогда
Если Документ.Наименование = «» Тогда
Отказ = Истина;
Сообщить(«Необходимо заполнить реквизит «»Наименование»»!»);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
После настройки проверки заполнения реквизита при попытке записи документа без заполнения реквизита Наименование пользователю будет отображаться сообщение об ошибке, и запись документа будет отменена.