Событие объекта ‘ОбработкаПроверкиЗаполнения’

Процедура-обработчик ‘ОбработкаПроверкиЗаполнения’ – наиболее эффективное место размещение проверок корректности заполнения реквизитов объекта.

Вызов данного обработчика, согласно синтаксис-помощнику, происходит в двух случаях:

  • Через расширение формы (при записи объекта из формы):
Для объекта 'Документ'.
Для объекта ‘Документ’.
  • При выполнении метода ‘ПроверитьЗаполнение‘.

Данная процедура позволяет разработчику реализовывать свои алгоритмы для проверки корректного заполнения реквизитов.

Рассмотрим на простых примерах как это работает (чаще всего эту процедуры применяют в документах). Допустим у нас есть документ ‘Зачади’ и мы хотим реализовать проверку заполнения его реквизитов. Для начала создадим процедуру.

Что бы автоматически сформировать процедуру нужно воспользоваться стандартным механизмом добавления обработчиков событий:

Конфигуратор 1с: добавить обработчик события
Конфигуратор 1с: добавить обработчик события.
1c EDT:   добавить обработчик события.
1c EDT: добавить обработчик события.

Свойство нашего документа ‘Проведение’ = ‘Запретить’, поэтому данный обработчик будет вызываться каждый раз при записи объекта из формы.

По умолчанию для документа параметр процедуры ‘ПроверяемыеРеквизиты‘ будет иметь одно значение ‘Дата’:

'Дата' - проверяемыеРеквизиты.
‘Дата’ – проверяемыеРеквизиты.

В массив ‘ПроверяемыеРеквизиты‘, мы можем добавлять элементы для проверки 2 способами:

  • Через свойство реквизита ‘Проверка заполнения’ (‘Не проверять’ – исключаем из массива. ‘Выдавать ошибку’ – включаем в массив):
Свойство реквизита: Проверка заполнения.
Свойство реквизита: Проверка заполнения.

Добавим для проверки два реквизита ‘Клиент’ и ‘Крайний срок выполнения’:

Массив 'ПроверяемыеРеквизиты'.
Массив ‘ПроверяемыеРеквизиты’.
  • Через программный код:

Мы можем программно отказаться от типовой проверки всех реквизитов, либо одного конкретного:

В случае если добавленные нами реквизиты не будут заполнены, то пользователь получит ошибку:

Не заполненные реквизиты в массиве 'ПроверяемыеРеквизиты'.
Не заполненные реквизиты в массиве ‘ПроверяемыеРеквизиты’.

Так же можно реализовать свою логику проверки:

По скольку мы сами решили проверить реквизит ‘Клиент’ самостоятельно, то мы должны удалить это реквизит из массива ‘ПроверяемыеРеквизиты’.

Обработчики ‘ОбработкаПроверкиЗаполнения‘ выполняется вне транзакции записи объекта!

А что делать если документ мы записываем программно и есть необходимость вызвать данный обработчик? А все просто! Используем метод ‘ПроверитьЗаполнение‘:

В общем это довольно крутой и полезный обработчик. Стараемся при возможности использовать его! Более подробно можно ознакомиться с ним на сайте официальном сайте 1с.

0

Оставить комментарий

Ваш адрес email не будет опубликован.