Как спланировать этапы производства многоуровневой спецификации в один день в 1С:ERP?

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

При внедрении производственного учета в 1С:ERP Управление предприятием специалисты часто сталкиваются со следующей проблемой: при планировании графика производства цепочка вложенных полуфабрикатов (так называемая «матрешка» из спецификаций) растягивается во времени. Например, у вас есть 8 уровней вложенности полуфабрикатов, каждый из которых физически изготавливается за 15–20 минут. Общее время производства изделия составляет около 3 часов, и весь процесс происходит в течение одного рабочего дня. Однако при запуске планирования в 1С:ERP система разносит каждый этап на отдельный день (Этап 1 — первого числа, Этап 2 — второго и так далее). В результате трехчасовой процесс растягивается на 8 дней.

В этой статье мы подробно разберем, почему так происходит, рассмотрим стандартные механизмы решения этой проблемы, проанализируем новые возможности современных редакций 1С:ERP (2.5) и оценим альтернативные методологические подходы.

Выясняем причину: почему система переносит этапы на следующий день?

Для начала проанализируем внутреннюю логику работы алгоритма межцехового планирования 1С:ERP. В системе по умолчанию заложено жесткое правило дискретного интервального планирования.

Если для подразделения выбран интервал планирования День, то любой полуфабрикат или работа, выпущенные на этапе N, считаются доступными для начала следующего этапа N+1 только на границе следующего интервала (то есть на следующий рабочий день). Система сознательно создает логистический буфер. Программа «не знает», в какое именно время внутри дня завершится выпуск на этапе N (в 9:00 или в 17:55), поэтому гарантировать доступность материала для этапа N+1 она может только со следующего дня.

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

---

Решение 1: Использование механизма «Производится в процессе»

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

Разберем этот метод по шагам:

  1. Откроем Ресурсную спецификацию для полуфабрикатов верхних уровней.
  2. В табличной части материалов для вложенного полуфабриката в колонке Способ получения материала укажем значение Обеспечивать (вместо Произвести по основной спецификации). При такой настройке система не будет автоматически порождать каскад этапов на всю глубину «матрешки» при создании Заказа на производство. Она создаст только один этап верхнего уровня и зафиксирует дефицит полуфабрикатов.
  3. Перейдем к сформированному документу Этап производства верхнего уровня.
  4. В самом документе этапа (или через рабочее место диспетчирования) для дефицитных полуфабрикатов установим способ обеспечения Производится в процессе.
  5. Выполним команду Сформировать этапы.

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

Важный нюанс: Полуфабрикаты, производимые «в процессе», жестко обособляются под конкретное назначение (под конкретный этап-получатель). Если у вас на складе вдруг появится свободный остаток такого полуфабриката (например, отменили другой заказ), система все равно запланирует его производство с нуля, проигнорировав складские остатки.

---

Решение 2: Использование интервала планирования «Смена» в ERP 2.5

Если на предприятии развернута современная редакция 1С:ERP 2.5, у нас появляется отличная альтернатива — использование нового интервала планирования «Смена» (доступно начиная с версии 2.5.21).

Ранее пользователи часто пытались решить проблему, переходя на интервал Час (Вариант 1 автора темы). Однако планирование с шагом в 1 час создает колоссальную нагрузку на СУБД: количество временных слотов (таймслотов) в регистрах планирования увеличивается в 24 раза по сравнению с дневным интервалом. На больших объемах данных система начинает зависать.

Интервал Смена является идеальным компромиссом:

---

Решение 3: Динамическая структура заказа (ERP 2.5)

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

Сами этапы создаются непосредственно перед запуском партий в производство. Это полностью решает проблему перегрузки базы данных «пустыми» документами этапов по всей цепочке вложенности и позволяет диспетчеру гибко управлять датами запуска.

---

Решение 4: Пооперационный контроль через Маршрутные карты (альтернатива спецификациям)

Проанализируем технологическую цепочку. Если вся ваша «матрешка» из 8 уровней полуфабрикатов физически собирается на одном рабочем месте (или в рамках одного цеха) в течение нескольких часов без промежуточного перемещения на склад хранения, то с точки зрения методологии ERP — это один этап производства.

Вместо создания 8 отдельных спецификаций на каждый полуфабрикат правильнее сделать следующее:

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

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

---

Анализ рисков: Почему программное «схлопывание» спецификаций (Вариант 2 автора) опасно?

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

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


Процедура РазузловатьСпецификацию(ТекущаяСпецификация, ТаблицаМатериалов, КоэффициентКоличества) Экспорт
    
    // Выбираем материалы текущего уровня спецификации
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	СпецификацияМатериалы.Номенклатура КАК Номенклатура,
        |	СпецификацияМатериалы.Количество * &Коэффициент КАК Количество,
        |	СпецификацияМатериалы.СпособПолученияМатериала КАК СпособПолучения,
        |	СпецификацияМатериалы.ПроизводимыйПолуфабрикатСпецификация КАК ВложеннаяСпецификация
        |ИЗ
        |	Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК СпецификацияМатериалы
        |ГДЕ
        |	СпецификацияМатериалы.Ссылка = &Спецификация";
        
    Запрос.УстановитьПараметр("Спецификация", ТекущаяСпецификация);
    Запрос.УстановитьПараметр("Коэффициент", КоэффициентКоличества);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        Если Выборка.СпособПолучения = Перечисления.СпособыОбеспеченияПотребности.ПроизвестиПоСпецификации Тогда
            // Рекурсивный переход на уровень ниже
            РазузловатьСпецификацию(Выборка.ВложеннаяСпецификация, ТаблицаМатериалов, Выборка.Количество);
        Иначе
            // Добавляем исходный материал в плоскую таблицу
            НоваяСтрока = ТаблицаМатериалов.Добавить();
            НоваяСтрока.Номенклатура = Выборка.Номенклатура;
            НоваяСтрока.Количество   = Выборка.Количество;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Несмотря на кажущуюся простоту и удобство планирования, этот путь несет в себе серьезные экономические и учетные риски:

Использовать данный метод крайне не рекомендуется.

---

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

Для решения проблемы долгого планирования многоуровневых спецификаций в 1С:ERP выберите один из методологически верных путей:

  1. Если полуфабрикаты должны учитываться на складе — используйте связку «Обеспечивать» + «Производится в процессе».
  2. Если производство быстрое и происходит на одном участке — перейдите от каскада спецификаций к одной спецификации с Маршрутной картой (пооперационным планированием).
  3. Если вы работаете в 1С:ERP 2.5 — настройте график работы подразделений с интервалом планирования «Смена».
← На главную