понедельник, 4 июня 2012 г.

Некорректная сумма за вычетом НДФЛ в справке к больничному листу.

Недавно столкнулся с проблемой: в справке "Расчет пособия б/л образца 2011" некорректно рассчитывалась сумма пособия за вычетом НДФЛ.

В оригинальной справке НДФЛ рассчитывается следующим образом:
1. СуммаПособия * 0.13
2. Накопительным итогом с начала года.

Затем эти 2 значения сравниваются и выбирается наименьшее. Оно и используется как "НДФЛ" по пособию.

Но, загвоздка заключается в том, что документ "Начисление по больничному листу" не регистрирует НДФЛ. Ошибка или неоднозначность возникает если мы в текущем месяце уже выполнили расчет заработной платы работнику и расчет этот был раньше начисления больничного. Документом Расчет заработной платы регистрируется НДФЛ в учете. Таким образом при расчете НДФЛ для пособия учитывается весь рассчитанный НДФЛ с начала года и может возникнуть ситуация, когда сумма пособи и сумма за вычетом НДФЛ будут равны, так как весь НДФЛ уже удержан.



В итоге пришлось немного подредактировать форму.
Ссылка на внешнюю печатную форму: РасчетПособия2011

Если нет желания добавлять внешнюю печатную форму, можно внести изменения в конфигураторе в модуль объекта документа Начисление по больничному листу.

Функция ПечатьРасчетПособияКЛисткуНетрудоспособности2011()

переходим в самый низ функции


//СекцияРасчетПособияИтог.Параметры.ВсегоБезНДФЛ = Макс(НачисленоВсего - НДФЛсПособия,0);

после данной строки вставляем наш код (строку в принципе можно и не за комментировать, все равно значение далее заменится.)

//Получим все пособия которые облагаются НДФЛ
НДФЛсПособия2 = 0;
Для каждого строкаП из СсылкаНаОбъект.Начисления Цикл
Если (СтрокаП.ВидРасчета.КодДоходаНДФЛ <> Справочники.ДоходыНДФЛ.ПустаяСсылка()) 
и (СтрокаП.Результат>0) 
и (СтрокаП.ВидРасчета = СсылкаНаОбъект.ВидРасчета или СтрокаП.ВидРасчета = СсылкаНаОбъект.ВидРасчетаДоплаты или СтрокаП.ВидРасчета = СсылкаНаОбъект.ВидРасчетаЗаСчетРаботодателя) Тогда
НДФЛСПособия2 = НДФЛСПособия2 + СтрокаП.Результат;
КонецЕсли;
КонецЦикла;

СекцияРасчетПособияИтог.Параметры.ВсегоБезНДФЛ = Макс(НачисленоВсего - Окр(НДФЛсПособия2*0.13),0);
//

Данный код делает лишь следующее:
1. Просматриваем все начисления по табличной части Оплата
2. Если это начисление по больничному листу и это не сторно начисления
3. Если это начисление облагается НДФЛ

то тогда все это суммируем и умножаем на 0.13 - это и будет наш НДФЛ с пособия

Соответственно Сумма за вычетом НДФЛ = Сумма пособия - Сумма НДФЛ с пособия.

Комментариев нет:

Отправить комментарий