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

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

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

Где физически хранятся данные производственного процесса

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

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

Структура табличной части ПроизводственныйПроцесс

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

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

Связь этапов с материалами и трудозатратами

Рассмотрим подробнее, как система понимает, какой материал к какому шагу процесса относится. В справочнике РесурсныеСпецификации есть и другие табличные части, такие как МатериалыИУслуги и Трудозатраты. Связующим звеном выступает именно НомерЭтапа.

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

Пример запроса для получения структуры процесса

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


ВЫБРАТЬ
    СпецПроцесс.НомерЭтапа КАК НомерЭтапа,
    СпецПроцесс.Этап КАК ШаблонЭтапа,
    СпецПроцесс.НомерСледующегоЭтапа КАК НомерСледующегоЭтапа,
    СпецПроцесс.Длительность КАК Длительность,
    СпецПроцесс.ЕдиницаИзмеренияДлительности КАК ЕдиницаИзмерения
ИЗ
    Справочник.РесурсныеСпецификации.ПроизводственныйПроцесс КАК СпецПроцесс
ГДЕ
    СпецПроцесс.Ссылка = &СсылкаНаСпецификацию
УПОРЯДОЧИТЬ ПО
    НомерЭтапа

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

Как связать Документ «Этап производства» со спецификацией

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

Рассмотрим пример получения материалов для конкретного документа Этап производства:


ВЫБРАТЬ
    ЭтапДок.Ссылка КАК ДокументЭтап,
    СпецМатериалы.Номенклатура КАК НоменклатураНорматив,
    СпецМатериалы.Количество КАК КоличествоНорматив
ИЗ
    Документ.ЭтапПроизводства2_2 КАК ЭтапДок
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.РесурсныеСпецификации.МатериалыИУслуги КАК СпецМатериалы
        ПО ЭтапДок.Спецификация = СпецМатериалы.Ссылка
        И ЭтапДок.НомерЭтапа = СпецМатериалы.НомерЭтапа
ГДЕ
    ЭтапДок.Ссылка = &СсылкаНаДокумент

Обратите внимание: в 1С:ERP версии 2.2 и выше документы могут называться ЭтапПроизводства2_2. Всегда проверяйте точное имя метаданных в вашей конфигурации.

Особенности для процессов с технологическими операциями

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

Каждая операция в этой таблице также имеет поле НомерЭтапа, связывающее её с конкретным шагом производственного процесса. Таким образом, структура остается целостной: Спецификация -> Производственный процесс (Этап) -> Операции этапа.

Практические советы по работе с данными процесса

  1. Проверка статуса: Перед выборкой данных из спецификации всегда проверяйте её статус. Актуальные данные находятся в спецификациях в статусе Действует.
  2. Версионность: Помните, что в ERP спецификации могут иметь версии. Документ Этап производства жестко связан с конкретной версией спецификации (ссылкой).
  3. Использование временных таблиц: При построении сложных отчетов по производственным процессам сначала выгружайте ТЧ ПроизводственныйПроцесс во временную таблицу. Это значительно ускорит последующие соединения с таблицами материалов, трудозатрат и выходных изделий.

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

← На главную