При работе с программой 1С:Зарплата и Управление Персоналом (ЗУП) версии 3.1.21.75 пользователи иногда сталкиваются с проблемой, когда документ "Отпуск" не проводится, а при попытке его расчета или проведения система выдает ошибку, связанную с налогом на доходы физических лиц (НДФЛ). Рассмотрим эту ситуацию подробнее и выясним, как ее можно исправить.
Основной симптом данной проблемы — появление сообщения об ошибке вида "Поле не входит в группу «СведенияОДоходахНДФЛ.ДоходМежрасчетногоПериода»" при попытке рассчитать или провести документ "Отпуск". Эта ошибка не позволяет корректно завершить расчет и провести документ, что блокирует учет отпускных начислений.
Как правило, полный текст ошибки включает трассировку стека вызовов, которая указывает на модули программы, где произошел сбой. Например, это может выглядеть так:
ИЛИ >СведенияОДоходахНДФЛ.ДоходМежрасчетногоПериода {ОбщийМодуль.УчетНДФЛ.Модуль(3994)}: ДанныеУчетаДоходов = Запрос.Выполнить.Выгрузить;
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(12860)}: НДФЛ = УчетНДФЛ.РассчитатьНалогПоОсновнойСтавке(
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(12831)}: НДФЛ = РезультатРасчетаНДФЛ;
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(10005)}: РассчитатьНДФЛ;
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(694)}: РассчитатьЗарплатуСлужебный;
{Документ.Отпуск.Форма.ФормаДокумента.Форма(2860)}: МенеджерРасчета.РассчитатьЗарплату;
{Документ.Отпуск.Форма.ФормаДокумента.Форма(2586)}: ПерезаполнитьНачисленияСотрудника(,,ПерезаполнитьНачисления);
{Документ.Отпуск.Форма.ФормаДокумента.Форма(1798)}: РассчитатьНачисленияНаСервере(Истина);
по причине: {(41, 10)}: Поле не входит в группу "СведенияОДоходахНДФЛ.ДоходМежрасчетногоПериода"
Эта ошибка, зарегистрированная под кодом EF_60001098 или 60001098, связана с некорректным расчетом НДФЛ в межрасчетных документах (таких как "Отпуск", "Больничный лист", "Начисление прочих доходов") в ситуации, когда в учетной политике организации активирован флажок расчета налога по прогрессивной шкале.
Мы проанализировали многочисленные обращения пользователей и пришли к выводу, что основной причиной данной ошибки является установленный флажок "Выполнять расчет НДФЛ по прогрессивной шкале" в настройках учетной политики организации. С 2021 года в Российской Федерации действует прогрессивная шкала НДФЛ, предполагающая ставку 13% для доходов до 5 млн. рублей и 15% для доходов, превышающих 5 млн. рублей, рассчитываемых нарастающим итогом с начала календарного года. В связи с этим в программе 1С:ЗУП появился соответствующий механизм расчета.
В определенных версиях конфигурации (в частности, 3.1.21.75) при расчете межрасчетных документов с включенным этим флажком возникала программная ошибка, которая не позволяла корректно сформировать запрос к данным о доходах для расчета НДФЛ, что и приводило к сообщению "Поле не входит в группу".
Также, в некоторых случаях, при восстановлении учета за предыдущие периоды (например, 2019 и 2020 годы) на версии 3.1.21.75, может проявляться похожая ошибка, но уже с другим полем: "Поле не входит в группу "СведенияОДоходахНДФЛ.Период" КОГДА (<>СведенияОДоходахНДФЛ.Период < &НачалоМесяцаРасчета". Это указывает на аналогичную проблему с формированием запросов к данным о доходах, но уже в контексте исторических данных.
Для устранения этой проблемы было предложено несколько решений, как официальных, так и временных обходных путей. Рассмотрим их подробнее.
Что это: Патч – это оперативное исправление, выпускаемое фирмой "1С" для устранения критических ошибок между выходами официальных релизов конфигурации. Патч EF_60001098 был специально разработан для решения описываемой проблемы с расчетом НДФЛ в межрасчетных документах при прогрессивной шкале.
Как установить:
Важно: После установки патча необходимо перезапустить сеанс программы, чтобы изменения вступили в силу. Список установленных патчей всегда можно проверить в разделе "Администрирование" - "Обслуживание" - "Обновление программы" по гиперссылке "Установленные исправления (патчи)". Имейте в виду, что при установке следующего релиза конфигурации, в котором ошибка уже будет исправлена, патч автоматически теряет актуальность и удаляется.
Наш опыт показывает, что для многих пользователей этот патч успешно решил проблему. Однако в некоторых специфических сценариях или при работе со старыми данными он может не помочь.
Наиболее надежное решение: Ошибка 60001098 была официально исправлена в последующих версиях программы 1С:ЗУП. В частности, она устранена в релизах 3.1.18.455 и 3.1.21.76. Поэтому наиболее полным и рекомендованным решением является обновление вашей информационной базы до версии 3.1.21.76 или любой более поздней.
Обновление конфигурации не только устранит текущую проблему, но и привнесет другие исправления, улучшения и новые функциональные возможности, повышая стабильность и актуальность вашей системы.
Если нет возможности немедленно установить патч или обновиться, можно применить временные решения.
Этот метод помог некоторым пользователям временно решить проблему, особенно если в организации нет сотрудников с высокими доходами, превышающими 5 млн. рублей за год.
Как это сделать:
Последствия: После снятия флажка программа будет рассчитывать НДФЛ по плоской ставке (13%), даже если доходы сотрудника превысят 5 млн. рублей. В этом случае вам потребуется ручной контроль и, возможно, ручная донастройка НДФЛ для таких сотрудников, если они у вас есть. Этот способ является компромиссом и требует повышенного внимания к налоговым расчетам.
Этот метод требует глубоких знаний платформы 1С и навыков программирования, поэтому рекомендуется только для квалифицированных специалистов. В форуме обсуждались случаи, когда пользователи вносили правки в процедуру РассчитатьНалогПоПлоскойСтавке в модуле УчетНДФЛАрхивныеАлгоритмы посредством расширения конфигурации.
Пример участка кода, который мог быть причиной и требовал правки (общая логика):
// Оригинальный фрагмент (упрощено)
Если ПараметрРасчета.ИспользоватьПрогрессивнуюШкалу Тогда
// Здесь формировался запрос, который давал ошибку
ДанныеУчетаДоходов = Запрос.Выполнить().Выгрузить();
Иначе
// Здесь мог быть другой, рабочий код или пустой блок
КонецЕсли;
// Пример корректировки в расширении (упрощено)
// Целью было обеспечить, чтобы даже при ИспользоватьПрогрессивнуюШкалу
// запрос формировался корректно или вызывался обходной путь
// Это мог быть перехват и изменение запроса, либо замена логики.
Один из пользователей даже создал и распространил расширение под названием ИсправлениеОшибок_3_1_21_75.cfe, которое, по его словам, решило все проблемы. При использовании таких решений крайне важно осознавать риски: подобные изменения могут конфликтовать с будущими обновлениями или порождать новые ошибки. Если вы прибегаете к такому способу, обязательно учтите рекомендацию: когда типовой код будет исправлен в официальных обновлениях, ваше расширение или ручные правки необходимо будет удалить или отключить.
Также важно обратить внимание на потенциальный "косяк" в такой ручной правке, упомянутый одним из участников обсуждения: если замена кода производилась только в блоке ИНАЧЕ условной конструкции, а код в блоке ЕСЛИ (который обрабатывает случай с прогрессивной шкалой) оставался без изменений, то ошибка продолжала возникать. Необходимо убедиться, что изменения затрагивают корректный логический путь.
При работе с НДФЛ и отпусками в 1С:ЗУП всегда следует учитывать несколько важных моментов:
Таким образом, если вы столкнулись с проблемой непроведения отпуска в 1С:ЗУП 3.1.21.75 из-за ошибки НДФЛ, рекомендуем в первую очередь проверить наличие и применить патч EF_60001098, либо, что является наиболее надежным решением, обновить вашу конфигурацию до версии 3.1.21.76 или выше. Временные обходные пути следует использовать с осторожностью и под контролем квалифицированных специалистов.