Полный обработчик модуля объекта собственной внешней обработки проверяет бизнес-условие без записи в базу.
Где и как запускать
Модуль объекта собственной внешней обработки; обычная форма, толстый клиент.
Подготовка
Создайте собственную внешнюю обработку УчебнаяПокупкаКниг.epf с реквизитом Количество Число 10.0 со знаком. Основную обычную форму создайте мастером; реквизит количества перетащите на форму.
Модуль объекта обработки: назначьте данный обработчик ОбработкаПроверкиЗаполнения. У кнопки обычной формы используйте стандартную команду ОК, вызывающую проверку заполнения.
Только толстый клиент: именно такую доступность у этого события внешней обработки указывает установленная справка. Не переносите код в событие поля формы или в серверный общий модуль.
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если Количество <= 0 Тогда
Отказ = Истина;
Сообщить("Для учебной покупки количество должно быть больше нуля");
КонецЕсли;
Индекс = ПроверяемыеРеквизиты.Найти("Количество");
Если Индекс <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(Индекс);
КонецЕсли;
КонецПроцедурыРазбор по шагам
Откройте собственную обработку в обычном толстом клиенте.
Введите 0 / -1 и нажмите стандартное ОК.
Введите 3 и повторите: собственная проверка больше не выставляет Отказ.
Как проверить результат
Нулевое и отрицательное количество дают явный отказ. ПроверяемыеРеквизиты меняется только для уже проверенного Количество.
При количестве 3 не сбрасывается чужой ранее установленный Отказ: код не присваивает Отказ=Ложь.
Ожидаемый результат
Показана реальная проверка собственной формы перед стандартным действием.
На что обратить внимание
Проверка не сохраняет документ покупки и не проводит движения.
BSL и открытие обработки при сборке HTML не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.