Как запретить добавление в заказы товаров с дальними сроками поставки в 1С:Комплексная автоматизация 2

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

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

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

Метод 1. Разделение потоков через виртуальные склады

Проанализируем самый простой и надежный методологический способ — использование структуры складов. Если мы заранее знаем, что поставки будут приходить в разные периоды, мы можем разделить их на уровне складского учета еще на этапе оформления документа Заказ поставщику.

Разберем по шагам, как это реализовать:

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

В чем преимущество такого подхода? Когда менеджер открывает форму Подбор товаров в документе Заказ клиента, он видит остатки и ожидаемые поступления только по тем складам, которые ему доступны. Если склад «Дальние» исключен из его области видимости или не входит в общую группу складов, товар просто не будет отображаться как доступный для обеспечения. Когда наступит время (например, наступит декабрь), логист может массово изменить склад в Заказе поставщику на основной, и товар станет доступен для менеджеров.

Метод 2. Использование периодов контроля обеспечения

Рассмотрим более глубокую настройку системы через механизм Обеспечения потребностей. В 1С:КА 2.5 логика работы с будущими поступлениями завязана на настройках склада и способов обеспечения.

Выясним причину, по которой товар вообще становится доступным для резервирования. Это происходит из-за установленного в строках заказа статуса Резервировать по мере поступления. Система анализирует график движения товаров и «сцепляет» свободный остаток в будущем Заказе поставщику с потребностью в Заказе клиента.

Чтобы ограничить этот процесс, выполним следующие настройки:

  1. Перейдем в раздел Склад и доставка — Настройки и справочники — Способы обеспечения потребностей.
  2. Найдем способ, используемый для ваших поставок. Обратим внимание на параметр Гарантированный срок отгрузки.
  3. В настройках склада (или группы складов) включим Контроль остатков. Если выключить опцию «Не ограничивать подбор товаров по остаткам», система станет строже относиться к планируемым датам.
  4. Самое важное: в настройках параметров обеспечения склада можно задать Период контроля. Если дата поступления в Заказе поставщику выходит за границы этого периода, система не предложит этот товар к автоматическому резервированию.

Метод 3. Ограничение через сегменты номенклатуры и соглашения

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

Для этого выполним следующие действия:

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

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

Метод 4. Техническое решение через расширение конфигурации

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

Посмотрим на пример логики, которую можно реализовать в процедуре ПередЗаписью или в обработке проверки заполнения:


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

КонецПроцедуры

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

Метод 5. Управление правами доступа (Профили групп доступа)

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

В 1С:КА 2 существуют роли, позволяющие или запрещающие установку конкретных статусов обеспечения. Например, можно оставить менеджеру право устанавливать только статус К обеспечению (который просто фиксирует потребность без резерва под конкретный приход) и запретить статус Резервировать по мере поступления для определенных групп товаров. Однако этот метод чаще используется как вспомогательный вместе с разделением складов.

Резюме и рекомендации

Мы проанализировали несколько путей решения задачи. Выбор конкретного метода зависит от архитектуры ваших бизнес-процессов:

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

← На главную