Как списать зависшие общепроизводственные расходы из незавершенного производства в 1С:УПП 1.3?

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

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

Выясним причину: почему затраты по ОПР перестали распределяться и зависли в НЗП?

Рассмотрим распространенную ситуацию. В регистре сведений Способы распределения статей затрат организаций бухгалтерия изменила вариант распределения для косвенных расходов с «По материальным затратам» на «По материальным затратам на готовую продукцию». После этого остатки по ОПР на полуфабрикатах и старых заказах перестали включаться в себестоимость и «намертво» зависли в НЗП.

Проанализируем механику работы алгоритмов 1С:УПП, чтобы понять, почему так произошло:

  1. Специфика правила «На готовую продукцию»: При таком способе база распределения рассчитывается строго исходя из выпущенной готовой продукции (счет 43 или соответствующая номенклатурная группа). Полуфабрикаты собственного производства (выпуск на счет 21 или промежуточные выпуски на счет 20) система не считает «готовой продукцией». В результате подразделения и переделы, занятые промежуточным выпуском, получают нулевую базу распределения, и затраты по ОПР не могут списаться на себестоимость.
  2. Отсутствие выпуска по закрытым/старым заказам: Если на заказе покупателя или заказе на производство в текущем месяце нет нового выпуска продукции, база распределения для него равна нулю. Косвенные расходы, отнесенные на этот заказ ранее, не распределяются регламентным документом Расчет себестоимости выпуска.

Ограничения стандартных документов 1С:УПП

Попытки списать зависшие нематериальные затраты из НЗП с помощью обычных документов часто упираются в архитектурные ограничения конфигурации:

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

Вариант 1. Методологическая настройка правил распределения затрат

Самый правильный и штатный подход — скорректировать базу распределения в регистре сведений Способы распределения статей затрат организаций, не нарушая логику закрытия месяца.

Проанализируем последовательность действий:

  1. Перейдем в регистр сведений Способы распределения статей затрат организаций.
  2. Вместо единого глобального правила создадим дифференцированные настройки для разных статей или подразделений.
  3. Для статей ОПР, относящихся к цехам выпуска полуфабрикатов, укажем способ распределения «По материальным затратам» (без ограничения на готовую продукцию) либо «По объему выпуска» / «По плановой себестоимости».
  4. Для цехов окончательной сборки оставим способ «По материальным затратам на готовую продукцию».
  5. Перепроведем документ Расчет себестоимости выпуска за открытый период.

Вариант 2. Перенос затрат со старых заказов с помощью документа «Корректировка незавершенного производства»

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

Рассмотрим алгоритм заполнения документа Корректировка незавершенного производства:

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

Вариант 3. Программная обнуляющая корректировка остатков НЗП (если период закрыт)

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

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


ДатаОстатка = НачалоДня(ДатаСреза);

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

Запрос.УстановитьПараметр("ДатаСреза", ДатаОстатка);
Запрос.УстановитьПараметр("Организация", Организация);

Корректировка = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
Корректировка.Дата = ДатаОстатка;
Корректировка.Комментарий = "Автоматическое обнуление остатков НЗП (БУ) на " + Формат(ДатаСреза, "ДФ=dd.MM.yyyy");

МДРегистра = Метаданные.РегистрыНакопления.НезавершенноеПроизводствоБухгалтерскийУчет;
ЗаписьТаблицы = Корректировка.ТаблицаРегистровНакопления.Добавить();
ЗаписьТаблицы.Имя = МДРегистра.Имя;
ЗаписьТаблицы.Представление = МДРегистра.Синоним;

// Загружаем выгрузку запроса в движения документа
Корректировка.Движения.НезавершенноеПроизводствоБухгалтерскийУчет.Загрузить(Запрос.Выполнить().Выгрузить());

Для Каждого Движение Из Корректировка.Движения.НезавершенноеПроизводствоБухгалтерскийУчет Цикл
    Движение.Период = ДатаОстатка;
КонецЦикла;

Корректировка.Записать();

// Открываем форму созданного документа пользователю
ФормаДокумента = Корректировка.ПолучитьФорму("ФормаДокумента");
ФормаДокумента.Открыть();

Обратите внимание: Документ Корректировка записей регистров корректирует только накопления в регистрах (УУ, БУ или НУ). Для отражения списания сумм на счетах бухгалтерского учета (например, перенос остатков с 20/25 счета на счет 91.02 «Прочие расходы») необходимо параллельно оформить документ Операция (бухгалтерский и налоговый учет) по согласованию с главным бухгалтером организации.

← На главную