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