Как выяснилось, проблема в алгоритме вида расчета «ФСС_НС». В реализации фирмы 1С расчет происходит следующим образом. Рассчитывается база (нарастающим итогом с начала года) на текущий период, затем из нее вычитается база на предыдущий перод. Полученная сумма умножается на ставку налога. Проблема в том, что разница этих двух сумм всегда будет равна базе текущего расчетного периода, не смотря на изменения налогооблажения некоторых видов расчета.
Решается проблема следующим образом. При расчете необходимо учесть суммы, исчисленные в предыдущих периодах, начиная с начала года. Для этого необходимо изменить часть программного кода в модуле вида расчета «ФСС_НС»:
//Nicholas [<>] ОАО "Рога и Копыта" 02.11.2011 17:34:09
//Comments: Перерасчет ФСС НС за предыдущий период в ЗиК 315
//Been:
//БазаТекущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаФСС_НС");
//Если Месяц>1 Тогда
//БазаТекущийМесяц = БазаТекущийМесяц - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаФСС_НС");
//КонецЕсли;
//// получим облагаемую базу инвалида
//БазаТекущийМесяцИнвалид = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаФСС_НСИнвалид");
//Если Месяц>1 Тогда
//БазаТекущийМесяцИнвалид = БазаТекущийМесяцИнвалид - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаФСС_НСИнвалид");
//КонецЕсли;
//
//ИсчисленоВзносов = Окр(БазаТекущийМесяц * ТарифФСС_НС / 100,2) + Окр(БазаТекущийМесяцИнвалид * ПонижающийКоэффициент * ТарифФСС_НС / 100,2);
//Turn:
БазаТекущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы, "БазаФСС_НС");
глСообщениеТрассировки(глСообщенияТрассировки, "База для расчета взносов по текущий месяц:_П01", 0,0, БазаТекущийМесяц, "Ч15.2");
БазаТекущийМесяцИнвалид = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы, "БазаФСС_НСИнвалид");
Если Месяц > 1 Тогда
БазаТекущийМесяцИнвалид = БазаТекущийМесяцИнвалид - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы - 1, "БазаФСС_НСИнвалид");
КонецЕсли;
ИсчисленоПоТекущийМесяц = (БазаТекущийМесяц * ТарифФСС_НС / 100);
глСообщениеТрассировки(глСообщенияТрассировки, "Исчислено взносов по текущий месяц:_П01", 0,0, ИсчисленоПоТекущийМесяц, "Ч15.2");
ИсчисленоПоПредыдущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоФСС_НС");
глСообщениеТрассировки(глСообщенияТрассировки, "Исчислено взносов по предыдущий месяц:_П01", 0,0, ИсчисленоПоПредыдущийМесяц, "Ч15.2");
ИсчисленоВзносов = Окр(ИсчисленоПоТекущийМесяц - ИсчисленоПоПредыдущийМесяц, 2)
+ Окр(БазаТекущийМесяцИнвалид * 0.6 * ТарифФСС_НС / 100, 2);
//EndNicholas [<>]