В процессе ведения торговой деятельности часто возникает необходимость ограничить менеджеров в выборе определенных товаров при оформлении заказов. Это может быть связано с выводом товара из ассортимента, его резервированием под спецпроекты или признанием позиции неликвидной. Рассмотрим подробнее, как реализовать механизм запрета выбора номенклатуры в программах системы «1С:Предприятие 8» (таких как «Управление торговлей 11», «ERP Управление предприятием» или «Комплексная автоматизация 2»).
Это штатный механизм, который не требует изменения программного кода. Логика системы строится на ограничении списка доступных товаров через Соглашения с клиентами. Разберем этот процесс по шагам:
Отклонение от условий продаж, система позволит ему добавить в заказ товар, не входящий в сегмент, выдав лишь предупреждение.Чтобы запрет стал жестким, необходимо отредактировать Профиль групп доступа. Найдем профиль «Менеджер по продажам», скопируем его и в новом профиле снимем галочку с роли Отклонение от условий продаж. После назначения этого профиля пользователям, система будет блокировать проведение заказа с «неправильным» товаром.
В современных конфигурациях 1С (начиная с версий УТ 11.4/ERP 2.4) реализован механизм статусов в карточке товара. Если мы откроем карточку Номенклатура, то увидим реквизит Статус.
Рассмотрим ситуацию: товар больше не планируется к продаже. В этом случае установим статус «Закрыта». После этого товар перестанет отображаться в подборе и его невозможно будет выбрать в новых документах продажи. При этом в ранее созданных документах и отчетах информация сохранится, что важно для анализа истории продаж.
Если стандартных механизмов недостаточно или требуется специфическая логика (например, запрет только для определенной группы пользователей), можно воспользоваться механизмом дополнительных реквизитов в сочетании с расширением конфигурации.
Проанализируем алгоритм реализации:
Номенклатура с типом Булево и наименованием «Запрещено к продаже».Расширение конфигурации, чтобы не снимать основную программу с поддержки.ОбработкаПроверкиЗаполнения или ПередЗаписью для документа ЗаказПокупателю.Пример программного кода для проверки в модуле документа или расширении:
Процедура ПроверитьЗапрещеннуюНоменклатуру(Источник, Отказ, ПроверкаЗаполнения) Экспорт
Для Каждого СтрокаТЧ Из Источник.Товары Цикл
// Получаем значение доп. реквизита
ЗапретПродажи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтрокаТЧ.Номенклатура, "ДопРеквизит_ЗапрещеноПродавать");
Если ЗапретПродажи = Истина Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Товар " + СтрокаТЧ.Номенклатура + " запрещен к продаже!";
Сообщение.Поле = "Товары[" + (СтрокаТЧ.НомерСтроки - 1) + "].Номенклатура";
Сообщение.УстановитьДанные(Источник);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Часто список запрещенных артикулов приходит в виде таблицы. Чтобы не проставлять галочки вручную в каждой карточке, выясним, как автоматизировать этот процесс. Выясним, как использовать встроенную обработку Загрузка данных из файла:
Номенклатура.Также можно воспользоваться обработкой Групповое изменение реквизитов. В ней выберем объект Номенклатура, добавим условие отбора (например, «Ссылка в списке») и скопируем список нужных товаров. Затем укажем новое значение для реквизита запрета и нажмем кнопку «Изменить реквизиты».
Если задача стоит шире — не просто запретить, а пометить товар как неликвидный для дальнейшего анализа, рекомендуем использовать механизм Товарных категорий или создание отдельного сегмента «Неликвиды». Это позволит не только ограничивать продажи, но и формировать отчеты по остаткам и оборачиваемости именно в разрезе неликвидного товара, что крайне полезно для отдела закупок и руководителей склада. Для автоматизации выявления таких позиций подойдёт внешний отчет для анализа неликвидов на складе.
Таким образом, мы проанализировали различные подходы к ограничению продажи номенклатуры. Выбор конкретного метода зависит от версии вашей программы и того, насколько гибким должен быть этот запрет.