Ситуация, когда программа «1С:Зарплата и управление персоналом» (редакция 3.1) игнорирует введенное заявление на стандартные налоговые вычеты, является одной из самых распространенных и при этом запутанных для пользователя. Бухгалтер видит: сотрудник принят, заявление оформлено, право на вычет есть, но при расчете документа Начисление зарплаты и взносов НДФЛ упорно рассчитывается со всей суммы дохода. Разберем эту проблему по шагам, проанализируем возможные причины — от тривиальных ошибок заполнения до технических сбоев в регистрах системы.
Как показывает практика и опыт участников профессиональных форумов, наиболее частой «невидимой» причиной является устаревание или некорректное заполнение классификаторов. Программа сопоставляет код вычета в заявлении (например, 126 или 127) с актуальными данными в законодательной базе. Если срок действия кода в классификаторе истек или записи повреждены, система «не видит» законного основания для применения вычета.
Рассмотрим, как обновить эти данные:
После завершения процесса обновления рекомендуется перезайти в программу. Зачастую именно после этого действия служебные регистры, такие как РазмерВычетовНДФЛВторичный, заполняются актуальными данными, и расчет начинает работать корректно.
Если обновление классификаторов не помогло, нам необходимо «заглянуть под капот» программы и проверить, какие суммы вычетов установлены в системе. Для этого воспользуемся меню Функции для технического специалиста (ранее «Все функции»).
Проанализируем состояние двух критически важных регистров:
РегистрСведений.РазмерВычетовНДФЛ — здесь хранятся основные суммы по кодам вычетов.РегистрСведений.РазмерВычетовНДФЛВторичный — вспомогательный регистр, данные из которого используются механизмом расчета.Выясним причину: если второй регистр пуст, это явный признак технического сбоя. В некоторых случаях программистам приходится прибегать к принудительному заполнению этих данных. Рассмотрим примерный алгоритм, который может быть реализован через внешнюю обработку для восстановления данных:
// Пример логики для проверки/заполнения регистра
НаборЗаписей = РегистрыСведений.РазмерВычетовНДФЛВторичный.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() = 0 Тогда
Сообщить("Вторичный регистр вычетов пуст! Требуется обновление классификаторов или ручное заполнение.");
КонецЕсли;
Часто вычет не предоставляется по вполне законным причинам, о которых пользователь забывает. Стандартный вычет на ребенка предоставляется до тех пор, пока доход сотрудника с начала года не превысил 350 000 рублей.
Важно помнить, что этот предел рассчитывается нарастающим итогом по всем местам работы за текущий календарный год. Если сотрудник принят не с начала года, проверим следующее:
Иногда проблема кроется в тонких настройках распределения НДФЛ. В учетной политике организации (раздел Настройка — Организации — Учетная политика и другие настройки — НДФЛ) есть переключатель порядка применения вычетов.
Разберем две ситуации:
Отпуск или Больничный лист в начале месяца, программа может применить весь вычет за этот месяц именно в этом документе. Тогда в итоговом документе Начисление зарплаты и взносов сумма вычета будет равна нулю, так как он уже был предоставлен ранее.Проанализируем статус физического лица. Право на стандартные налоговые вычеты имеют только налоговые резиденты РФ. Если в карточке сотрудника по ошибке установлен статус «Нерезидент» или «Высококвалифицированный иностранный специалист (нерезидент)», программа применит ставку 30% (или 15%) и полностью проигнорирует любые заявления на вычеты.
Также стоит проверить актуальность самого документа Заявление на вычеты по НДФЛ:
Применение стандартных вычетов НДФЛ.Если регистры заполнены, предел не превышен, статус резидента подтвержден, а вычет все равно не появляется, попробуйте выполнить следующие технические действия:
/ClearCache.Следуя этой методике, мы последовательно исключаем все возможные факторы — от ошибок законодательных данных до пользовательских недочетов при вводе данных о доходах.