В процессе работы с программой «1С: Комплексная автоматизация 1.1» (а также с родственными ей конфигурациями «Зарплата и управление персоналом 2.5» и «Управление производственным предприятием 1.3») пользователи иногда сталкиваются с необходимостью изменить стандартную ставку налога на доходы физических лиц (НДФЛ). Чаще всего такая потребность возникает при использовании российской конфигурации в других странах (например, в Узбекистане, где ставки отличаются) или при введении специфических региональных льгот. Разберем подробно, почему это нельзя сделать простым изменением настроек и какие шаги необходимо предпринять программисту для решения этой задачи.
Проанализируем архитектуру налогового модуля в старых редакциях 1С. В отличие от многих других параметров, которые вынесены в константы или регистры сведений, ставки НДФЛ в данных конфигурациях жестко зашиты в код и структуру метаданных. Это связано с тем, что программа разрабатывалась строго под российское законодательство, где ставки 13%, 9%, 30% и 35% являются базовыми и практически неизменными десятилетиями.
Рассмотрим основные причины, по которым «просто поменять цифру» не получится:
Ставка13) — это предопределенный элемент.Выясним, какие именно объекты отвечают за хранение и использование ставок. Для того чтобы добавить новую ставку (например, 10%), нам придется внести изменения в конфигурацию, предварительно сняв ее с поддержки (или включив возможность редактирования с сохранением поддержки).
Проанализируем список необходимых объектов:
НДФЛСтавки: Здесь хранятся основные числовые значения. Нам потребуется добавить новый элемент, например, Ставка10.НДФЛСтавкиНалогообложенияРезидента: Это перечисление определяет, какую ставку применять к резидентам. Оно также требует добавления нового значения.УчетНДФЛ: Это «сердце» налогового учета. Здесь сосредоточены функции, которые определяют ставку исходя из статуса налогоплательщика и вида его дохода.Разберем пример того, как система обращается к ставкам в коде. Часто можно встретить конструкции следующего вида:
Если СтавкаНалога = Перечисления.НДФЛСтавки.Ставка13 Тогда
// Алгоритм расчета для стандартной ставки
ИначеЕсли СтавкаНалога = Перечисления.НДФЛСтавки.Ставка30 Тогда
// Алгоритм для нерезидентов
КонецЕсли;
Чтобы ваша новая ставка 10% заработала, вам придется найти все подобные места (используя глобальный поиск Ctrl+Shift+F) и внедрить туда обработку нового значения перечисления.
Рассмотрим процесс внедрения новой ставки по шагам. Помните, что любое изменение типовой конфигурации усложнит последующие обновления, поэтому действуйте осмотрительно.
Шаг 1. Модификация метаданных. Добавьте значение Ставка10 в указанные выше перечисления. В свойствах нового значения установите понятный синоним, который будет отображаться в интерфейсе.
Шаг 2. Привязка к доходам. Проанализируйте справочник ДоходыНДФЛ. Каждому доходу соответствует категория. Если вам нужно, чтобы вся заработная плата облагалась по ставке 10%, вам придется либо изменить существующую логику подбора ставки для категории «Доходы, облагаемые по ставке 13%», либо создать новую категорию, что технически еще сложнее.
Шаг 3. Правка общих модулей. Найдите функцию, отвечающую за расчет суммы налога. Обычно это функции в модуле УчетНДФЛ или ПроцедурыУправленияПерсоналом. Вам нужно убедиться, что при выборе вашей новой ставки система понимает, что числовое значение для умножения равно 0.10 (а не 0.13).
Если задача стоит шире, чем просто смена цифры (например, полная адаптация под учет в Узбекистане), рассмотрим дополнительные сложности, с которыми вы столкнетесь:
1. ИНПС (Индивидуальные накопительные пенсионные счета). В Узбекистане расчет НДФЛ неразрывно связан с вычетом взносов на ИНПС. В российской «Комплексной автоматизации 1.1» такого механизма нет. Вам придется не только менять ставку, но и внедрять новый алгоритм, который будет уменьшать налогооблагаемую базу или саму сумму налога на сумму взноса.
2. Льготы для IT-парков. Если вы внедряете ставку 7.5% или 1% для резидентов технологических парков, учитывайте, что эти льготы могут иметь срок действия. В типовой конфигурации РФ нет регистра для хранения периодических ставок НДФЛ, они статичны.
3. Отчетность. Это самый критичный момент. Даже если вы добьетесь корректного расчета цифр в документе Начисление зарплаты, типовые отчеты (Регистры налогового учета, Анализ налогов) будут работать некорректно. Они «ожидают» увидеть ставку 13%. Вам придется переписывать макеты и запросы во всех налоговых отчетах.
Если вы категорически не хотите снимать программу с поддержки, рассмотрим «обходные», хотя и трудоемкие пути.
Вы можете оставить расчет по ставке 13% как есть, а в конце месяца вводить документ Корректировка учета НДФЛ, страховых взносов и ЕСН. В нем можно вручную (или с помощью простой внешней обработки) сторнировать лишние 3% налога.
Плюсы: конфигурация остается типовой.
Минусы: огромный объем ручной работы и риск ошибок в отчетности.
Можно написать внешнюю обработку для документа Начисление зарплаты. Она будет проходиться по вкладке «НДФЛ», пересчитывать суммы по ставке 10% и перезаписывать их.
Важный нюанс: при любом нажатии на стандартную кнопку «Рассчитать» в документе, система снова применит заложенные в коде 13%. Пользователям придется строго соблюдать регламент: сначала расчет системой, затем запуск вашей обработки.
Проанализировав ситуацию, мы приходим к выводу, что для полноценной и комфортной работы в «1С: Комплексная автоматизация 1.1» с нестандартной ставкой НДФЛ, внесение изменений в программный код является неизбежным. Попытки обойти систему ручными корректировками приведут к хаосу в налоговой отчетности. Если вы планируете долгосрочное использование программы в условиях законодательства другой страны, рекомендуется выполнить разовую глубокую кастомизацию модулей учета НДФЛ и соответствующих отчетов.