gifts2017

Перерасчет ФСС НС за предыдущий период в ЗиК 315

Опубликовал Nicholas Mikuslas (Nicholas) в раздел Программирование - Ошибки в отраслевых решениях

Если изменить базу вида расчета «ФСС НС», то в релизе 1С:Зарплата и Кадры 7.70.315, в текущем расчетном периоде не происходит перерасчет за предыдущие периоды.

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

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.