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