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