Как выяснилось, проблема в алгоритме вида расчета «ФСС_НС». В реализации фирмы 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 [<>]