В процессе ведения учета в конфигурации 1С:Бухгалтерия предприятия КОРП пользователи нередко сталкиваются с ситуацией, когда регламентные операции закрытия месяца формируют странные или избыточные проводки по счету 08.03 («Строительство объектов основных средств»). В норме этот счет является внеоборотным активом, и его корректировка в рамках закрытия затратных счетов происходить не должна. В данной статье мы подробно разберем, почему система может начать воспринимать счет 08.03 как производственный, и как исправить эту ситуацию, если она вызвана некорректной программной доработкой.
Для начала разберем, как программа понимает, какие счета нужно «закрывать». В типовом решении 1С существует строго определенный перечень счетов прямых расходов. В него входят счета 20, 23, 25 и 26. Процедура закрытия месяца обращается к специальному модулю УчетЗатрат, который возвращает массив этих счетов. Если в этот массив попадает счет, не предназначенный для учета производственных затрат (например, 08.03), алгоритм Расчета себестоимости или Корректировки стоимости списания начинает обрабатывать его по правилам выпуска продукции.
Рассмотрим пошагово, как выявить и устранить проблему лишних проводок.
Прежде чем переходить к программному коду, проанализируем состояние данных в информационной базе. Часто причиной «пустых» проводок (с отсутствующими субконто) становится разрыв между бухгалтерским учетом и регистрами накопления.
08.03. Настроим группировку по всем доступным субконто (Объекты строительства, Статьи затрат, Способы строительства).08.03 попали суммы через документы, не поддерживающие полноценный учет затрат (например, через Операцию, введенную вручную).Модернизация ОС. Если списание материалов или услуг на объект строительства производилось некорректно, система может пытаться «выровнять» стоимость списания в конце месяца.Проанализируем ситуацию: если в базе установлена учетная политика «По средней», то любая разница между стоимостью на момент первичного списания и средневзвешенной стоимостью за месяц будет дописываться регламентной операцией Корректировка стоимости списания. Если счет 08.03 ошибочно включен в список прямых расходов, программа попытается сделать корректировку не только по дебету (как увеличение стоимости объекта), но и по кредиту, имитируя «выпуск» со счета.
Важно помнить, что механизм корректировки стоимости работает по-разному в зависимости от настроек запасов. Разберем этот момент подробнее:
Как показывает практика, наиболее вероятной причиной того, что закрытие месяца «трогает» счет 08.03, является вмешательство программиста в работу общего модуля УчетЗатрат. В частности, речь идет о функции ПредопределенныеСчетаПрямыхРасходов.
Рассмотрим пример некорректного кода в расширении, который приводит к проблеме:
// ОШИБОЧНЫЙ КОД
// В расширении модуля УчетЗатрат переопределяется список счетов
СчетаРасходов.Добавить(ПланыСчетов.Хозрасчетный.СтроительствоОбъектовОсновныхСредств); // Добавлен счет 08.03
Когда мы добавляем счет 08.03 в этот список, мы фактически заставляем систему считать его аналогом счета 20.01. Программа начинает искать базу распределения, пытается закрыть остатки и сформировать себестоимость. Это приводит к возникновению проводок вида Дт 08.03 - Кт 08.03, которыми система пытается скорректировать стоимость объектов строительства до средних значений за месяц.
Если специфика вашего учета действительно требует включения счета 08.03 в процедуры распределения затрат в определенных случаях, необходимо добавить строгие условия. Однако в большинстве случаев это является архитектурной ошибкой. Выясним причину, по которой этот счет был добавлен изначально. Если это было сделано для того, чтобы на 08.03 распределялись косвенные расходы со счета 25 или 26, то следует использовать стандартные механизмы настройки методов распределения расходов в Учетной политике, а не менять программный код предопределенных счетов.
Если же добавление счета необходимо, ограничьте его использование контекстом. Посмотрим на пример более безопасного кода:
Процедура Расш1_ПредопределенныеСчетаПрямыхРасходов(ОбъектНазначения = Неопределено, СчетаРасходов)
// Если объект назначения передан, значит вызов идет из специфического узла
Если ОбъектНазначения <> Неопределено Тогда
// Добавляем счет только в строго определенных условиях
СчетаРасходов.Добавить(ПланыСчетов.Хозрасчетный.СтроительствоОбъектовОсновныхСредств);
КонецЕсли;
КонецПроцедуры
Важное замечание: Лучшим решением будет полное удаление счета 08.03 из списка прямых расходов. Счет внеоборотных активов не должен закрываться автоматически теми же алгоритмами, что и производство продукции.
Чтобы окончательно устранить последствия ошибки и очистить учет от некорректных проводок, выполним следующие действия:
08.03 в массив СчетаРасходов в модуле УчетЗатрат.Корректировка стоимости списания и Закрытие счетов 20, 23, 25, 26, а затем выполним их заново.08.03 в регламентных операциях должны исчезнуть, оставив только корректные движения из первичных документов.Подводя итог, можно сказать: счет 08.03 — это «копилка» для формирования стоимости будущего актива. Любое автоматическое движение по его кредиту (кроме ввода в эксплуатацию) должно быть объектом тщательной проверки. Использование расширений для изменения фундаментальной логики 1С:Бухгалтерии (такой как список затратных счетов) требует глубокого понимания того, как эти счета участвуют в регистрах накопления и алгоритмах расчета себестоимости.