В практике разработчика 1С часто возникают ситуации, когда бухгалтеры просят «убрать лишние цифры» из отчетов, ссылаясь на то, что в налоговом учете (НУ) те или иные суммы не должны отражаться. Одной из самых коварных ловушек является попытка программно обнулить суммы по налоговому учету на счете 98.01 «Доходы будущих периодов». Рассмотрим подробнее, почему такое решение кажется простым, но на деле приводит к фатальным ошибкам при закрытии месяца и расчете налога на прибыль.
Разберем ситуацию: при проведении документа Реализация товаров и услуг формируются проводки, где по счету 98.01 отражаются суммы не только в бухгалтерском (БУ), но и в налоговом учете (НУ). Например:
Бухгалтер, видя эти суммы в Оборотно-сальдовой ведомости (ОСВ) по налоговому учету, утверждает, что их там быть не должно, так как доходы в НУ признаются иначе или счет вовсе не предназначен для налогового учета в их понимании. Программист, пытаясь помочь, идет по пути наименьшего сопротивления и пытается обнулить ресурсы СуммаНУДт и СуммаНУКт через подписки на события или обработчики в модуле набора записей регистра бухгалтерии.
Проанализируем пример кода, который часто пытаются использовать для решения задачи:
Процедура ПередЗаписью(Отказ, Замещение)
Для Каждого Запись Из ЭтотОбъект Цикл
Если Запись.СчетДт = ПланыСчетов.Хозрасчетный.ДоходыБудущихПериодов
ИЛИ Запись.СчетКт = ПланыСчетов.Хозрасчетный.ДоходыБудущихПериодов Тогда
Запись.СуммаНУДт = 0;
Запись.СуммаНУКт = 0;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
На первый взгляд, цель достигнута: суммы в ОСВ исчезают. Однако именно здесь закладывается «бомба замедленного действия».
Система 1С:Бухгалтерия построена на строгом соблюдении принципа равенства. Любая сумма в бухгалтерском учете должна быть разложена на три составляющие: Налоговый учет (НУ), Временные разницы (ВР) и Постоянные разницы (ПР). Рассмотрим, что происходит при обнулении НУ:
СуммаНУ, но оставляете СуммаБУ, программа «видит» разрыв.БУ не равно НУ, должна возникнуть либо временная (ВР), либо постоянная (ПР) разница.ВР или ПР при обнулении НУ, равенство БУ = НУ + ВР + ПР нарушается.Выясним причину, почему это критично. Регламентные операции, такие как Расчет налога на прибыль и Закрытие месяца, проверяют это равенство. При его нарушении программа начинает выдавать ошибки в анализе состояния налогового учета, а итоговая декларация по прибыли становится некорректной.
Самый неприятный сюрприз ожидает пользователя при закрытии месяца. Проанализируем ситуацию, когда счет 20 «Основное производство» отказывается закрываться по расходам, связанным с доходами от 98 счета.
Логика 1С работает следующим образом: расходы на 20 счете должны распределяться согласно установленной базе (например, по выручке). База распределения берется из остатков и оборотов по счету 90.01 «Выручка». Если ранее вы обнулили НУ на счете 98.01, то при его списании в доходы (проводка Дт 98.01 — Кт 90.01) на счет 90.01 в налоговом учете попадет ноль.
Программа видит следующую картину в налоговом учете:
Результат: Счет 20 в НУ не закрывается, суммы «виснут» на остатках, а бухгалтер получает «красную» оборотку и неверный финансовый результат.
Вместо того чтобы «ломать» программный код, необходимо действовать методологически. Рассмотрим правильные шаги:
98.01 имеет признак НалоговыйУчет, то суммы по НУ там должны быть, если доходы признаются в НУ так же, как в БУ. Это не ошибка, а нормальное поведение системы.Попытка «обнулить» налоговый учет программно — это типичная ошибка, возникающая из-за неполного понимания архитектуры 1С. Помните, что счет 98.01 в налоговом учете используется для синхронизации доходов и расходов во времени. Любое ручное вмешательство в проводки по ресурсам НУ, ВР или ПР без математического пересчета всех составляющих приведет к краху автоматического закрытия месяца.
Если вы уже внесли изменения и столкнулись с проблемой закрытия 20 счета, немедленно удалите свои корректировки в подписках или модулях регистров и позвольте системе сформировать движения по умолчанию. Только после этого регламентные операции смогут корректно рассчитать базу распределения и закрыть затратные счета.