При работе в программе «1С:Зарплата и управление персоналом 2.5» (включая версию КОРП) бухгалтеры часто сталкиваются с ситуацией, когда сумма аванса в документе Начисление зарплаты за первую половину месяца не совпадает с ожиданиями. Особенно остро проблема проявляется, если у сотрудника есть удержание по исполнительному листу (ИЛ), а в первой половине месяца был начислен и проведен отпуск. Рассмотрим подробно, почему программа выдает «странные» цифры, как работает внутренний алгоритм системы и что с этим делать.
Представим типичную ситуацию, описанную пользователем. У сотрудника установлен процент удержания по исполнительному листу — 50%. В середине месяца он уходит в отпуск. Бухгалтер рассчитывает отпускные, а затем делает расчет аванса. Проанализируем пример данных:
Бухгалтер ожидает, что удержание по ИЛ с аванса составит: (7255 - 943) * 50% = 3156 руб. Однако программа выдает результат 2708,50 руб. Разберемся, откуда берется эта разница.
В конфигурации ЗУП 2.5 для вида расчета Удержание по исполнительному листу процентом используется стандартная формула:
Результат = Процент * (РасчетнаяБаза - ИсчисленныйНДФЛ)
Ключевой момент здесь заключается в том, как программа собирает показатель ИсчисленныйНДФЛ в промежуточном документе Начисление зарплаты за первую половину месяца. Проанализируем алгоритм:
Когда вы рассчитываете аванс, система обращается к регистрам накопления НДФЛ. Если на момент создания документа в системе уже есть проведенный документ Начисление отпуска (или любой другой межрасчетный документ), программа видит зафиксированный там НДФЛ. В итоге в переменную ИсчисленныйНДФЛ попадает суммарный налог за весь текущий месяц, актуальный на дату расчета аванса.
В нашем примере расчет выглядит так:
(7255 - (943 + 895)) * 50% = (7255 - 1838) * 50% = 5417 * 0,5 = 2708,50 руб.
Таким образом, программа «ошибочно» (с точки зрения логики бухгалтера) уменьшает базу для удержания в авансе на налог, который относится к отпускным, хотя сами отпускные в базу аванса не входят. Это происходит потому, что в ЗУП 2.5 механизм отделения «налога с аванса» от «налога с других выплат» в рамках одного месяца реализован упрощенно.
Проанализируем структуру расчетного листка. Расчетный листок — это итоговый отчет за месяц. В нем все начисления (зарплата + отпуск) и все удержания (НДФЛ + ИЛ) суммируются.
Проблема в том, что расчет аванса — это не окончательное начисление, а лишь определение суммы к выплате. В расчетном листке сумма аванса отражается только в разделе «Выплачено». А удержание по исполнительному листу, которое было «предварительно» рассчитано в авансе, при окончательном расчете зарплаты за месяц будет пересчитано документом Начисление зарплаты.
Выясним причину недовольства работника: он видит, что с него удержали одну сумму в аванс, а в конце месяца база пересчиталась, и итоговое удержание за месяц может отличаться от суммы «удержание с аванса + удержание с остатка зарплаты» из-за вот таких промежуточных колебаний налоговой базы.
Рассмотрим несколько способов исправления ситуации и взаимодействия с бухгалтерией.
Если бухгалтеру принципиально важно, чтобы в авансе удерживалось ровно 50% от «грязного» начисления первой половины месяца без учета сторонних налогов, необходимо:
Начисление зарплаты за первую половину месяца.Удержания.Важно: При окончательном расчете месяца в документе Начисление зарплаты сотрудникам программа все равно сделает перерасчет всей базы за месяц, и итоговая сумма удержания будет корректной согласно законодательству.
Посмотрим на ситуацию с точки зрения очередности ввода данных. Если вы сначала создадите и рассчитаете документ на аванс, а только потом проведете отпуск, то программа при расчете аванса «не увидит» НДФЛ отпуска. В этом случае расчет будет таким:
(7255 - 943) * 50% = 3156 руб.
Однако этот метод неудобен, если отпуск начинается в первой половине месяца и выплатить его нужно раньше аванса. Кроме того, проведение документов «задним числом» может привести к путанице в регистрах.
Проанализируем юридический аспект. Согласно ФЗ №229 «Об исполнительном производстве», удержание производится из дохода должника после удержания налогов. Программа ЗУП 2.5 технически строго следует этому правилу: она берет доход, вычитает из него весь налог, который есть в системе на этот момент, и начисляет удержание.
Бухгалтеру стоит объяснить следующее:
Если вы решите изменить логику сбора НДФЛ в коде, обратите внимание на запрос в модуле документа НачислениеЗарплатыЗаПервуюПоловинуМесяца. Программа обращается к функции получения остатков и оборотов по регистру НДФЛ_РасчетыСБюджетом или НДФЛ_СведенияОДоходах.
Проблема кроется в том, что в ЗУП 2.5 при расчете аванса используется виртуальная таблица, которая не всегда корректно разделяет налоги по регистраторам в рамках одного периода. Мы рекомендуем избегать правок в типовом коде этой версии, так как она считается устаревшей, и любое вмешательство может «сломать» расчет годового НДФЛ или справок 2-НДФЛ.
Подведем итог. Ошибка в расчетном листке и авансе в ЗУП 2.5 при наличии исполнительного листа возникает из-за того, что программа суммирует НДФЛ со всех документов месяца (включая отпуска и больничные) и вычитает его из базы аванса.
Самый безопасный и прозрачный путь для бухгалтера — проверять суммы удержаний в авансе визуально и, при значительных расхождениях, корректировать их вручную в документе Начисление зарплаты за первую половину месяца, либо просто дождаться итогового расчета месяца, где программа автоматически выровняет баланс удержаний.