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

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

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

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

Причина несписания затрат и механизм работы партионного учета

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

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

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

Пошаговый поиск скрытой ошибки зацикливания

Проанализируем алгоритм поиска проблемы, если регламентный документ не выдает понятных сообщений об ошибках:

  1. Тестирование на копии базы: распроводим документы выпуска текущего месяца за исключенным периодом и выполняем Расчет себестоимости выпуска.
  2. Метод сужения круга поиска: последовательно проводим документы выпуска блоками по 5–10 дней и каждый раз перерасчитываем себестоимость. Как только затраты перестают списываться, проблема находится в последнем проведенном интервале дат.
  3. Анализ документов выпуска: проверяем документы Отчет производства за смену и Акт об оказании производственных услуг за найденный период. Ищем ситуации, где номенклатура из шапки или табличной части «Продукция» совпадает с номенклатурой из табличной части «Материалы».

Варианты решения и предотвращения циклических зависимостей

Рассмотрим способы исправления выявленного зацикливания в зависимости от особенностей технологического процесса предприятия.

1. Разделение элементов справочника «Номенклатура»

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

2. Настройка регистра «Встречный выпуск продукции (услуг)»

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

3. Включение итерационного расчета встречного выпуска

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

4. Автоматическая проверка документов при проведении

Для предотвращения подобных ошибок в будущем можно добавить проверку в модуле объекта или через подписку на событие ПередЗаписью / ОбработкаПроведения для документа Отчет производства за смену.

Разберем пример кода функции, проверяющей совпадение продукции и материалов:


Функция ПроверитьЗацикливаниеНоменклатуры(ДокументСсылка) Экспорт
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |	Продукция.Номенклатура КАК Номенклатура
        |ПОМЕСТИТЬ ВТ_Продукция
        |ИЗ
        |	Документ.ОтчетПроизводстваЗаСмену.Продукция КАК Продукция
        |ГДЕ
        |	Продукция.Ссылка = &Ссылка
        |;
        |
        |ВЫБРАТЬ РАЗЛИЧНЫЕ
        |	Материалы.Номенклатура КАК Номенклатура
        |ИЗ
        |	Документ.ОтчетПроизводстваЗаСмену.Материалы КАК Материалы
        |ГДЕ
        |	Материалы.Ссылка = &Ссылка
        |	И Материалы.Номенклатура В
        |		(ВЫБРАТЬ
        |			Т.Номенклатура
        |		ИЗ
        |			ВТ_Продукция КАК Т)";
        
    Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
    Результат = Запрос.Выполнить();
    
    Возврат НЕ Результат.Пустой();
    
КонецФункции

5. Переход на режим расширенного учета затрат (РАУЗ)

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

← На главную