Часто возникает потребность оперативно информировать менеджеров или закупщиков о том, что запас определенного товара подходит к концу — например, когда на складе остается всего 1 штука или позиция полностью заканчивается. Рассмотрим подробнее, как можно реализовать такой контроль остатков в конфигурации «1С:Управление торговлей 11.5» и какие подводные камни нас ожидают.
В типовой «1С:Управление торговлей 11.5» отсутствует механизм мгновенных интерактивных оповещений. Вы не увидите всплывающих окон, push-уведомлений или системных сообщений для сотрудников прямо в момент проведения документа реализации, если остаток упал ниже заданного порога. Типовая подсистема оповещений предназначена в первую очередь для взаимодействия с клиентами (уведомления об оплате, изменении статусов заказов) и не рассчитана на реакцию по внутренним товарным триггерам.
Прежде чем приступать к настройке уведомлений, проанализируем ситуацию с остатками. Крайне важно понимать разницу между физическим и свободным остатком, так как уведомление о наличии 1 штуки может ввести в заблуждение.
ТоварыНаСкладах.РаспределениеЗапасов. Этот показатель учитывает зарезервированные товары под заказы клиентов, ожидаемые поступления и графики отгрузок.На практике товар может лежать на складе в количестве 10 штук (физический остаток), но свободный остаток уже будет равен 0 из-за активных резервов. Поэтому контролировать и рассылать уведомления правильнее именно по свободному остатку.
Это самый простой и штатный метод без привлечения программистов. Разберем по шагам, как его настроить:
В наличии (если нужен физический остаток) или Доступно (для свободного остатка). Установим условие: «Меньше или равно 1».Вместо реактивных уведомлений типовая УТ 11.5 предлагает проактивную модель управления запасами. Настроим методы обеспечения потребностей:
Ответственный сотрудник (закупщик) видит все дефицитные позиции в едином окне и может сразу формировать заказы поставщикам, без необходимости читать множество разрозненных писем.
Если штатные рассылки отчетов выглядят недостаточно гибко, разработаем дополнительную внешнюю обработку.
РаспределениеЗапасов, выявляя позиции с остатком меньше или равным единице.Такой подход хорош тем, что не создает дополнительной нагрузки на документы в момент их проведения и не требует снятия базы с поддержки.
Если бизнес-процесс жестко требует мгновенной реакции на снижение остатка именно при проведении документа, придется использовать расширение конфигурации.
Мы можем создать подписку на событие ОбработкаПроведения для расходных документов или событие ПриЗаписи для набора записей складских регистров. Однако, здесь есть критически важная рекомендация по производительности:
Не следует отправлять внешние уведомления (например, через HTTP-запросы в мессенджеры или отправку писем) синхронно внутри транзакции проведения документа. Это неизбежно замедлит работу пользователей и может привести к транзакционным блокировкам в системе. Оптимальный архитектурный подход — при проведении документа помещать событие дефицита в отдельную очередь (специально созданный регистр сведений). Затем отдельное фоновое задание, работающее по расписанию (например, каждую минуту), будет читать эту очередь и выполнять саму отправку уведомлений.