В процессе работы с конфигурацией «Зарплата и управление персоналом 3.1» мы часто сталкиваемся с необходимостью корректировки данных прошлых периодов. Одной из неочевидных проблем является ситуация, когда после перерасчета страховых взносов данные для отчетности РСВ обновляются корректно, а вот база для расчета больничных (средний заработок) остается прежней. Давайте подробно разберем, почему так происходит, как устроена архитектура регистров в программе и какие существуют способы решения этой задачи.
Рассмотрим ситуацию, с которой столкнулся автор вопроса. В системе создается документ Перерасчет страховых взносов. С его помощью корректируется учет доходов для исчисления взносов (например, изменился вид дохода или выявлена ошибка в облагаемой базе). Ожидание пользователя состоит в том, что раз изменилась сумма дохода, облагаемого взносами, то автоматически должна измениться и база для расчета пособий (больничных листов).
Однако на практике при проведении анализа регистров мы видим следующее:
В результате возникает расхождение между данными, которые мы отправляем в ФНС (и далее в СФР) через РСВ, и данными, которые хранятся в базе для расчета пособий. Это может привести к вопросам со стороны фонда при сверке данных.
Чтобы понять, как правильно действовать, нам необходимо углубиться в устройство регистров накопления 1С. Исторически сложилось так, что правила расчета базы для страховых взносов и правила расчета среднего заработка для пособий не всегда совпадали (особенно до 2011 года). В современной версии ЗУП 3.1 эта логика разделения сохранена для обеспечения гибкости.
В системе существуют два параллельных потока данных:
УчетДоходовДляИсчисленияСтраховыхВзносов (и связанные регистры исчисленных взносов). Документ Перерасчет страховых взносов работает именно с этими данными. Его задача — пересчитать налоги.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС (старый) или актуальные регистры для расчета пособий. Эти регистры двигаются документами начисления зарплаты, премий и прочими документами, формирующими доход сотрудника.Важно осознать: изменение налогообложения дохода не всегда означает изменение самого факта получения дохода или его суммы. Документ перерасчета взносов знает только о «Виде дохода для страховых взносов», но он не предназначен для управления фактическими начислениями, из которых складывается средний заработок.
Если мы корректируем базу взносов вручную, мы берем на себя ответственность за синхронизацию данных. Рассмотрим правильный алгоритм действий без изменения кода конфигурации.
Если причина перерасчета — ошибка в сумме начисления (например, начислили лишнее или недоначислили), то правильным путем будет:
Если же мы используем документ Перерасчет страховых взносов для ручной корректировки (например, меняем квалификацию дохода без изменения суммы начисления), то движения по среднему заработку нужно добавить самостоятельно.
Для этого используем документ «Перенос данных»:
ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС (или аналогичный актуальный регистр учета доходов для пособий).Это самый безопасный и корректный способ с точки зрения методологии 1С. Таким образом, данные для ответов на запросы СФР и расчета будущих больничных будут совпадать с данными РСВ.
Если подобных ситуаций много и ручной ввод через Перенос данных трудоемок, можно рассмотреть автоматизацию через расширение конфигурации. Однако, стоит помнить предупреждение участников обсуждения: автоматическое изменение регистров среднего при изменении взносов может быть не всегда корректным, поэтому такую логику нужно внедрять осторожно.
Чаще всего для ручных корректировок используется также документ ОперацияУчетаВзносов. В типовом виде он тоже не делает движений по среднему. Мы можем доработать его проведение.
В модуле документа (или лучше в расширении, перехватывая событие проведения) необходимо добавить логику формирования движений по регистрам учета пособий. Рассмотрим примерный алгоритм, предложенный в обсуждении.
Стандартная процедура проведения документа ОперацияУчетаВзносов выглядит примерно так:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);
ДанныеДляПроведения = ПолучитьДанныеДляПроведения();
// Стандартные движения по взносам
УчетСтраховыхВзносов.СформироватьДоходыСтраховыеВзносы(Движения, Отказ, Организация, МесяцРасчетногоПериода, ДанныеДляПроведения.НачисленияПоСотрудникам, Истина);
УчетСтраховыхВзносов.СформироватьИсчисленныеВзносы(Движения, Отказ, Организация, МесяцРасчетногоПериода, ДанныеДляПроведения.ВзносыИсчисленные);
// ... другие стандартные вызовы
КонецПроцедуры
Чтобы добавить движения по среднему заработку для ФСС, нам нужно воспользоваться механизмами модуля УчетПособийСоциальногоСтрахования. В расширении после выполнения стандартного проведения мы можем добавить вызов процедуры формирования движений по регистру среднего.
Примерная логика, которую нужно реализовать в расширении:
&После("ОбработкаПроведения")
Процедура Расш_ОбработкаПроведения(Отказ, РежимПроведения)
// Получаем данные документа, необходимые для формирования движений по среднему
// В типовом документе ОперацияУчетаВзносов может не быть готовой структуры для среднего,
// поэтому данные придется собирать из табличной части "СведенияОДоходах".
ДанныеДляСреднего = Новый Структура;
// ... Здесь должен быть код, который преобразует строки ТЧ документа в структуру,
// понятную процедурам учета пособий. Обычно это список начислений с суммами и периодами.
// Вызов процедуры общего модуля для формирования движений
// Обратите внимание: точное имя процедуры зависит от версии релиза ЗУП
// Часто используется подобная конструкция:
УчетПособийСоциальногоСтрахования.СформироватьДанныеДляРасчетаСреднегоЗаработка(
Движения,
Отказ,
Организация,
ДанныеДляСреднего
);
// Обязательно записываем движения, если это не делается внутри вызываемой процедуры
Движения.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС.Записывать = Истина;
КонецПроцедуры
Важно: Прямой вызов процедур общих модулей может быть затруднен тем, что они ожидают специфическую структуру данных ДанныеДляПроведения, которую готовит менеджер документа. В документе ОперацияУчетаВзносов эта структура не содержит данных для среднего.
Поэтому более надежным вариантом для программиста будет не попытка вызвать стандартную процедуру, а написание собственного алгоритма заполнения набора записей регистра ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС на основании табличной части документа:
СведенияОДоходах.ФизическоеЛицо, Организация, Год (из периода регистрации).Сумма.Давайте подведем итог нашему исследованию.
Перерасчет страховых взносов и Операция учета взносов не влияют на расчет больничных, так как пишут только в налоговые регистры.Перенос данных. Это обеспечит корректную сдачу отчетности и расчет пособий.ОперацияУчетаВзносов, но делать это нужно с полным пониманием того, какие именно доходы должны попадать в средний заработок.