В системе 1С:Управление производственным предприятием (УПП) вопрос прослеживаемости сырья до готовой продукции является одним из самых сложных с точки зрения архитектуры данных. Многие пользователи и разработчики сталкиваются с тем, что в момент выпуска продукции связь с конкретной партией закупки материала кажется «размытой». Проанализируем, как устроена эта связь, и разберем способы получения информации о том, какое именно сырье вошло в состав конкретной партии продукции.
Прежде всего, разберем базовый принцип. В 1С:УПП при использовании классического партионного учета (не РАУЗ) движение ТМЦ фиксируется в регистре ПартииТоваровНаСкладах. Когда материал передается в производство документом Требование-накладная, он списывается со склада и попадает в незавершенное производство (НЗП). В этот момент система фиксирует, какая партия (документ поступления) была списана.
Однако на этапе выпуска продукции документом ОтчетПроизводстваЗаСмену (ОПЗС) ситуация усложняется. Продукция выпускается как новая партия, а материалы, накопленные в НЗП, распределяются на этот выпуск. Рассмотрим подробнее, где именно хранится эта связь.
Выясним, можно ли установить «жесткую» связь программно или вручную. В документе ОтчетПроизводстваЗаСмену существует вкладка «Распределение материалов». Если вы обеспечите заполнение этой вкладки, система зафиксирует связь между номенклатурой материала и номенклатурой выпущенной продукции. Проанализируем ситуацию, когда это распределение заполнено:
ЗатратыНаВыпускПродукции фиксируется аналитика: какая затрата на какой выпуск легла.Но даже при заполненном распределении в ОПЗС, информация о партии (документе поступления) материала в регистре ЗатратыНаВыпускПродукции напрямую не отображается до конца месяца. Посмотрим на причину этого явления ниже.
Важно понимать, что окончательная «склейка» партии материала с партией продукции происходит только в момент проведения регламентного документа РасчетСебестоимостиВыпуска (РСВ). Рассмотрим по шагам, что делает этот документ:
После проведения РСВ и восстановления последовательности партионного учета, данные о списании партий фиксируются в регистре ПартииТоваровНаСкладах с видом движения «Расход» и счетом учета 20 (или 21). Именно здесь можно увидеть связь документа выпуска и документа поступления материала.
Если ваша задача требует стопроцентной точности (например, для пищевого или фармацевтического производства), обычного партионного учета может быть недостаточно. Рассмотрим применение учета по сериям. Если и у материала, и у продукции включен учет по сериям, в документах выпуска фиксируется, какая серия сырья (например, номер конкретной плавки или рулона) ушла на создание конкретной серии готового изделия.
В этом случае отчет «Дерево дефицита» или специализированные запросы к регистру Затраты позволят мгновенно «размотать» всю цепочку без ожидания конца месяца и расчета себестоимости. Проанализируем пример логики запроса для получения таких данных:
// Пример логики запроса к регистру ЗатратыНаВыпускПродукции
ВЫБРАТЬ
Затраты.Номенклатура КАК Материал,
Затраты.СерияНоменклатуры КАК СерияМатериала,
Затраты.Продукция КАК ГотоваяПродукция,
Затраты.СерияПродукции КАК СерияПродукции,
Затраты.Затрата.ДокументПоступления КАК ПартияМатериала
ИЗ
РегистрНакопления.ЗатратыНаВыпускПродукцииБухгалтерскийУчет КАК Затраты
ГДЕ
Затраты.Регистратор ССЫЛКА Документ.РасчетСебестоимостиВыпуска
Часто вопрос связи партий возникает при необходимости подтверждения нулевой ставки НДС при экспорте. Проанализируем ситуацию: налоговая требует предоставить данные о том, какой «входящий» НДС от поставщика относится к реализованному на экспорт товару. Для решения этой задачи в УПП используются специализированные регистры:
НДСПоПартиямЗапасов — хранит информацию о входящем НДС в разрезе партий.НДСПродукция — транслирует данные о партиях материалов в выпущенную продукцию.Система автоматически «протягивает» информацию о партии через все переделы производства, если ведется раздельный учет НДС. Это, пожалуй, единственный механизм в УПП, который в явном виде хранит связь «партия материала — партия продукции» для целей налогового учета.
Если нам необходимо программно вытащить эти данные, мы должны использовать комбинированный подход. Выясним алгоритм действий:
ЗатратыНаВыпускПродукции, чтобы понять, какая номенклатура затрат была распределена на документ выпуска (ОПЗС).ПартииТоваровНаСкладах, анализируя движения списания в производство (счет 20) по этим материалам.Разберем пример структуры запроса, который может помочь в решении задачи:
ВЫБРАТЬ
Партии.Номенклатура,
Партии.ДокументОприходования КАК ИсходнаяПартия,
Партии.Количество,
Затраты.Продукция,
Затраты.Регистратор КАК ДокументВыпуска
ИЗ
РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет КАК Партии
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрНакопления.ЗатратыНаВыпускПродукцииБухгалтерскийУчет КАК Затраты
ПО
Партии.Заказ = Затраты.Заказ
И Партии.Номенклатура = Затраты.Номенклатура
Важный момент: если производство многопередельное (Материал -> Полуфабрикат -> Продукция), то простая связка не сработает. Нам придется использовать рекурсивный обход. Сначала находим партии полуфабрикатов, затем для этих полуфабрикатов ищем партии материалов, из которых они были сделаны. Это ресурсоемкая задача, которую лучше выполнять во временных таблицах.
Подведем итог нашего анализа. Чтобы успешно видеть связь партий материалов и продукции в 1С:УПП, придерживайтесь следующих правил:
Таким образом, хотя «в явном виде» (одной кнопкой) информация о связях партий доступна не всегда, она заложена в архитектуру регистров УПП и может быть извлечена при правильной настройке учета и использовании соответствующих запросов.