Почему документ «Перерасчет страховых взносов» не меняет средний заработок для пособий в 1С:ЗУП 3.1 и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Налоговый учет IT и автоматизация бизнеса
← На главную

В процессе работы с конфигурацией «Зарплата и управление персоналом 3.1» мы часто сталкиваемся с необходимостью корректировки данных прошлых периодов. Одной из неочевидных проблем является ситуация, когда после перерасчета страховых взносов данные для отчетности РСВ обновляются корректно, а вот база для расчета больничных (средний заработок) остается прежней. Давайте подробно разберем, почему так происходит, как устроена архитектура регистров в программе и какие существуют способы решения этой задачи.

Суть проблемы: рассинхронизация учета

Рассмотрим ситуацию, с которой столкнулся автор вопроса. В системе создается документ Перерасчет страховых взносов. С его помощью корректируется учет доходов для исчисления взносов (например, изменился вид дохода или выявлена ошибка в облагаемой базе). Ожидание пользователя состоит в том, что раз изменилась сумма дохода, облагаемого взносами, то автоматически должна измениться и база для расчета пособий (больничных листов).

Однако на практике при проведении анализа регистров мы видим следующее:

  1. Регистры по учету взносов (для РСВ) — скорректированы.
  2. Регистры учета среднего заработка для пособий — остались без изменений.

В результате возникает расхождение между данными, которые мы отправляем в ФНС (и далее в СФР) через РСВ, и данными, которые хранятся в базе для расчета пособий. Это может привести к вопросам со стороны фонда при сверке данных.

Архитектурные причины разделения учета в 1С:ЗУП

Чтобы понять, как правильно действовать, нам необходимо углубиться в устройство регистров накопления 1С. Исторически сложилось так, что правила расчета базы для страховых взносов и правила расчета среднего заработка для пособий не всегда совпадали (особенно до 2011 года). В современной версии ЗУП 3.1 эта логика разделения сохранена для обеспечения гибкости.

В системе существуют два параллельных потока данных:

  1. Учет страховых взносов. За него отвечает регистр накопления УчетДоходовДляИсчисленияСтраховыхВзносов (и связанные регистры исчисленных взносов). Документ Перерасчет страховых взносов работает именно с этими данными. Его задача — пересчитать налоги.
  2. Учет среднего заработка. За него отвечают регистры, такие как ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС (старый) или актуальные регистры для расчета пособий. Эти регистры двигаются документами начисления зарплаты, премий и прочими документами, формирующими доход сотрудника.

Важно осознать: изменение налогообложения дохода не всегда означает изменение самого факта получения дохода или его суммы. Документ перерасчета взносов знает только о «Виде дохода для страховых взносов», но он не предназначен для управления фактическими начислениями, из которых складывается средний заработок.

Методологическое решение (без программирования)

Если мы корректируем базу взносов вручную, мы берем на себя ответственность за синхронизацию данных. Рассмотрим правильный алгоритм действий без изменения кода конфигурации.

Если причина перерасчета — ошибка в сумме начисления (например, начислили лишнее или недоначислили), то правильным путем будет:

  1. Исправить исходный документ начисления (через механизм «Исправить» в прошлом периоде).
  2. В этом случае программа автоматически сделает сторнирующие записи и новые движения как по регистрам взносов, так и по регистрам среднего заработка.

Если же мы используем документ Перерасчет страховых взносов для ручной корректировки (например, меняем квалификацию дохода без изменения суммы начисления), то движения по среднему заработку нужно добавить самостоятельно.

Для этого используем документ «Перенос данных»:

  1. Открываем раздел «Администрирование» -> «Перенос данных».
  2. Создаем новый документ.
  3. В настройке состава регистров выбираем регистр накопления ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС (или аналогичный актуальный регистр учета доходов для пособий).
  4. Вручную добавляем записи, дублирующие те изменения в доходах, которые мы отразили в перерасчете взносов.

Это самый безопасный и корректный способ с точки зрения методологии 1С. Таким образом, данные для ответов на запросы СФР и расчета будущих больничных будут совпадать с данными РСВ.

Программное решение (Доработка конфигурации)

Если подобных ситуаций много и ручной ввод через Перенос данных трудоемок, можно рассмотреть автоматизацию через расширение конфигурации. Однако, стоит помнить предупреждение участников обсуждения: автоматическое изменение регистров среднего при изменении взносов может быть не всегда корректным, поэтому такую логику нужно внедрять осторожно.

Чаще всего для ручных корректировок используется также документ ОперацияУчетаВзносов. В типовом виде он тоже не делает движений по среднему. Мы можем доработать его проведение.

В модуле документа (или лучше в расширении, перехватывая событие проведения) необходимо добавить логику формирования движений по регистрам учета пособий. Рассмотрим примерный алгоритм, предложенный в обсуждении.

Стандартная процедура проведения документа ОперацияУчетаВзносов выглядит примерно так:


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);
    ДанныеДляПроведения = ПолучитьДанныеДляПроведения();
    
    // Стандартные движения по взносам
    УчетСтраховыхВзносов.СформироватьДоходыСтраховыеВзносы(Движения, Отказ, Организация, МесяцРасчетногоПериода, ДанныеДляПроведения.НачисленияПоСотрудникам, Истина);
    УчетСтраховыхВзносов.СформироватьИсчисленныеВзносы(Движения, Отказ, Организация, МесяцРасчетногоПериода, ДанныеДляПроведения.ВзносыИсчисленные);
    // ... другие стандартные вызовы
КонецПроцедуры

Чтобы добавить движения по среднему заработку для ФСС, нам нужно воспользоваться механизмами модуля УчетПособийСоциальногоСтрахования. В расширении после выполнения стандартного проведения мы можем добавить вызов процедуры формирования движений по регистру среднего.

Примерная логика, которую нужно реализовать в расширении:


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

Важно: Прямой вызов процедур общих модулей может быть затруднен тем, что они ожидают специфическую структуру данных ДанныеДляПроведения, которую готовит менеджер документа. В документе ОперацияУчетаВзносов эта структура не содержит данных для среднего.

Поэтому более надежным вариантом для программиста будет не попытка вызвать стандартную процедуру, а написание собственного алгоритма заполнения набора записей регистра ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаФСС на основании табличной части документа:

  1. Перебираем строки табличной части СведенияОДоходах.
  2. Проверяем, является ли вид дохода облагаемым для ФСС.
  3. Создаем запись в регистре накопления.
  4. Заполняем измерения: ФизическоеЛицо, Организация, Год (из периода регистрации).
  5. Заполняем ресурсы: Сумма.

Резюме

Давайте подведем итог нашему исследованию.

← На главную