База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С:КА запретить проведение документа с алкоголем и безалкоголкой? › Ответ в теме: Как в 1С:КА запретить проведение документа с алкоголем и безалкоголкой?
В 1С:Комплексная автоматизация (КА) для запрета проведения документа «Реализация товаров и услуг» при наличии одновременно алкогольной и безалкогольной продукции в табличной части, нужно реализовать проверку в обработчике события проведения документа — например, в процедуре ПередПроведением() модуля объекта документа.
Алгоритм:
1. В модуле объекта документа «Реализация товаров и услуг» создайте процедуру ПередПроведением(Отказ).
2. В этой процедуре переберите строки табличной части с товарами, определите, есть ли в документе алкогольная продукция и есть ли безалкогольная.
3. Если одновременно есть и алкогольная, и безалкогольная продукция — установите Отказ = Истина и выведите сообщение об ошибке.
Пример кода на 1С:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Процедура ПередПроведением(Отказ) ЕстьАлкоголь = Ложь; ЕстьБезалкоголь = Ложь; Для Каждого Строка Из ЭтотОбъект.Товары Цикл // Предполагается, что в справочнике номенклатуры есть реквизит "АлкогольнаяПродукция" типа Булево Если Строка.Номенклатура.АлкогольнаяПродукция Тогда ЕстьАлкоголь = Истина; Иначе ЕстьБезалкоголь = Истина; КонецЕсли; // Если оба флага уже установлены, можно прервать цикл Если ЕстьАлкоголь И ЕстьБезалкоголь Тогда Прервать; КонецЕсли; КонецЦикла; Если ЕстьАлкоголь И ЕстьБезалкоголь Тогда Отказ = Истина; Сообщить("Документ не может быть проведен, так как содержит одновременно алкогольную и безалкогольную продукцию."); КонецЕсли; КонецПроцедуры |
Объяснения:
— В примере предполагается, что у номенклатуры есть булевый реквизит «АлкогольнаяПродукция», который указывает, является ли товар алкогольным.
— Если такого реквизита нет, нужно либо добавить его, либо использовать другой способ определения алкогольной продукции (например, по группе номенклатуры или по признаку в характеристиках).
— Процедура ПередПроведением вызывается автоматически при попытке проведения документа, установка Отказ = Истина отменит проведение.
— Сообщение выводится пользователю, чтобы он понял причину отказа.
Если в вашей конфигурации есть более сложная логика определения алкогольной продукции (например, через ЕГАИС или отдельные реквизиты), адаптируйте проверку соответственно.