При работе с конфигурацией 1С:Бухгалтерия предприятия 3.0 (БП 3.0) у разработчиков и продвинутых пользователей часто возникает необходимость кастомизировать или проанализировать алгоритмы формирования налоговых регистров. В отличие от простых бухгалтерских отчетов, налоговые регистры по налогу на прибыль представляют собой сложный механизм, завязанный на единый объект метаданных. Рассмотрим подробно, как устроена эта система "под капотом".
Многие пользователи ошибочно ищут в дереве метаданных десятки отдельных отчетов, соответствующих названиям регистров (например, "Регистр учета доходов от реализации" или "Регистр учета внереализационных расходов"). На самом деле в БП 3.0 реализован централизованный подход. Проанализируем структуру и выясним, что основным "двигателем" является один-единственный объект.
Для того чтобы найти корень системы налоговых регистров, откроем конфигуратор и перейдем в ветку Отчеты. Искомый объект называется НалоговыеРегистрыПоНалогуНаПрибыль. Именно этот универсальный отчет отвечает за генерацию всех двадцати с лишним видов регистров, которые бухгалтер видит в пользовательском интерфейсе в разделе "Отчеты — Налоги на прибыль — Регистры налогового учета".
Выясним, где именно хранятся "варианты расчета", о которых часто спрашивают специалисты. В 1С версии 8.3 логика построения отчетов практически всегда базируется на Системе компоновки данных (СКД). Разберем по шагам, как это реализовано в налоговых регистрах:
НалоговыеРегистрыПоНалогуНаПрибыль существует основная схема компоновки данных. Если мы откроем ее, то на закладке "Настройки" увидим список вариантов. Каждый вариант соответствует конкретному налоговому регистру.РегистрУчетаДоходовОтРеализации, РегистрУчетаСтоимостиСписанныхТоваров и так далее.Виду деятельности или Виду расхода в терминах налогового учета.Если нам необходимо программно вызвать формирование конкретного регистра, мы должны обращаться к этому отчету, указывая конкретное имя варианта настройки.
Проанализируем, откуда система черпает цифры. В отличие от управленческих конфигураций, где используются регистры накопления, БП 3.0 строит налоговые регистры преимущественно на данных регистра бухгалтерии Хозрасчетный. Рассмотрим ключевые особенности этого процесса:
Во-первых, отчет анализирует не бухгалтерские остатки и обороты (ресурс Сумма), а специализированные ресурсы налогового учета. К ним относятся:
Во-вторых, важную роль играет аналитика на счетах. Для корректного попадания данных в нужный регистр используется субконто Статьи затрат или Прочие доходы и расходы, где у каждого элемента заполнен реквизит Вид расхода (НУ). Именно по этому реквизиту СКД внутри отчета делает группировки и отборы.
Рассмотрим ситуацию, когда стандартных настроек СКД недостаточно. В сложных отчетах часть данных подготавливается программно. Проанализируем Модуль менеджера отчета НалоговыеРегистрыПоНалогуНаПрибыль. В нем часто переопределяются методы формирования, такие как ПриКомпоновкеРезультата.
Пример типовой логики (схематично) может выглядеть так:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Отключаем стандартный вывод, если требуется сложная подготовка данных во временные таблицы
СтандартнаяОбработка = Ложь;
// Инициализируем настройки компоновщика
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
// Вызываем общий модуль для подготовки данных налогового учета
УчетДоходовРасходовНалогНаПрибыль.СформироватьДанныеДляРегистра(Настройки);
КонецПроцедуры
Таким образом, алгоритмы сбора данных разнесены между запросами в СКД и программным кодом в общих модулях (например, УчетДоходовРасходовНалогНаПрибыль или НалоговыйУчетСпецрежимы).
Если бухгалтер в пользовательском режиме изменил состав колонок или добавил свой отбор и нажал кнопку "Сохранить вариант", эти данные не попадают в конфигуратор. Выясним, где они находятся:
_InfoRg... (для регистров сведений) и _Reference... (для справочников).Как было верно замечено в обсуждении, для оперативной проверки "сырых" данных можно использовать УниверсальныйОтчет. Рассмотрим, как это помогает в отладке налоговых регистров:
Откроем Универсальный отчет, выберем тип объекта "Регистр бухгалтерии", имя объекта "Хозрасчетный", таблицу "Обороты". В настройках добавим поля СуммаНУ, СуммаПР и СуммаВР, а в группировки выведем Счет и Субконто1 (Статьи затрат). Это позволит увидеть данные без сложной надстройки налоговых регистров и понять, почему та или иная сумма не попадает в итоговый отчет. Однако помните, что Универсальный отчет не заменит налоговый регистр в плане оформления и соответствия законодательным требованиям.
Подводя итог, можно сказать, что налоговые регистры в БП 3.0 — это мощная надстройка над регистром бухгалтерии, реализованная через один универсальный отчет НалоговыеРегистрыПоНалогуНаПрибыль с использованием множества вариантов настроек СКД.