В торговой деятельности часто возникает ситуация, когда товар закуплен у поставщика и уже находится в пути, но дата его фактического прибытия на склад сильно разнесена во времени. Например, одна часть груза ожидается в текущем месяце, а вторая — только в следующем году. По умолчанию 1С:Комплексная автоматизация (или ERP) позволяет менеджерам резервировать такой товар под заказы клиентов, используя статус обеспечения Резервировать по мере поступления. Это может привести к тому, что менеджеры наобещают клиентам поставку, которую компания не сможет выполнить в разумные сроки.
В данной статье мы подробно разберем, как реализовать частичный запрет на продажу товаров «в пути», разделяя их по срокам планируемого поступления. Мы рассмотрим как методологические способы настройки программы, так и технические варианты решения задачи.
Проанализируем самый простой и надежный методологический способ — использование структуры складов. Если мы заранее знаем, что поставки будут приходить в разные периоды, мы можем разделить их на уровне складского учета еще на этапе оформления документа Заказ поставщику.
Разберем по шагам, как это реализовать:
Заказа поставщику на товар, который придет в январе следующего года, в поле Склад укажем наш новый виртуальный склад.В чем преимущество такого подхода? Когда менеджер открывает форму Подбор товаров в документе Заказ клиента, он видит остатки и ожидаемые поступления только по тем складам, которые ему доступны. Если склад «Дальние» исключен из его области видимости или не входит в общую группу складов, товар просто не будет отображаться как доступный для обеспечения. Когда наступит время (например, наступит декабрь), логист может массово изменить склад в Заказе поставщику на основной, и товар станет доступен для менеджеров.
Рассмотрим более глубокую настройку системы через механизм Обеспечения потребностей. В 1С:КА 2.5 логика работы с будущими поступлениями завязана на настройках склада и способов обеспечения.
Выясним причину, по которой товар вообще становится доступным для резервирования. Это происходит из-за установленного в строках заказа статуса Резервировать по мере поступления. Система анализирует график движения товаров и «сцепляет» свободный остаток в будущем Заказе поставщику с потребностью в Заказе клиента.
Чтобы ограничить этот процесс, выполним следующие настройки:
Заказе поставщику выходит за границы этого периода, система не предложит этот товар к автоматическому резервированию.Проанализируем ситуацию, когда нам нужно запретить не просто резервирование, а само добавление товара в документ. Это можно сделать через механизм Типовых или индивидуальных соглашений с клиентами.
Для этого выполним следующие действия:
В этом случае менеджер при попытке добавить товар, не входящий в сегмент, получит предупреждение от системы. Этот метод требует настройки регламентного задания по обновлению сегментов, чтобы состав товаров актуализировался автоматически при изменении дат поставок.
Если методологические способы не подходят и требуется жесткий контроль «на лету», следует рассмотреть вариант создания небольшого расширения. Мы можем внедрить проверку даты поступления при выборе товара в Заказе клиента или при его проведении.
Посмотрим на пример логики, которую можно реализовать в процедуре ПередЗаписью или в обработке проверки заполнения:
Процедура ПроверитьДатыПоступленияТоваров(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Для Каждого СтрокаТЧ Из Источник.Товары Цикл
Если СтрокаТЧ.ВариантОбеспечения = Перечисления.ВариантОбеспечения.РезервироватьПоМереПоступления Тогда
// Получаем график поступления для данной позиции
ТаблицаПоступлений = ПолучитьГрафикПоступлений(СтрокаТЧ.Номенклатура, СтрокаТЧ.Характеристика, Источник.Склад);
Для Каждого Поступление Из ТаблицаПоступлений Цикл
Если Поступление.ДатаПоступления > Дата('20221231235959') Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Товар " + СтрокаТЧ.Номенклатура + " поступит только в 2023 году. Резервирование запрещено!";
Сообщение.УстановитьДанные(Источник);
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В данном примере кода мы анализируем строки таблицы товаров, где установлен вариант обеспечения РезервироватьПоМереПоступления. Если система находит, что дата планируемого прихода товара по связанным документам Заказ поставщику превышает установленный лимит (в нашем примере — конец 2022 года), транзакция проведения отменяется, а менеджер получает информативное сообщение.
Разберем еще один нюанс, упомянутый в обсуждении. Менеджеры могут обходить запреты, просто меняя статусы строк. Чтобы этого избежать, можно ограничить права доступа в профиле пользователя.
В 1С:КА 2 существуют роли, позволяющие или запрещающие установку конкретных статусов обеспечения. Например, можно оставить менеджеру право устанавливать только статус К обеспечению (который просто фиксирует потребность без резерва под конкретный приход) и запретить статус Резервировать по мере поступления для определенных групп товаров. Однако этот метод чаще используется как вспомогательный вместе с разделением складов.
Мы проанализировали несколько путей решения задачи. Выбор конкретного метода зависит от архитектуры ваших бизнес-процессов:
Помните, что статус Резервировать по мере поступления — это мощный инструмент планирования, и его ограничение должно быть обоснованным, чтобы не парализовать работу отдела закупок и продаж в долгосрочной перспективе.