Как реализовать иерархию и прослеживаемость серий в производстве 1С:ERP

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

В процессе производства часто возникает задача прослеживаемости «генеалогии» продукции. Типичный пример: на склад поступает лист материала (серия 001), который затем разрезается на несколько частей (серия 002), а те, в свою очередь, проходят дальнейшую обработку или деление (серия 003). Для бизнеса критически важно видеть всю цепочку преобразований в виде иерархического отчета. Рассмотрим подробнее, как реализовать такую структуру в 1С:ERP Управление предприятием, используя как стандартные возможности, так и кастомные доработки.

Анализ стандартных механизмов 1С:ERP

Прежде чем приступать к разработке новой архитектуры, проанализируем штатный функционал системы. В типовом решении 1С:ERP уже заложены механизмы прослеживаемости, которые работают при условии правильной настройки Политики учета серий.

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

  1. Зайти в настройки номенклатуры и создать/выбрать Политику учета серий.
  2. Установить тип политики «Учет себестоимости по сериям» или «Управление остатками серий».
  3. Обязательно включить флаг «Учет серий в производстве» (на этапах производства).

Если эти настройки выполнены, данные о связи серий будут автоматически записываться в систему через документы Этап производства. На вкладке «Обеспечение материалами» указывается серия исходного компонента, а на вкладке «Выпуск» — серия полученного полуфабриката или изделия.

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

Архитектура связи через регистры накопления

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

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

Создание кастомной архитектуры через справочник или регистр

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

1. Использование иерархического справочника

Создадим вспомогательный справочник (например, ПартииПроизводства), где в качестве реквизитов будут выступать Номенклатура и Серия. Ключевым моментом здесь является наличие реквизита Родитель (ссылка на этот же справочник).


// Пример заполнения связи при выпуске
НоваяПартия = Справочники.ПартииПроизводства.СоздатьЭлемент();
НоваяПартия.Наименование = СерияВыпуска.Наименование;
НоваяПартия.Серия = СерияВыпуска;
НоваяПартия.Номенклатура = НоменклатураВыпуска;
НоваяПартия.РодительскаяПартия = СсылкаНаПартиюИсходногоСырья;
НоваяПартия.Записать();

2. Использование регистра сведений (метод графа)

Более гибкий вариант — регистр сведений ИсторияПреобразованияСерий со следующими измерениями:

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

Реализация иерархического отчета в СКД

Разберем по шагам, как построить отчет, если мы решили использовать стандартные данные или свой регистр. Наилучшим инструментом будет Система компоновки данных (СКД).

  1. Создадим основной набор данных (запрос), который выбирает пары «Источник - Приемник».
  2. Настроим Связи наборов данных. В СКД можно связать набор данных сам с собой.
  3. В поле «Источник связи» укажем СерияПриемник, а в поле «Приемник связи» — СерияИсточник.
  4. Укажем параметр Условие связи, чтобы система понимала, как глубоко нужно строить дерево.

Это позволит платформе автоматически сформировать иерархический вид дерева любой вложенности без написания сложного программного обхода в коде 1С.

Важные нюансы при «разрезании» серий

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

А) Производственный процесс:

Используется документ Этап производства. Это самый правильный путь для сохранения полной стоимости и прослеживаемости. Связь серий фиксируется жестко в регистрах распределения материалов.

Б) Складская операция:

Используется документ Сборка (разборка) товаров. Здесь также можно указать серии для исходного комплекта и для полученных комплектующих. Отчеты по прослеживаемости серий в ERP поддерживают данные документы «из коробки».

В) Корректировка серий:

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

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

Подводя итог, можно сказать, что в 1С:ERP 2.4 задача прослеживаемости серий решаема. Рассмотрим последовательность действий для внедрения:

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

← На главную