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