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

Программирование - Ошибки в отраслевых решениях

Если изменить базу вида расчета «ФСС НС», то в релизе 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 [<>]

См. также

Комментарии
1. Александр Лыткин (TrinitronOTV) 03.11.11 05:46 Сейчас в теме
спасибо за эту информацию
2. rimma_n (rimma_n) 165 07.11.11 11:52 Сейчас в теме
3. Надежда Корбанова (Korbanova_N) 3 09.11.11 09:47 Сейчас в теме
Что такое 0.6 в строке
ИсчисленоВзносов = Окр(ИсчисленоПоТекущийМесяц - ИсчисленоПоПредыдущийМесяц, 2)
+ Окр(БазаТекущийМесяцИнвалид * 0.6 * ТарифФСС_НС / 100, 2); ?
4. Nicholas Mikuslas (Nicholas) 701 09.11.11 13:16 Сейчас в теме
(3) Понижающий коэффициент 60% от тарифа.
5. Надежда Корбанова (Korbanova_N) 3 09.11.11 13:24 Сейчас в теме
6. элла иванова (2011b11) 14.11.11 13:25 Сейчас в теме
7. Ирина Нечаева (Arin) 08.12.11 05:26 Сейчас в теме
8. nickVZ (nickVZ) 10 18.01.12 10:23 Сейчас в теме
По 125-ФЗ Страховые взносы на "травматизм" работодатель рассчитывает ежемесячно, исходя из начислений, осуществленных в этом месяце в рамках трудовых отношений, и страхового тарифа, который установлен страхователю.
Не надо фантазий.
9. Светлана Иванова (Cvetic) 304 02.04.13 11:00 Сейчас в теме
Неправильно рассчитываются инвалиды. Нужно так:
БазаТекущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы, "БазаФСС_НС");
глСообщениеТрассировки(глСообщенияТрассировки, "База для расчета взносов по текущий месяц:_П01", 0,0, БазаТекущийМесяц, "Ч15.2");

БазаТекущийМесяцИнвалид = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы, "БазаФСС_НСИнвалид");
//Если Месяц > 1 Тогда
//БазаТекущийМесяцИнвалид = БазаТекущийМесяцИнвалид - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы - 1, "БазаФСС_НСИнвалид");
//КонецЕсли;

//ИсчисленоПоТекущийМесяц = (БазаТекущийМесяц * ТарифФСС_НС / 100);
Если ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"Инвалид")=1 Тогда
ИсчисленоПоТекущийМесяц = Окр(БазаТекущийМесяцИнвалид * ПонижающийКоэффициент * ТарифФСС_НС / 100,2)
Иначе
ИсчисленоПоТекущийМесяц = Окр(БазаТекущийМесяц * ТарифФСС_НС / 100,2);
КонецЕсли;
глСообщениеТрассировки(глСообщенияТрассировки, "Исчислено взносов по текущий месяц:_П01", 0,0, ИсчисленоПоТекущийМесяц, "Ч15.2");

ИсчисленоПоПредыдущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоФСС_НС");
глСообщениеТрассировки(глСообщенияТрассировки, "Исчислено взносов по предыдущий месяц:_П01", 0,0, ИсчисленоПоПредыдущийМесяц, "Ч15.2");

ИсчисленоВзносов = Окр(ИсчисленоПоТекущийМесяц - ИсчисленоПоПредыдущийМесяц, 2);
//+ Окр(БазаТекущийМесяцИнвалид * 0.6 * ТарифФСС_НС / 100, 2);
Nicholas; +1 Ответить
10. Светлана Иванова (Cvetic) 304 02.04.13 11:49 Сейчас в теме
Еще одна ошибка: при повторном расчете данные обнуляются. Вместо
ИсчисленоПоПредыдущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоФСС_НС");
нужно
ИсчисленоПоПредыдущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоФСС_НС");
11. Светлана Иванова (Cvetic) 304 02.04.13 11:49 Сейчас в теме
В итоге получаем
БазаТекущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы, "БазаФСС_НС");
глСообщениеТрассировки(глСообщенияТрассировки, "База для расчета взносов по текущий месяц:_П01", 0,0, БазаТекущийМесяц, "Ч15.2");

БазаТекущийМесяцИнвалид = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы, "БазаФСС_НСИнвалид");

Если ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"Инвалид")=1 Тогда
ИсчисленоПоТекущийМесяц = Окр(БазаТекущийМесяцИнвалид * ПонижающийКоэффициент * ТарифФСС_НС / 100,2)
Иначе
ИсчисленоПоТекущийМесяц = Окр(БазаТекущийМесяц * ТарифФСС_НС / 100,2);
КонецЕсли;
глСообщениеТрассировки(глСообщенияТрассировки, "Исчислено взносов по текущий месяц:_П01", 0,0, ИсчисленоПоТекущийМесяц, "Ч15.2");

ИсчисленоПоПредыдущийМесяц = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоФСС_НС");
глСообщениеТрассировки(глСообщенияТрассировки, "Исчислено взносов по предыдущий месяц:_П01", 0,0, ИсчисленоПоПредыдущийМесяц, "Ч15.2");

ИсчисленоВзносов = Окр(ИсчисленоПоТекущийМесяц - ИсчисленоПоПредыдущийМесяц, 2);
12. Светлана Иванова (Cvetic) 304 02.04.13 11:52 Сейчас в теме
И еще не забыть уволенных в прошлых месяцах сотрудников включить в документы Начисление заработной платы и Начисление страховых взносов, чтобы по ним тоже налоги пересчитались.
Оставьте свое сообщение