Как реализовать расчет страховых взносов по пониженным тарифам (15%) для МСП в 1С:ЗУП 2.5?

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

В связи с принятием Федерального закона от 01.04.2020 № 102-ФЗ, для организаций и индивидуальных предпринимателей, включенных в реестр субъектов малого и среднего предпринимательства (МСП), были введены пониженные тарифы страховых взносов. Основная сложность заключается в том, что расчет необходимо производить не с полной суммы дохода, а разделяя выплаты на две части: в пределах МРОТ и свыше МРОТ. Разберем, как реализовать этот механизм в конфигурации 1С:Зарплата и Управление Персоналом 2.5, которая на данный момент находится на ограниченной поддержке.

Законодательная логика расчета

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

  1. Часть ежемесячной выплаты в пользу физического лица, не превышающая МРОТ, облагается по общим тарифам (обычно это 30%: 22% на ОПС, 5.1% на ОМС и 2.9% на ФСС).
  2. Часть выплаты, превышающая МРОТ, облагается по пониженным ставкам: 10% на обязательное пенсионное страхование (ОПС) и 5% на обязательное медицинское страхование (ОМС). Взносы в ФСС (на случай временной нетрудоспособности и в связи с материнством) с этой части составляют 0%.
  3. Важно помнить: для расчета используется значение МРОТ, установленное на 1 января текущего года. Даже если МРОТ индексируется в течение года, для взносов мы продолжаем использовать январское значение (например, 12 130 рублей для 2020 года).
  4. Взносы на "травматизм" (НС и ПЗ) рассчитываются по стандартной ставке организации со всей суммы дохода, льгота на них не распространяется.

Техническая реализация: Обновление и заимствование кода

Поскольку ЗУП 2.5 редко получает оперативные обновления, рассмотрим основной путь решения проблемы — перенос логики из параллельных веток конфигураций, таких как 1С:Управление производственным предприятием 1.3 (УПП) или ЗУП 2.5 КОРП. В этих системах функционал реализуется через добавление нового вида тарифа страховых взносов.

Проанализируем необходимые изменения в метаданных:

  1. Перечисление ТарифыСтраховыхВзносов: необходимо добавить новое значение СубъектыМалогоИСреднегоПредпринимательства.
  2. Регистр сведений ТарифыСтраховыхВзносов: нужно внести записи для нового тарифа, указав актуальные ставки.
  3. Общий модуль УчетСтраховыхВзносов: это "сердце" системы расчета. Именно здесь сосредоточена логика распределения доходов.

Рассмотрим пример того, как алгоритм должен разделять базу. Нам потребуется функция, которая будет определять размер МРОТ на начало года и сопоставлять его с текущими начислениями сотрудника за месяц. Проанализируем примерную структуру кода, который отвечает за распределение базы:


Функция РаспределитьБазуПоТарифамМСП(Сотрудник, МесяцРасчета, ОбщаяБаза)
    МРОТ_НаНачалоГода = Константы.ТекущийМРОТ.Получить(); // Должна быть логика получения на 01.01
    
    Результат = Новый Структура;
    Результат.ВПределахМРОТ = Мин(ОбщаяБаза, МРОТ_НаНачалоГода);
    Результат.СвышеМРОТ = Макс(0, ОбщаяБаза - МРОТ_НаНачалоГода);
    
    Возврат Результат;
КонецФункции

Особенности учета нарастающим итогом

Обратим внимание на важный нюанс, упомянутый в обсуждении: хотя расчет ведется помесячно относительно МРОТ, общая база для контроля предельной величины (взносы свыше лимита) все равно считается нарастающим итогом с начала года. Это означает, что в системе должны появиться "две карточки" или, говоря техническим языком, два разреза учета для одного физического лица в одном месяце.

Выясним причину сложности формирования отчетности РСВ (Расчет по страховым взносам). В отчете должны фигурировать разные коды категории застрахованного лица:

Следовательно, при проведении документа НачислениеСтраховыхВзносов записи в регистр накопления СтраховыеВзносыСведенияОДоходах и СтраховыеВзносыИсчисленные должны формироваться в двух экземплярах с разными видами тарифа. Если мы просто изменим ставку в коде без разделения записей, мы не сможем корректно заполнить регламентированную отчетность.

Алгоритм внедрения изменений в старую конфигурацию

Если вы приняли решение "подсмотреть" код в УПП или КОРП версии и внедрить его в свою ЗУП 2.5, придерживайтесь следующего плана действий:

  1. Синхронизация констант. Убедитесь, что в системе заведено актуальное значение МРОТ на 1 января. Проверьте регистр сведений МинимальнаяОплатаТрудаРФ.
  2. Модификация процедур расчета. В общем модуле УчетСтраховыхВзносов найдите процедуру, отвечающую за расчет сумм взносов (обычно это РассчитатьСубъектыМСП или аналогичная внутри общего цикла расчета).
  3. Обработка скидок и вычетов. Помните, что если у сотрудника есть доходы, не являющиеся объектом обложения (например, пособия), они должны распределяться пропорционально между базой "МРОТ" и базой "Свыше МРОТ". Проанализируем этот момент: если доход составляет 20 000 руб., из которых 2 000 руб. — необлагаемые, то эти 2 000 руб. нельзя просто вычесть из одной части. Они уменьшают общую базу, которая затем делится.
  4. Корректировка движений документа. Измените логику в модуле объекта документа НачислениеСтраховыхВзносов, чтобы при обнаружении тарифа МСП программа создавала строки по обеим категориям (НР и МС).

Рассмотрим фрагмент кода, который иллюстрирует принцип записи разделенных данных:


// Пример логики разделения проводок в регистре
Запись = НаборЗаписей.Добавить();
Запись.ВидДохода = Перечисления.ВидыДоходовСтраховыхВзносов.ДоходыЦеликомОблагаемые;
Запись.КатегорияЗЛ = Перечисления.КатегорииЗастрахованныхЛиц.НР; // Наемный работник
Запись.Сумма = БазаВПределахМРОТ;

ЗаписьМС = НаборЗаписей.Добавить();
ЗаписьМС.ВидДохода = Перечисления.ВидыДоходовСтраховыхВзносов.ДоходыЦеликомОблагаемые;
ЗаписьМС.КатегорияЗЛ = Перечисления.КатегорииЗастрахованныхЛиц.МС; // Малое Сообщество (МСП)
ЗаписьМС.Сумма = БазаСвышеМРОТ;

Рекомендации по переходу на ЗУП 3.1

Как отмечают участники обсуждения, реализация таких радикальных изменений в структуре учета в старой версии 2.5 — задача трудоемкая и рискованная. В ЗУП 3.1 этот функционал уже реализован штатно, включая автоматическое заполнение РСВ с разделением по кодам тарифа "20" и категориям "МС", "ВЖМС", "ВПМС". Если ваша конфигурация ЗУП 2.5 сильно кастомизирована, возможно, проще "выдрать" кусок кода из актуального релиза УПП 1.3, так как архитектурно УПП и ЗУП 2.5 очень похожи (используют обычные формы и схожую структуру регистров).

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

Подводя итог, можно сказать: реализовать расчет взносов для МСП в ЗУП 2.5 возможно, но это потребует серьезного вмешательства в механизмы формирования движений по регистрам страховых взносов и корректировки алгоритмов в общих модулях. Рассматривайте этот вариант как временную меру перед переходом на современные версии программных продуктов 1С.

← На главную