Если глПолучитьСтавку(спШСт,"НДФЛ1Пред","Налог на доходы физических лиц") = 1 Тогда
Ставка = спШСт.Ставка.Получить(ТП.ДатаОкончания);
Ставка17 = спШСт.Ставка.Получить(ТП.ДатаОкончания);
Предел = спШСт.Предел.Получить(ТП.ДатаОкончания);
Если (Объект.ОсновноеНазначение.Получить(ТП.ДатаОкончания).МестоРаботы.Должность.Шахтер = 1) или
(НачисленоВсего <= Предел) Тогда
//для шахтеров или если не привышает предел берем пропорционально
//НДФЛБол = ?(НачисленоВсего<>0,НДФЛ*КВыплатеНДФЛ/НачисленоВсего,0);
//Для шахтёров оставим как было, для остальных учтём ставку ЕСВ
Если Объект.ОсновноеНазначение.Получить(ТП.ДатаОкончания).МестоРаботы.Должность.Шахтер = 1 Тогда
НДФЛБол = ?(НачисленоВсего<>0,НДФЛ*КВыплатеНДФЛ/НачисленоВсего,0);
Иначе
Ставка = спШСт.Ставка.Получить(ТП.ДатаОкончания);
НДФЛБол = (КВыплатеНДФЛ - ЕСВ663)*Ставка;
КонецЕсли;
//
Иначе //При 17% НДФЛ
//считаем, что больничный идет после Зарплаты, ГПХ - последний
НачисленоВсего = НачисленоВсего - НачисленоГПХ;
Если НачисленоВсего<=Предел Тогда
НДФЛБол = КВыплатеНДФЛ*Ставка;
ИначеЕсли НачисленоВсего - КВыплатеНДФЛ <= Предел Тогда
Квыплате15 = Предел - НачисленоВсего + КВыплатеНДФЛ;
НДФЛБол = Квыплате15*Ставка + (КВыплатеНДФЛ - Квыплате15)*Ставка17;
Иначе
//весь больничный 17%
НДФЛБол = КВыплатеНДФЛ*Ставка17;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Интересует ветка "Иначе //При 17% НДФЛ". Можете объяснить логику расчета? Особенно строку
НачисленоВсего = НачисленоВсего - НачисленоГПХ;