Как запретить включение определенной номенклатуры в заказы покупателей?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе ведения торговой деятельности часто возникает необходимость ограничить менеджеров в выборе определенных товаров при оформлении заказов. Это может быть связано с выводом товара из ассортимента, его резервированием под спецпроекты или признанием позиции неликвидной. Рассмотрим подробнее, как реализовать механизм запрета выбора номенклатуры в программах системы «1С:Предприятие 8» (таких как «Управление торговлей 11», «ERP Управление предприятием» или «Комплексная автоматизация 2»).

Способ 1. Использование сегментов номенклатуры и типовых соглашений

Это штатный механизм, который не требует изменения программного кода. Логика системы строится на ограничении списка доступных товаров через Соглашения с клиентами. Разберем этот процесс по шагам:

  1. Создание сегмента: Перейдем в раздел «CRM и маркетинг» — «Сегменты номенклатуры». Создадим новый сегмент, например, «Товары, разрешенные к продаже». Настроим правила формирования сегмента так, чтобы в него попадала вся актуальная номенклатура, кроме запрещенной.
  2. Настройка соглашения: В типовом или индивидуальном соглашении с клиентом на закладке «Ограничение номенклатуры» укажем наш созданный сегмент.
  3. Проверка прав доступа: Это критически важный этап. Проанализируем настройки прав пользователей. Если у менеджера установлена роль Отклонение от условий продаж, система позволит ему добавить в заказ товар, не входящий в сегмент, выдав лишь предупреждение.

Чтобы запрет стал жестким, необходимо отредактировать Профиль групп доступа. Найдем профиль «Менеджер по продажам», скопируем его и в новом профиле снимем галочку с роли Отклонение от условий продаж. После назначения этого профиля пользователям, система будет блокировать проведение заказа с «неправильным» товаром.

Способ 2. Использование статусов номенклатуры

В современных конфигурациях 1С (начиная с версий УТ 11.4/ERP 2.4) реализован механизм статусов в карточке товара. Если мы откроем карточку Номенклатура, то увидим реквизит Статус.

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

Способ 3. Программная доработка через дополнительные реквизиты

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

Проанализируем алгоритм реализации:

  1. Добавим дополнительный реквизит для справочника Номенклатура с типом Булево и наименованием «Запрещено к продаже».
  2. Создадим Расширение конфигурации, чтобы не снимать основную программу с поддержки.
  3. В расширении создадим подписку на событие ОбработкаПроверкиЗаполнения или ПередЗаписью для документа ЗаказПокупателю.

Пример программного кода для проверки в модуле документа или расширении:


Процедура ПроверитьЗапрещеннуюНоменклатуру(Источник, Отказ, ПроверкаЗаполнения) Экспорт
    Для Каждого СтрокаТЧ Из Источник.Товары Цикл
        // Получаем значение доп. реквизита
        ЗапретПродажи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтрокаТЧ.Номенклатура, "ДопРеквизит_ЗапрещеноПродавать");
        
        Если ЗапретПродажи = Истина Тогда
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Товар " + СтрокаТЧ.Номенклатура + " запрещен к продаже!";
            Сообщение.Поле = "Товары[" + (СтрокаТЧ.НомерСтроки - 1) + "].Номенклатура";
            Сообщение.УстановитьДанные(Источник);
            Сообщение.Сообщить();
            Отказ = Истина;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Способ 4. Массовая установка запрета из файла Excel

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

  1. Перейдем в раздел «НСИ и администрирование» — «Загрузка данных из файла».
  2. Выберем объект Номенклатура.
  3. Подготовим Excel-файл с двумя колонками: «Артикул» и «Запрещено к продаже» (значение «Да»).
  4. Загрузим файл, сопоставим поля и выполним загрузку. Система автоматически обновит значения во всех найденных карточках товаров.

Также можно воспользоваться обработкой Групповое изменение реквизитов. В ней выберем объект Номенклатура, добавим условие отбора (например, «Ссылка в списке») и скопируем список нужных товаров. Затем укажем новое значение для реквизита запрета и нажмем кнопку «Изменить реквизиты».

Работа с признаком «Неликвид»

Если задача стоит шире — не просто запретить, а пометить товар как неликвидный для дальнейшего анализа, рекомендуем использовать механизм Товарных категорий или создание отдельного сегмента «Неликвиды». Это позволит не только ограничивать продажи, но и формировать отчеты по остаткам и оборачиваемости именно в разрезе неликвидного товара, что крайне полезно для отдела закупок и руководителей склада. Для автоматизации выявления таких позиций подойдёт внешний отчет для анализа неликвидов на складе.

Таким образом, мы проанализировали различные подходы к ограничению продажи номенклатуры. Выбор конкретного метода зависит от версии вашей программы и того, насколько гибким должен быть этот запрет.

← На главную