Проверить положительную цену до записи товара

Учебные задачи

ОбработкаПроверкиЗаполнения дополняет проверку заполнения бизнес-правилом.

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

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

Подготовка

  1. В отдельной учебной конфигурации создайте неиерархический справочник УчебныеТовары: строковый код длиной 10 с автонумерацией, наименование длиной 100.

  2. Добавьте реквизиты Цена (Число 15.2) и СнятСПродажи (Булево). Для Цена не включайте автоматический запрет отрицательного знака: в примере его проверяет код.

  3. Откройте Справочники → УчебныеТовары → Модуль объекта. Обработчики размещаются на уровне модуля, не внутри команды формы. Обновите только учебную базу и проверяйте её элементы.

  4. Для отдельной проверки вызовите ПроверитьЗаполнение() у созданного учебного элемента; не заменяйте им правило ПередЗаписью.

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    Если Цена <= 0 Тогда
        Отказ = Истина;
        Сообщить("Укажите цену больше нуля");
    КонецЕсли;
КонецПроцедуры

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

  1. Платформа передаёт список реквизитов для своей проверки.

  2. Наш код проверяет цену, не очищая этот список.

  3. Отказ сообщает о неуспешной проверке заполнения, но сам не записывает элемент.

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

  1. ПроверитьЗаполнение() при нулевой цене сообщает о нарушении.

  2. При цене 150 эта дополнительная проверка проходит.

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

Проверка заполнения учитывает прикладное правило цены.

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

  1. Программная запись не обязана вызывать ПроверитьЗаполнение: критичные ограничения проверяйте и перед записью.

  2. Не очищайте весь список системной проверки ради одного реквизита.

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

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

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

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

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