При внедрении 1С:ERP часто возникают ситуации, когда типового функционала обеспечения потребностей недостаточно для удовлетворения специфических бизнес-процессов. Одной из таких задач является необходимость автоматического выбора поставщика для сырья, основываясь на данных, которые хранятся не в типовых способах обеспечения, а в дополнительных реквизитах характеристик номенклатуры. Рассмотрим, как решить эту задачу, минимизируя вмешательство в типовой код конфигурации.
Стандартный механизм формирования заказов по потребностям в 1С:ERP опирается на способы обеспечения, которые могут быть настроены либо на склад, либо на конкретный вид номенклатуры. Однако, когда поставщик жестко привязан к конкретной характеристике через дополнительный реквизит, стандартная логика требует создания огромного количества способов обеспечения, что ведет к избыточности настроек. Вместо того чтобы «курочить» типовую конфигурацию, мы выберем путь автоматизации создания заказов.
Наиболее эффективным и безопасным способом является разработка внешней обработки, которая берет на себя логику распределения потребностей. Это позволяет оставить типовой механизм формирования потребностей нетронутым, используя его лишь как источник данных для анализа.
ПотребностиЗаказовКПроизводству или ОбеспечениеЗаказов.дополнительного реквизита, в котором указан контрагент-поставщик. Это реализуется через механизм ПВХ ДополнительныеРеквизитыИСведения.Заказ поставщику, автоматически подставляя нужного контрагента.Разберем пример кода для получения значения дополнительного реквизита:
Функция ПолучитьПоставщикаДляХарактеристики(Характеристика) Экспорт
// Получаем план видов характеристик для доп. реквизитов
СвойствоПоставщик = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Поставщик");
// Получаем значение из регистра сведений
ЗначениеПоставщика = РегистрыСведений.ДополнительныеСведения.Получить(
НоваяСтруктура("Объект, Свойство", Характеристика, СвойствоПоставщик)
);
Возврат ЗначениеПоставщика.Значение;
КонецФункции
Многие пытаются использовать функционал Способы обеспечения с настройкой С несколькими поставщиками. Однако в этом случае поставщик остается пустым, и при автоматическом формировании заказов система не сможет однозначно определить, у кого закупать сырье. Попытки «допилить» этот функционал внутри типового рабочего места потребуют изменения модулей менеджера, что усложнит обновление 1С:ERP в будущем. Использование внешней обработки позволяет:
Для корректной работы системы мы рекомендуем придерживаться следующего алгоритма:
Во-первых, разделите процессы планирования и формирования заказов. Используйте типовое планирование производства для расчета объемов потребности в сырье. Во-вторых, используйте созданную вами внешнюю обработку для пакетной генерации документов Заказ поставщику по расписанию или по требованию менеджера отдела закупок.
При программном создании Заказа поставщику используйте метод ЗаполнитьПоСпецификации или просто заполняйте табличную часть Товары, передавая в неё рассчитанную номенклатуру, характеристику и найденного через доп. реквизит поставщика. Не забудьте корректно рассчитать Дату поступления, исходя из Срока исполнения, указанного в соглашении с контрагентом.
Помните, что 1С:ERP — это сложная система, и попытка решить задачу «в лоб» через изменение типового кода всегда несет риски. Программный подход через внешние инструменты — это лучший способ достичь целей вашего бизнеса, не жертвуя стабильностью и обновляемостью вашей учетной системы.