В связи с принятием Федерального закона от 01.04.2020 № 102-ФЗ, для организаций и индивидуальных предпринимателей, включенных в реестр субъектов малого и среднего предпринимательства (МСП), были введены пониженные тарифы страховых взносов. Основная сложность заключается в том, что расчет необходимо производить не с полной суммы дохода, а разделяя выплаты на две части: в пределах МРОТ и свыше МРОТ. Разберем, как реализовать этот механизм в конфигурации 1С:Зарплата и Управление Персоналом 2.5, которая на данный момент находится на ограниченной поддержке.
Прежде чем приступать к технической реализации в коде, проанализируем методологию, которую нам необходимо внедрить. Согласно закону, расчет взносов для МСП выполняется следующим образом:
Поскольку ЗУП 2.5 редко получает оперативные обновления, рассмотрим основной путь решения проблемы — перенос логики из параллельных веток конфигураций, таких как 1С:Управление производственным предприятием 1.3 (УПП) или ЗУП 2.5 КОРП. В этих системах функционал реализуется через добавление нового вида тарифа страховых взносов.
Проанализируем необходимые изменения в метаданных:
ТарифыСтраховыхВзносов: необходимо добавить новое значение СубъектыМалогоИСреднегоПредпринимательства.ТарифыСтраховыхВзносов: нужно внести записи для нового тарифа, указав актуальные ставки.УчетСтраховыхВзносов: это "сердце" системы расчета. Именно здесь сосредоточена логика распределения доходов.Рассмотрим пример того, как алгоритм должен разделять базу. Нам потребуется функция, которая будет определять размер МРОТ на начало года и сопоставлять его с текущими начислениями сотрудника за месяц. Проанализируем примерную структуру кода, который отвечает за распределение базы:
Функция РаспределитьБазуПоТарифамМСП(Сотрудник, МесяцРасчета, ОбщаяБаза)
МРОТ_НаНачалоГода = Константы.ТекущийМРОТ.Получить(); // Должна быть логика получения на 01.01
Результат = Новый Структура;
Результат.ВПределахМРОТ = Мин(ОбщаяБаза, МРОТ_НаНачалоГода);
Результат.СвышеМРОТ = Макс(0, ОбщаяБаза - МРОТ_НаНачалоГода);
Возврат Результат;
КонецФункции
Обратим внимание на важный нюанс, упомянутый в обсуждении: хотя расчет ведется помесячно относительно МРОТ, общая база для контроля предельной величины (взносы свыше лимита) все равно считается нарастающим итогом с начала года. Это означает, что в системе должны появиться "две карточки" или, говоря техническим языком, два разреза учета для одного физического лица в одном месяце.
Выясним причину сложности формирования отчетности РСВ (Расчет по страховым взносам). В отчете должны фигурировать разные коды категории застрахованного лица:
Следовательно, при проведении документа НачислениеСтраховыхВзносов записи в регистр накопления СтраховыеВзносыСведенияОДоходах и СтраховыеВзносыИсчисленные должны формироваться в двух экземплярах с разными видами тарифа. Если мы просто изменим ставку в коде без разделения записей, мы не сможем корректно заполнить регламентированную отчетность.
Если вы приняли решение "подсмотреть" код в УПП или КОРП версии и внедрить его в свою ЗУП 2.5, придерживайтесь следующего плана действий:
МинимальнаяОплатаТрудаРФ.УчетСтраховыхВзносов найдите процедуру, отвечающую за расчет сумм взносов (обычно это РассчитатьСубъектыМСП или аналогичная внутри общего цикла расчета).НачислениеСтраховыхВзносов, чтобы при обнаружении тарифа МСП программа создавала строки по обеим категориям (НР и МС).Рассмотрим фрагмент кода, который иллюстрирует принцип записи разделенных данных:
// Пример логики разделения проводок в регистре
Запись = НаборЗаписей.Добавить();
Запись.ВидДохода = Перечисления.ВидыДоходовСтраховыхВзносов.ДоходыЦеликомОблагаемые;
Запись.КатегорияЗЛ = Перечисления.КатегорииЗастрахованныхЛиц.НР; // Наемный работник
Запись.Сумма = БазаВПределахМРОТ;
ЗаписьМС = НаборЗаписей.Добавить();
ЗаписьМС.ВидДохода = Перечисления.ВидыДоходовСтраховыхВзносов.ДоходыЦеликомОблагаемые;
ЗаписьМС.КатегорияЗЛ = Перечисления.КатегорииЗастрахованныхЛиц.МС; // Малое Сообщество (МСП)
ЗаписьМС.Сумма = БазаСвышеМРОТ;
Как отмечают участники обсуждения, реализация таких радикальных изменений в структуре учета в старой версии 2.5 — задача трудоемкая и рискованная. В ЗУП 3.1 этот функционал уже реализован штатно, включая автоматическое заполнение РСВ с разделением по кодам тарифа "20" и категориям "МС", "ВЖМС", "ВПМС". Если ваша конфигурация ЗУП 2.5 сильно кастомизирована, возможно, проще "выдрать" кусок кода из актуального релиза УПП 1.3, так как архитектурно УПП и ЗУП 2.5 очень похожи (используют обычные формы и схожую структуру регистров).
Важный совет: перед выполнением расчета за месяц, в котором применяется льгота, обязательно проверьте, включена ли организация в реестр МСП. Применение пониженных тарифов без основания приведет к штрафам и необходимости пересчета взносов по общей ставке.
Подводя итог, можно сказать: реализовать расчет взносов для МСП в ЗУП 2.5 возможно, но это потребует серьезного вмешательства в механизмы формирования движений по регистрам страховых взносов и корректировки алгоритмов в общих модулях. Рассматривайте этот вариант как временную меру перед переходом на современные версии программных продуктов 1С.