Форма.ОбработкаПроверкиЗаполнения

События · FillCheckProcessing

Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение. Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана. Пример: Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) // Проверим заполненность реквизита "Покупатель" Если Не ЗначениеЗаполнено(Покупатель) Тогда // Если он не заполнен, сообщим об этом пользователю Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Не указан Покупатель, на которого выписывается товарная накладная!"; Сообщение.Поле = "Покупатель"; Сообщение.Сообщить(); // Сообщим платформе, что мы сами обработали проверку заполнения реквизита "Покупатель" ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Покупатель")); // Так как информация не консистентна, то продолжать работу дальше смысла нет Отказ = Истина; КонецЕсли; КонецПроцедуры

Синтаксис

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

Форма.ОбработкаПроверкиЗаполнения (Form.FillCheckProcessing)

Форма (Form)

ОбработкаПроверкиЗаполнения (FillCheckProcessing)

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

Синтаксис:
ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
Параметры:

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

<ПроверяемыеРеквизиты>
Тип: Массив.
Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Описание:

Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение.
Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.

Пример:

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

// Проверим заполненность реквизита "Покупатель"

Если Не ЗначениеЗаполнено(Покупатель) Тогда

// Если он не заполнен, сообщим об этом пользователю

Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Не указан Покупатель, на которого выписывается товарная накладная!";
Сообщение.Поле = "Покупатель";
Сообщение.Сообщить();

// Сообщим платформе, что мы сами обработали проверку заполнения реквизита "Покупатель"

ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Покупатель"));
// Так как информация не консистентна, то продолжать работу дальше смысла нет

Отказ = Истина;

КонецЕсли;

КонецПроцедуры

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

Толстый клиент.

См. также:
Форма, метод ПроверитьЗаполнение

Использование в версии:

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

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

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

ОбработкаПроверкиЗаполнения: собственная обычная форма

Добавляем конкретное правило заполнения обычной формы, не очищая весь список стандартных проверяемых реквизитов.

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

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

Подготовка

  1. Создайте собственную внешнюю обработку с обычной формой. Запуск — толстый клиент, обычные формы; основной блок назначается указанному событию самой формы.

  2. Реквизиты формы: Наименование (Строка 100), Количество (Число 10.0), Цена и Сумма (Число 12.2), Статус (Строка 200), КоличествоПовторныхОткрытий (Число 10.0), РазрешитьЗакрытие (Булево). Выведите нужные поля и флажок на форму.

  3. Добавьте обычную надпись СуммаНадпись без связи с данными. Для расчётных опытов вручную задайте Количество = 3, Цена = 100, Наименование = Книга. Данные находятся только в форме.

  4. Каждый пример — отдельный вариант формы. Не вызывайте обработчик события вручную; используйте указанное действие или дополнительную кнопку.

  5. Добавьте кнопку ПроверитьСвоюФорму с дополнительным обработчиком. Реквизит Наименование имеет строковый тип; правило относится к нему.

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    Если ПустаяСтрока(СокрЛП(Наименование)) Тогда
        Отказ = Истина;
        Сообщить("Введите название собственного учебного товара");
    КонецЕсли;
КонецПроцедуры
Кнопка обычной формы: штатная проверка заполнения
Процедура ПроверитьСвоюФорму(Кнопка)
    РезультатПроверки = ЭтаФорма.ПроверитьЗаполнение();
    Сообщить("Проверка пройдена: " + Строка(РезультатПроверки));
    Сообщить("Запись объекта не выполнялась");
КонецПроцедуры

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

  1. Подготавливаем свою обычную форму и назначаем её точное событие.

  2. Платформа вызывает обработчик в описанных условиях; дополнительные блоки создают реальное действие там, где оно доступно без внешней компоненты.

  3. Добавляем конкретное правило заполнения обычной формы, не очищая весь список стандартных проверяемых реквизитов.

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

  1. Для пустой строки / пробелов правило устанавливает Отказ.

  2. Для Книга собственное правило проходит; другие стандартные проверки формы продолжают действовать.

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

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

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

  1. Обычная и управляемая формы имеют разные сигнатуры событий; этот блок не переносится в управляемую форму дословно.

  2. Отказ от стандартной обработки не равнозначен отмене операции: например, закрытие отменяет Отказ.

  3. Не заменяйте реальные события ручным вызовом одноимённой процедуры и не выдавайте статический разбор за выполнение 1С.

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

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

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

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

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