Как в 1С:Управление торговлей 11.5 запретить продажи определенной группы товаров на время инвентаризации

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

В процессе деятельности торгового предприятия часто возникает необходимость проведения инвентаризации (пересчета товаров), которая может затянуться на несколько дней — для этого отлично подойдет готовое решение для автоматизации инвентаризации в 1С:УТ 11.5. В этот период критически важно исключить возможность продажи товаров, которые находятся в процессе пересчета, чтобы избежать расхождений в учетных и фактических данных. В типовой конфигурации «1С:Управление торговлей 11.5» (УТ 11.5) нет одной «волшебной кнопки», которая бы мгновенно блокировала группу товаров, но существует целый ряд штатных и программных методов решения этой задачи. Разберем их подробно.

Метод 1. Блокировка ячеек на адресном складе (штатный механизм WMS)

Если в вашей организации используется склад с адресным хранением (ордерный склад), то система предлагает наиболее методически верный способ — для его оптимизации есть мобильный терминал сбора данных для инвентаризации и адресного хранения. Рассмотрим, как это работает. При создании документа Пересчет товаров в статусе «В работе» система позволяет заблокировать ячейки, которые попадают в зону инвентаризации.

Проанализируем алгоритм действий:

  1. Создаем документ Пересчет товаров.
  2. В настройках документа на вкладке «Основное» или при заполнении отбора указываем интересующую нас группу товаров или конкретную область хранения.
  3. Устанавливаем флаг «Блокировать ячейки».

После этого система на программном уровне запретит любые складские операции (отбор для отгрузки, перемещение) из этих ячеек. Это самый надежный способ для складов с адресным хранением, так как он блокирует физическую возможность отгрузить товар, даже если менеджер оформит документ Реализация товаров и услуг.

Метод 2. Использование сегментов номенклатуры и типовых соглашений

Если склад не является адресным, мы можем воспользоваться механизмом сегментации. В УТ 11.5 реализована возможность ограничивать продажи в зависимости от вхождения товара в определенный сегмент. Выясним, как настроить такую блокировку:

  1. Создаем новый сегмент номенклатуры, например, «Товары в пересчете». Способ формирования можно выбрать «Формировать вручную» или «Периодически обновлять» (по группе номенклатуры).
  2. В типовых или индивидуальных соглашениях с клиентами, по которым работают менеджеры, переходим на вкладку «Уточнение цен по товарам».
  3. В системе можно настроить правило: продажи разрешены только для товаров из определенного сегмента (например, «Доступные к продаже»).

Если мы временно исключим инвентаризируемую группу товаров из «разрешенного» сегмента или добавим их в «запрещенный» с соответствующей настройкой в соглашении, система выдаст ошибку при попытке добавить товар в заказ или реализацию. Это отличный штатный способ контроля «из коробки».

Метод 3. Манипуляция со статусами номенклатуры

Рассмотрим еще один простой, но эффективный метод — изменение статуса в карточке товара. У каждого элемента справочника Номенклатура есть реквизит Статус.

Для блокировки продаж выполним следующие шаги:

При таких статусах система автоматически блокирует выбор этих позиций в документах продажи. Менеджер просто не сможет подобрать товар в корзину. После завершения инвентаризации необходимо так же массово вернуть статус «Купля-продажа разрешена».

Метод 4. Программная блокировка через расширение (для разработчиков)

Если штатные методы кажутся слишком трудоемкими или не подходят под бизнес-процесс (например, нужно блокировать только для определенных пользователей), можно прибегнуть к написанию небольшого расширения. Проанализируем логику, предложенную опытными разработчиками: создать сегмент «Запрет продаж» и проверять его при проведении документа — для этого отлично подойдет настройка запрета проведения документов без программирования.

Пример кода, который можно разместить в модуле расширения для документа РеализацияТоваровУслуг (процедура ПередЗаписью или ОбработкаПроверкиЗаполнения):


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

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

Метод 5. Управление качеством товара

Выясним, как использовать механизм контроля качества. Если в настройках системы включено «Управление качеством товаров», мы можем временно перевести остатки группы товаров в статус, отличный от «Новый».

Алгоритм действий:

  1. Создаем документ Корректировка качества товаров.
  2. Переводим остатки из качества «Новый» в «Ограниченно годен».
  3. В настройках прав пользователей или правил продаж ограничиваем реализацию товаров с качеством ниже «Новый».

По завершении пересчета создается обратный документ, возвращающий товар в статус «Новый».

Метод 6. Использование 100% скидки (Обходной путь)

Разберем ситуацию, когда нужно быстро привлечь внимание продавца к цене. Если установить на сегмент товаров автоматическую скидку в 100%, то цена товара станет нулевой. Поскольку УТ 11.5 по умолчанию настроена так, что не умеет продавать товары с незаполненной (нулевой) ценой, при попытке проведения выйдет сообщение об ошибке.

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

Метод 7. Виртуальный склад или резервирование

Рассмотрим вариант с перемещением остатков. Можно создать виртуальный склад «Склад инвентаризации» и переместить туда все остатки группы товаров документом Перемещение товаров. Поскольку на основном складе остаток станет нулевым, продажи будут невозможны (при включенном контроле остатков). После инвентаризации остатки перемещаются обратно с учетом выявленных излишков и недостач.

Альтернативно можно использовать резервирование. Создается заказ клиента (технический), в который подбираются все остатки группы, и устанавливается вариант обеспечения «Резервировать на складе». Это выведет товар из свободного остатка, и другие менеджеры не смогут его продать.

Резюме: выбор метода зависит от архитектуры вашего учета. Для профессиональных складов оптимальна блокировка ячеек. Для быстрой блокировки в торговом зале лучше всего подходят статусы номенклатуры или сегментация. Если же требуется жесткий контроль с логированием причин — используйте расширение с проверкой вхождения в «стоп-лист».

← На главную