При расчете некоторых видов удержаний (например, профсоюзных взносов или дополнительных алиментов) возникает необходимость рассчитывать их не со всей «грязной» суммы начислений, а за вычетом исчисленного НДФЛ. Формула должна выглядеть следующим образом:
Результат = ПроцентУдержания * (РасчетнаяБаза - ИсчисленныйНДФЛ)
Однако при попытке настроить такое удержание стандартными средствами в пользовательском режиме многие сталкиваются с проблемой: показатель «Исчисленный НДФЛ» доступен только для регламентированного расчета по исполнительным листам, а в списке показателей для произвольных формул его просто нет.
В данной статье мы подробно разберем, как решить эту задачу в различных версиях программы 1С:ЗУП. Мы рассмотрим как современный и полностью легальный способ для актуальной версии 1С:ЗУП 3.1, не требующий программирования, так и классический «хак» для устаревшей версии 1С:ЗУП 2.5 через доработку конфигурации.
---
Если вы работаете в современной версии программы 1С:ЗУП 3.1 (начиная с релизов 3.1.27.291 и 3.1.31.13), вам очень повезло. Разработчики фирмы «1С» добавили встроенный предопределенный показатель, который решает эту проблему раз и навсегда без привлечения программистов.
Для настройки такого удержания выполним следующие шаги:
Профсоюзные взносы или Прочее удержание в пользу третьих лиц.Ежемесячно.(РасчетнаяБаза - ИсчисленныйНДФЛРасчетнойБазыУдержания) * ПроцентПрофвзносов / 100
ПроцентПрофвзносов необходимо предварительно создать в программе как числовой показатель, вводимый для сотрудника или для документа.
Этот способ является наиболее корректным, так как он поддерживается вендором, не мешает автоматическому обновлению конфигурации и корректно работает даже при расчете удержаний с аванса (в первой половине месяца).
---
В старой редакции 1С:ЗУП 2.5 (а также в комплексных конфигурациях на ее базе, таких как УПП 1.3) показатель НДФЛ жестко привязан к регламентированному способу расчета по исполнительным листам. Создать произвольную формулу с НДФЛ без изменения программного кода невозможно.
Рассмотрим по шагам, как решить эту проблему, если ваша база все еще работает на платформе 1С 8.2/8.3 со старой архитектурой.
Для того чтобы программа разрешила использовать формулу исполнительного листа для профсоюзных взносов, нам нужно временно открыть форму удержания для редактирования регламентированных способов расчета:
УдержанияОрганизаций.Простой подмены способа расчета в пользовательском режиме недостаточно. Механизм проведения расчетов в 1С:ЗУП 2.5 жестко контролирует список видов расчета, для которых определяется сумма НДФЛ. Если просто оставить удержание со способом расчета «Исполнительный лист процентом», программа при расчете зарплаты выдаст ошибку или не рассчитает НДФЛ для вычета.
Нам необходимо принудительно добавить наше удержание в массив удержаний по исполнительным листам, который обрабатывается системой. Проанализируем программный код общего модуля.
Откроем общий модуль ПроведениеРасчетов (в некоторых релизах это может быть модуль ПроведениеРасчетовПереопределяемый) и найдем процедуру инициализации расчетов. Нам нужно встроить алгоритм, который динамически находит виды расчета с типом «Исполнительный лист процентом» и добавляет их в массив обработки.
Добавим следующий фрагмент кода:
Выборка = ПланыВидовРасчета.УдержанияОрганизаций.Выбрать();
Пока Выборка.Следующий() Цикл
Если (Выборка.СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ИсполнительныйЛистПроцентом)
И (МассивУдержанийИЛ.Найти(Выборка.Ссылка) = Неопределено) Тогда
МассивУдержанийИЛ.Добавить(Выборка.Ссылка);
КонецЕсли;
КонецЦикла;
Важное предупреждение: При использовании этого метода помните о рисках. Любые изменения законодательства, касающиеся расчета исполнительных листов (например, новые правила учета пособий или компенсаций при расчете алиментов), автоматически повлияют на ваши профсоюзные взносы. Тщательно тестируйте расчет зарплаты после каждого обновления программы.
---
Мы подробно разобрали два пути решения проблемы. Безусловно, лучшим вариантом является переход на современную версию 1С:ЗУП 3.1, где данная задача решается за пару минут без единой строчки кода с помощью показателя ИсчисленныйНДФЛРасчетнойБазыУдержания. Если же вы вынуждены поддерживать старую версию ЗУП 2.5, используйте предложенный программный обход через коллекцию удержаний исполнительных листов.