Почему в отчете "Анализ себестоимости выпущенной продукции" не выводится количество и себестоимость единицы в 1С:ERP и Комплексная автоматизация 2?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет IT и автоматизация бизнеса
← На главную

При обновлении крупных производственных систем, таких как 1С:Комплексная автоматизация 2 или 1С:ERP Управление предприятием 2, с редакции 2.2 на ветку 2.4 (в частности, на релизы 2.4.3.х и 2.4.4.х), пользователи и аналитики часто сталкиваются с неприятной проблемой. Отчет "Анализ себестоимости выпущенной продукции" внезапно перестает выводить количество выпущенной продукции и, как следствие, не рассчитывает показатель себестоимости единицы. При этом стоимостные показатели затрат в отчете присутствуют, но они "висят" без привязки к объему выпуска.

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

Выясняем причину: почему ломается логика соединения таблиц

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

В редакции 2.2 документ Поступление от переработчика при проведении делал записи в регистр накопления Выпуск продукции. При этом, если выпуск происходил без явного указания спецификации или заказа, поле Заказ (которое в системе выступает в роли аналитики "Заказ на производство") оставалось пустым, то есть принимало значение Неопределено.

Начиная с редакции 2.4, разработчики изменили эту логику для обеспечения более глубокой сквозной аналитики закрытия затрат. Теперь, если документ Поступление от переработчика проводится без привязки к исходному документу Заказ переработчику, система принудительно записывает ссылку на сам документ Поступление от переработчика в поле Заказ регистра Выпуск продукции.

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

В результате мы получаем расхождение в двух ключевых регистрах:

  1. В регистре Выпуск продукции поле Заказ содержит ссылку на документ Поступление от переработчика.
  2. В регистре Партии незавершенного производства поле Заказ на производство содержит значение Неопределено.

Когда мы открываем отчет "Анализ себестоимости выпущенной продукции", система запускает сложный запрос СКД. В этом запросе происходит левое соединение (LEFT JOIN) таблицы выпуска продукции с таблицей партий незавершенного производства. Соединение выполняется по набору ключевых полей, среди которых обязательным является аналитика Заказ на производство. Из-за несовпадения значений (ссылка на документ против Неопределено) левое соединение не может сопоставить данные выпуска с данными затрат. Количественные показатели выпуска теряются, ломая всю структуру отчета.

Решение 1. Исправление запроса в схеме компоновки данных (СКД)

Если вам необходимо оперативно вернуть работоспособность отчета без изменения документооборота компании, мы можем скорректировать запрос в схеме компоновки данных отчета. Наша задача — принудительно приводить поле Заказ к значению Неопределено в тех случаях, когда в роли заказа выступает документ переработки.

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


ВЫБОР
    КОГДА Выпуск.Заказ = НЕОПРЕДЕЛЕНО
        ТОГДА НЕОПРЕДЕЛЕНО
    ИНАЧЕ Выпуск.Заказ
КОНЕЦ

Для исправления этой логики мы добавим дополнительную проверку на тип документа с помощью оператора ССЫЛКА. Модифицируем запрос следующим образом:


ВЫБОР
    КОГДА Выпуск.Заказ = НЕОПРЕДЕЛЕНО
        ТОГДА НЕОПРЕДЕЛЕНО
    ИНАЧЕ ВЫБОР
        КОГДА Выпуск.Заказ ССЫЛКА Документ.ПоступлениеОтПереработчика
            ТОГДА НЕОПРЕДЕЛЕНО
        ИНАЧЕ Выпуск.Заказ
    КОНЕЦ
КОНЕЦ

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

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

  1. Создайте новое расширение в базе данных.
  2. Добавьте в расширение типовой отчет АнализСебестоимостиВыпущеннойПродукции.
  3. Откройте основную схему компоновки данных (СКД) отчета в расширении.
  4. Найдите в тексте запроса набор данных, отвечающий за выборку из регистра Выпуск продукции.
  5. Замените старый фрагмент обработки поля заказа на новый код, представленный выше.
  6. Сохраните и примените расширение.

Решение 2. Методологический обходной путь (без программирования)

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

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

  1. Обязательно начинайте цепочку с оформления документа Заказ переработчику. Этот документ зафиксирует потребность и станет главным аналитическим разрезом операции.
  2. Документ Передача сырья переработчику оформляйте строго на основании созданного ранее заказа.
  3. Документы Поступление от переработчика и Отчет переработчика также вводите строго на основании исходного заказа.

При таком подходе во всех регистрах (как в Выпуск продукции, так и в Партии незавершенного производства) в поле аналитики заказа будет записана ссылка на один и тот же документ — Заказ переработчику. Конфликт сопоставления данных в СКД исчезнет сам собой, и отчет сформируется корректно.

Развитие ситуации в новых версиях 1С:ERP и КА

Описанная проблема была признана разработчиками фирмы "1С" как зарегистрированная ошибка и впоследствии была исправлена в минорных обновлениях ветки 2.4. В актуальных релизах запрос СКД типового отчета уже содержит встроенные проверки типов документов.

Если же ваша компания планирует или уже осуществляет переход на современную редакцию 1С:ERP / КА 2.5 (начиная с версии 2.5.8), вы столкнетесь с тем, что архитектура учета производства на стороне была кардинально переработана. В рамках новой концепции "Производство на стороне 2.5" взаимосвязи между передачей материалов, выпуском и распределением затрат контролируются новыми регистрами, что полностью исключает возникновение подобных архитектурных нестыковок при расчете себестоимости.

← На главную