Почему полуфабрикаты не попадают в план производства 1С:ERP и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Промышленность, строительство и АПК
← На главную

В процессе работы с подсистемой мастер-планирования в 1С:ERP Управление предприятием пользователи и программисты часто сталкиваются с ситуацией, когда при заполнении документа План производства в него не попадают полуфабрикаты (ПФ). При этом в ресурсных спецификациях (РС) всё дерево изделия заполнено корректно. Попытки решить проблему «в лоб» через изменение типового кода часто приводят к непредсказуемым последствиям, таким как кратное завышение количества или нарушение логики обеспечения. В рамках данной статьи мы подробно разберем, почему система ведет себя именно так, проанализируем программные ограничения и найдем методологически верный способ настройки планирования.

Разберем причину на уровне программного кода

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


Если Строка.СпособПолученияМатериала = Перечисления.СпособыПолученияМатериаловВСпецификации.ПроизводитсяНаЭтапе
    ИЛИ Строка.СпособПолученияМатериала = Перечисления.СпособыПолученияМатериаловВСпецификации.ПроизвестиПоСпецификации
    ИЛИ Строка.СпособАвтовыбораНоменклатуры = Перечисления.СпособыАвтовыбораНоменклатуры.УточняетсяПриПроизводстве Тогда
    Продолжить;
КонецЕсли;

Этот участок кода фактически исключает из процесса автоматического расчета плана те позиции, которые помечены как «производимые внутри процесса». Проанализируем, почему разработчики 1С применили такое решение. Основная причина кроется в архитектуре учета затрат. Если полуфабрикат производится непосредственно «на этапе», он не фиксируется как отдельная складская единица. Он является «транзитным» материалом, который рождается и потребляется внутри одной производственной цепочки. Чтобы контролировать эти процессы на этапе исполнения, полезно использовать инструменты, обеспечивающие анализ выпуска продукции с учетом затрат — есть готовый анализ себестоимости выпущенной продукции с разузлованием. Планировать выпуск такого ПФ в Плане производства бессмысленно, так как план ориентирован на выпуск продукции на склад или для обеспечения других заказов.

Проанализируем разницу в способах получения полуфабрикатов

Для понимания логики планирования крайне важно выбрать верную методику учета: транзитные полуфабрикаты или выпуск на склад, различая три ключевых статуса, которые устанавливаются в Ресурсной спецификации для номенклатуры типа ПФ:

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

Последствия вмешательства в типовой алгоритм

Рассмотрим ситуацию, когда программист решает «закомментировать» вышеуказанные условия, чтобы ПФ все-таки попали в план. Как показывает практика, это приводит к многократному завышению количества (в 2, 4 и более раз). Почему это происходит?

Проблема заключается в том, что расчет плана — это многошаговый процесс. Посмотрим на структуру запросов, участвующих в расчете:


СтруктураЗапроса = РазложитьПакетЗапросовВСтруктуруТекстовЗапросов(ТекстЗапросаОперацииРасчетаПланаПроизводства());
Шаг = Шаг(ПорядокРасчета, Истина);
Шаг["Описание"].Добавить(СтруктураЗапроса.НаправленияДеятельности, "");
Шаг["Описание"].Добавить(СтруктураЗапроса.Дельта, "");
Шаг["Описание"].Добавить(СтруктураЗапроса.Расчет, "Расчет");

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

Методологически верное решение: Настройка НСИ

Вместо того чтобы изменять программный код, нам следует настроить нормативно-справочную информацию так, чтобы система понимала наши намерения. Если ваша задача — видеть в плане производства конкретные объемы для разных цехов, выполним следующие шаги:

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

Проанализируем результат: теперь при заполнении Плана производства программа автоматически создаст отдельные строки для ПФ. Это позволит сформировать план выпуска для каждого цеха в отдельности без дублирования материалов.

Выясним причины «зацикливания»

Важно помнить, почему разработчики 1С так осторожны с автоматическим разузлованием ПФ со статусом «Произвести». В сложных производственных структурах существует риск рекурсии. Если изделие А требует ПФ Б, а ПФ Б требует возврата части изделия А, система может войти в бесконечный цикл расчетов. Чтобы исключить такие ситуации, рекомендуется регулярно проводить проверку зацикливания спецификаций с помощью специализированных обработок.

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

Подводя итог, отметим, что механизм 1С:ERP достаточно гибок, если следовать заложенной в него логике. Помните:

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

← На главную