Почему в 1С:ERP 2.4 после закрытия месяца себестоимость продукции равна нулю?

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

Ситуация, когда после успешного выполнения процедуры Закрытия месяца в программе 1С:ERP Управление предприятием 2 (особенно в релизах ветки 2.4.6) себестоимость выпущенной продукции или реализованных товаров остается нулевой, является одной из самых сложных для диагностики. Часто пользователи сталкиваются с парадоксом: в отчете Дерево себестоимости или Анализ себестоимости выпущенной продукции цифры отображаются корректно, однако в движениях документа Реализация товаров и услуг по регистру накопления Себестоимость товаров стоимость равна 0.00.

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

Разберем влияние типа склада: Кладовая цеха vs Обычный склад

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

Если в цепочке производства полуфабрикат (ПФ) выпускается в кладовую цеха и тут же потребляется на следующем этапе производства, механизм партионного учета 2.2 может некорректно сопоставить стоимость, если не соблюдена строгая последовательность. Переключение склада из режима обычного хранения в режим кладовой в середине отчетного периода гарантированно приводит к разрыву стоимостных цепочек в регистре Себестоимость товаров. Как показывает практика, возврат склада к типу Обычный склад и перепроведение документов часто восстанавливает расчет, так как система начинает использовать стандартные механизмы прихода/расхода по складам без промежуточных транзакций в НЗП.

Проанализируем работу системы линейных уравнений (СЛУ)

Расчет фактической себестоимости в 1С:ERP — это решение огромной системы линейных уравнений. Каждое движение товара или затраты — это переменная. Если в производстве существуют встречные выпуски или сложные кольцевые зависимости (например, ПФ1 входит в ПФ2, а отходы от ПФ2 используются при создании ПФ1), СЛУ может не найти решение за стандартное количество итераций.

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

  1. Перейдем в раздел НСИ и администрирование.
  2. Выберем Настройка НСИ и разделов — Финансовый результат и контроллинг.
  3. Найдем параметры расчета себестоимости.
  4. Попробуем увеличить максимальное количество итераций решения СЛУ до 250 или 300.

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

Выясним причину нарушения хронологии документов

Несмотря на то, что расчет себестоимости в ERP позиционируется как "месячный", партионный учет версии 2.2 крайне чувствителен к времени документов внутри одного дня. Рассмотрим ситуацию на примере регистра Себестоимость товаров. Если документ Передача материалов в производство имеет время 10:55:38, а документ Этап производства (который эти материалы потребляет и выпускает ПФ) имеет время 00:00:00 того же дня, система видит "Расход раньше Прихода".

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

  1. Проверим время всех документов в цепочке: Заказ на производство -> Этап производства -> Передача материалов -> Выпуск продукции.
  2. Убедимся, что Этапы производства в статусе Завершен имеют время позже, чем документы поступления или передачи материалов.
  3. Обязательно проверим статус документов Передача товаров между организациями, если используется схема Интеркампани. Они должны быть в статусе Принято и оформлены строго до момента потребления этих товаров другой организацией.

Обособленный учет и назначения

Если на предприятии используется учет по Назначениям (под конкретный заказ клиента), необходимо тщательно следить за сохранением этой аналитики. Если материал был закуплен под "Заказ клиента №1", а этап производства выпускает продукцию "Без назначения", себестоимость может не перейти. В регистре Себестоимость товаров возникнет ситуация, когда по одной аналитике (с назначением) висит положительный остаток стоимости, а по другой (пустое назначение) — нулевая стоимость при наличии количества. Система не схлопывает эти остатки автоматически, если в настройках не включено соответствующее распределение.

Алгоритм массового исправления документов

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

Нам потребуется выполнить следующие шаги (в рамках сеанса с отключенным контролем остатков):

  1. Отменить проведение документов Реализация товаров и услуг.
  2. Отменить проведение документов Этап производства и подчиненных им передач.
  3. Очистить движения по регистрам Себестоимость товаров и Партии товаров организаций (иногда это требуется делать "внаглую", то есть программно удаляя записи, если стандартная отмена проведения оставляет "хвосты").
  4. Последовательно провести цепочку документов с соблюдением временных интервалов.

Пример логики для автоматизации процесса (используется Универсальный подбор и обработка объектов или самописная обработка):


// Пример программной подготовки документа к перепроведению
ДокументОбъект = СсылкаНаЭтап.ПолучитьОбъект();
ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);

// Если движения не удалились штатно (бывает при ошибках в ключах аналитики)
НаборДвижений = РегистрыНакопления.СебестоимостьТоваров.СоздатьНаборЗаписей();
НаборДвижений.Отбор.Регистратор.Установить(СсылкаНаЭтап);
НаборДвижений.Записать(); // Очищаем движения принудительно

// Затем проводим в нужном статусе
ДокументОбъект.Статус = Перечисления.СтатусыЭтаповПроизводства.Завершен;
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);

Проверка регистра "Товары организаций"

Себестоимость в ERP во многом опирается на данные регистра Товары организаций. Если в нем есть отрицательные остатки ("минусы") по количеству, расчет себестоимости по этим позициям будет заведомо неверным или нулевым. Перед запуском Закрытия месяца крайне важно сформировать отчет Ведомость по товарам организаций и убедиться, что по организации-продавцу или организации-производителю нет количественных разрывов. Если используется Интеркампани, убедитесь, что документ Передача товаров между организациями формирует движения Приход по принимающей организации с заполненным видом запасов.

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

Для успешного решения проблемы нулевой себестоимости проанализируем следующие моменты:

  1. Тип склада: Избегайте смены типа склада на "Кладовую цеха" внутри отчетного периода. Если это произошло, верните настройки и перепроведите документы.
  2. Итерации СЛУ: Увеличьте лимит попыток расчета в настройках финансового результата до 250-300.
  3. Хронология: Используйте автоматизированные средства для выстраивания цепочки документов по времени (например, с шагом в 1 секунду: Заказ -> Передача материалов -> Этап (Начат) -> Этап (Завершен) -> Передача продукции -> Реализация).
  4. Назначения: Проверьте, не происходит ли "потеря" аналитики назначения на этапах выпуска полуфабрикатов.
  5. Фоновые задания: Убедитесь, что в системе включено и успешно выполняется фоновое задание Распределение партий. Без него оперативные данные в регистрах себестоимости могут не соответствовать действительности до момента полного закрытия месяца.

Помните, что в 1С:ERP "чудес" не бывает, и нулевая стоимость всегда является следствием разрыва связи между источником затрат (поступлением или выпуском ПФ) и потребителем затрат в регистрах накопления Себестоимость товаров или Партии товаров.

← На главную