При сопровождении производственных баз нередко возникает ситуация, когда регламентный расчет себестоимости выпуска в конфигурации 1С:Управление производственным предприятием 1.3 не выполнялся многие месяцы или даже целый год. Причины могут быть разными: смена ответственных специалистов, разделение контуров (когда бухгалтерский и налоговый учет унесены в отдельную информационную базу), ошибки распределения затрат или высокая запущенность первичных документов. Попытка просто рассчитать текущий месяц штатным документом РасчетСебестоимостиВыпуска наталкивается на каскад фатальных ошибок распределения баз, зависание незавершенного производства и сбой партионного списания.
Разберем, почему нельзя просто «забыть» прошлые месяцы при партионном учете, какие регистры накопления отвечают за расчет себестоимости в управленческом учете и как корректно сбросить накопленные искажения, начав учет с актуальной даты инвентаризации в действующей информационной базе.
Проанализируем механику работы партионного учета в УПП. Традиционный партионный механизм опирается на строгую последовательность проведения документов. Если закрытие месяца и проведение по партиям не выполнялись за длинный период, в системе возникают следующие проблемы:
Последовательность.ПартионныйУчет. Если граница последовательности смещена в прошлое, любое перепроведение документов или попытка восстановления себестоимости попытается пересчитать списания за весь пропущенный год.РеализацияТоваровУслуг регистр ПродажиСебестоимость заполняется только в момент проведения по партиям или регламентного расчета. Соответственно, управленческий отчет о валовой прибыли будет некорректным.Если принято решение не восстанавливать весь прошлый период, а выровнять учет на определенную дату (например, на начало нового квартала по результатам инвентаризации), необходимо очистить остатки не только по НЗП, но и по всей цепочке движения производственных затрат и партий. Рассмотрим полный список регистров накопления управленческого учета, которые необходимо привести к нулю перед вводом свежих данных:
Незавершенное производство (управленческий учет) — хранит стоимостные остатки прямых затрат, переданных в цеха;Материалы в производстве (управленческий учет) — количественный регистр учета сырья, которое передано со склада в производство, но еще не списано в документах выпуска (Отчет производства за смену или Акт об оказании производственных услуг);Затраты (управленческий учет) — общепроизводственные и общехозяйственные затраты, распределяемые на выпуск по заданной базе;Брак в производстве (управленческий учет) — затраты на исправление и выпуск бракованных изделий.Товары на складах — количественный учет остатков номенклатуры на местах хранения;Партии товаров на складах (управленческий учет) — стоимостной учет запасов в разрезе документов оприходования;Товары переданные и Партии товаров переданные (управленческий учет) — остатки давальческого сырья или товаров, отданных на комиссию.Когда перенос остатков в новую «чистую» базу невозможен из-за обилия внешних интеграций (ТОИР, WMS, логистические системы, большой штат пользователей), процедура выполняется непосредственно в текущей базе по шагам:
Корректировка записей регистров на конец контрольной даты обнуляем остатки по всем вышеперечисленным регистрам затрат. Очищаются Незавершенное производство (управленческий учет), Материалы в производстве (управленческий учет) и Затраты (управленческий учет). Если партии на складах также не соответствуют реальности, корректировкой списываются остатки по регистру Партии товаров на складах (управленческий учет).Оприходование товаров с видом операции по управленческому учету — этот документ сформирует новую партию поступления с актуальной оценочной стоимостью.Материалы в производстве и Незавершенное производство документами Прочие затраты или Инвентаризация НЗП.Посмотрим на пример программного кода для внешней обработки, позволяющей безопасно сдвинуть границу последовательности партионного учета на дату старта нового учета:
// Устанавливаем границу последовательности на начало нового периода
ДатаПерезапуска = НачалоДня(Дата("20231001"));
// Получаем последовательность партионного учета УУ
ПоследовательностьУУ = Последовательности.ПартионныйУчет;
ПоследовательностьУУ.УстановитьГраницу(Новый МоментВремени(ДатаПерезапуска));
// Очищаем таблицу регистрации необходимости перепроведения
НаборЗаписей = РегистрыСведений.ГраницыПоследовательностей.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Последовательность.Установить(ПоследовательностьУУ);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.ДатаГраницы < ДатаПерезапуска Тогда
Запись.ДатаГраницы = ДатаПерезапуска;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
Сообщить("Граница последовательности успешно сдвинута на " + Формат(ДатаПерезапуска, "ДФ=dd.MM.yyyy"));
Важный момент: сразу после сдвига границы необходимо установить дату запрета изменения данных по управленческому учету на дату среза. Если пользователи случайно проведут или снимут с проведения документ прошлым числом, граница последовательности снова откатится назад, и процедура проведения по партиям вновь выдаст требование о пересчете закрытого периода.
Если специфика предприятия позволяет, наиболее надежным способом навсегда избавиться от проблем с «зависшими» партиями и последовательностями является переход на Расширенную аналитику учета затрат (РАУЗ) с даты перезапуска учета.
В отличие от традиционного партионного учета, механизм РАУЗ обладает принципиальными преимуществами:
Учет затрат (управленческий учет). Для обнуления старых хвостов достаточно скорректировать лишь этот регистр.Переход на РАУЗ в 1С:УПП штатно выполняется с 1-го числа любого месяца при помощи стандартного встроенного помощника перехода, который автоматически сворачивает остатки старых партионных регистров и переносит их в единую аналитическую таблицу учета затрат.