Как пропустить расчет себестоимости за прошлые периоды и начать учет с чистого листа в 1С:УПП?

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

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

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

Почему нельзя просто оставить прошлые месяцы нерассчитанными?

Проанализируем механику работы партионного учета в УПП. Традиционный партионный механизм опирается на строгую последовательность проведения документов. Если закрытие месяца и проведение по партиям не выполнялись за длинный период, в системе возникают следующие проблемы:

  1. Смещение границы последовательности: в платформе движение партий контролируется объектом Последовательность.ПартионныйУчет. Если граница последовательности смещена в прошлое, любое перепроведение документов или попытка восстановления себестоимости попытается пересчитать списания за весь пропущенный год.
  2. Бесконечное накопление затрат в НЗП: без проведения расчета себестоимости выпуск готовой продукции отражается лишь по плановым ценам. Фактические материальные и косвенные расходы не списываются со статей затрат и остаются висеть в остатках незавершенного производства. При расчете очередного месяца эти хвосты многократно раздуют себестоимость нового выпуска либо вызовут ошибки деления на ноль из-за отсутствия баз распределения.
  3. Искажение финансового результата: при отгрузке продукции документом РеализацияТоваровУслуг регистр ПродажиСебестоимость заполняется только в момент проведения по партиям или регламентного расчета. Соответственно, управленческий отчет о валовой прибыли будет некорректным.

Состав регистров управленческого учета, требующих корректировки

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

  1. Регистры производственных затрат:
    • Незавершенное производство (управленческий учет) — хранит стоимостные остатки прямых затрат, переданных в цеха;
    • Материалы в производстве (управленческий учет) — количественный регистр учета сырья, которое передано со склада в производство, но еще не списано в документах выпуска (Отчет производства за смену или Акт об оказании производственных услуг);
    • Затраты (управленческий учет) — общепроизводственные и общехозяйственные затраты, распределяемые на выпуск по заданной базе;
    • Брак в производстве (управленческий учет) — затраты на исправление и выпуск бракованных изделий.
  2. Регистры складского учета запасов:
    • Товары на складах — количественный учет остатков номенклатуры на местах хранения;
    • Партии товаров на складах (управленческий учет) — стоимостной учет запасов в разрезе документов оприходования;
    • Товары переданные и Партии товаров переданные (управленческий учет) — остатки давальческого сырья или товаров, отданных на комиссию.

Пошаговый план перезапуска учета в рабочей базе

Когда перенос остатков в новую «чистую» базу невозможен из-за обилия внешних интеграций (ТОИР, WMS, логистические системы, большой штат пользователей), процедура выполняется непосредственно в текущей базе по шагам:

  1. Фиксация даты раздела: выбираем дату среза, например, 30 сентября 23:59:59. До этой даты учет считается архивным и закрытию не подлежит. С 1 октября учет ведется по факту.
  2. Списание зависших остатков: документом Корректировка записей регистров на конец контрольной даты обнуляем остатки по всем вышеперечисленным регистрам затрат. Очищаются Незавершенное производство (управленческий учет), Материалы в производстве (управленческий учет) и Затраты (управленческий учет). Если партии на складах также не соответствуют реальности, корректировкой списываются остатки по регистру Партии товаров на складах (управленческий учет).
  3. Ввод актуальных остатков инвентаризации: на дату старта вводим подтвержденные инвентаризацией остатки:
    • Складские запасы оприходуются документом Оприходование товаров с видом операции по управленческому учету — этот документ сформирует новую партию поступления с актуальной оценочной стоимостью.
    • Материалы в цехах приходуются в регистр Материалы в производстве и Незавершенное производство документами Прочие затраты или Инвентаризация НЗП.
  4. Сдвиг границы последовательности партионного учета: чтобы система не пыталась перепроводить прошлые документы, необходимо программно переместить границу последовательности партий вперед.

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


// Устанавливаем границу последовательности на начало нового периода
ДатаПерезапуска = НачалоДня(Дата("20231001"));

// Получаем последовательность партионного учета УУ
ПоследовательностьУУ = Последовательности.ПартионныйУчет;
ПоследовательностьУУ.УстановитьГраницу(Новый МоментВремени(ДатаПерезапуска));

// Очищаем таблицу регистрации необходимости перепроведения
НаборЗаписей = РегистрыСведений.ГраницыПоследовательностей.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Последовательность.Установить(ПоследовательностьУУ);
НаборЗаписей.Прочитать();

Для Каждого Запись Из НаборЗаписей Цикл
    Если Запись.ДатаГраницы < ДатаПерезапуска Тогда
        Запись.ДатаГраницы = ДатаПерезапуска;
    КонецЕсли;
КонецЦикла;

НаборЗаписей.Записать();
Сообщить("Граница последовательности успешно сдвинута на " + Формат(ДатаПерезапуска, "ДФ=dd.MM.yyyy"));

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

Альтернативный вариант: переход на расширенную аналитику (РАУЗ)

Если специфика предприятия позволяет, наиболее надежным способом навсегда избавиться от проблем с «зависшими» партиями и последовательностями является переход на Расширенную аналитику учета затрат (РАУЗ) с даты перезапуска учета.

В отличие от традиционного партионного учета, механизм РАУЗ обладает принципиальными преимуществами:

  1. Отсутствует объект последовательности документов. Документы списывают и приходуют номенклатуру без жесткой привязки к моменту поступления партии во времени.
  2. Все затраты и складские запасы ведутся в одном универсальном регистре — Учет затрат (управленческий учет). Для обнуления старых хвостов достаточно скорректировать лишь этот регистр.
  3. Расчет себестоимости строится на решении системы линейных уравнений (СЛАУ) за конкретный календарный месяц и не пытается лезть в предыдущие незакрытые периоды.

Переход на РАУЗ в 1С:УПП штатно выполняется с 1-го числа любого месяца при помощи стандартного встроенного помощника перехода, который автоматически сворачивает остатки старых партионных регистров и переносит их в единую аналитическую таблицу учета затрат.

← На главную