В процессе ведения налогового учета в конфигурации 1С:Комплексная автоматизация (КА) версии 2.4 часто возникают ситуации, когда корректно настроенная в учетной политике льготная ставка УСН (например, 10%) игнорируется системой. При перепроведении регламентных операций программа принудительно устанавливает стандартную или повышенную ставку (15% или 20%). Давайте вместе разберемся, почему это происходит и как исправить данное поведение.
При изучении работы модуля расчета налога мы сталкиваемся с тем, что система проводит проверку соответствия текущих показателей организации (доходов и численности сотрудников) порогам для применения прогрессивной шкалы УСН. Если код обнаруживает хотя бы малейшее отклонение или неверно считывает данные из учетной политики, он переключает ставку на стандартную.
В ходе отладки кода было выявлено, что в некоторых релизах конфигурации 2.4.14 логика расчета выглядит следующим образом:
Если ДанныеПрогрессивнойШкалыУСН.ПрименяетсяПовышеннаяСтавка Тогда
СтавкаНалогаУСН = УчетУСНПСНКлиентСервер.НалоговаяСтавкаПовышенная(Истина);
Иначе
СтавкаНалогаУСН = УчетУСНПСНКлиентСервер.НалоговаяСтавкаПоУмолчанию(Истина);
КонецЕсли;
Проблема заключается в том, что в процессе выполнения функции РассчитатьНалогУСНОбъектДоходыМинусРасходы значение СтавкаНалогаУСН, которое мы ожидаем увидеть в размере 10%, попросту переопределяется или игнорируется внутренней логикой КонтекстРасчета. Система считает, что при определенных оборотах льгота более не применима, даже если региональное законодательство предусматривает иные условия.
Разработчики фирмы 1С оперативно реагировали на подобные сообщения об ошибках в переходных периодах законодательства. В релизе 2.4.14.164 и более поздних версиях алгоритм расчета был существенно изменен. Вместо потенциально ошибочных конструкций, вычисляющих ставку «на лету» через проверки внутри процедуры, расчет был унифицирован.
Рассмотрим, как изменился подход к расчету налоговой базы:
// В старых релизах (ошибочный подход):
НалогЗаПериод = Окр(НалоговаяБазаЗаПериод * СтавкаНалогаУСН / 100, РазрядностьОкругленияПоказателей);
// В обновленных релизах (корректный подход):
НалогСНачалаГода = Окр(НалоговаяБаза * КонтекстРасчета.СтавкаНалогаУСН / 100, 0);
Как мы видим, в актуальных версиях 1С используется свойство КонтекстРасчета.СтавкаНалогаУСН напрямую, что позволяет системе учитывать именно ту ставку, которая была зафиксирована в настройках учетной политики организации, не пытаясь «переубедить» пользователя в правильности налоговой ставки.
Чтобы привести налоговый учет в соответствие с законодательством и вашими настройками, рекомендуем выполнить следующие действия:
Отладчик. Установите точку останова в месте инициализации структуры ДанныеПрогрессивнойШкалыУСН. Посмотрите, какие именно значения параметров (выручка, среднесписочная численность) система передает в условие ПрименяетсяПовышеннаяСтавка.Помните, что ключевым моментом является доверие к настройкам Учетной политики. Если система упорно игнорирует 10%, значит, один из механизмов проверки «прогрессивной шкалы» срабатывает на основании неверных данных, накопленных в регистрах. После того как вы обновите платформу или установите патч, система начнет корректно использовать заданную вами ставку.