В процессе сопровождения и постепенного (поэтапного) обновления крупных корпоративных систем на платформе 1С:Предприятие 8.3 (таких как 1С:ERP Управление предприятием или 1С:Зарплата и управление персоналом) специалисты часто сталкиваются со следующей проблемой. Релиз конфигурации временно "застревает" на промежуточном этапе (например, при переходе с ветки 2.1 на 2.2 или 2.5), а регламентированный учет и расчет зарплаты необходимо вести непрерывно. В таких базах еще отсутствуют актуальные размеры государственных пособий и предельные величины базы для начисления страховых взносов за новые периоды.
Если обновление конфигурации до актуального релиза откладывается, наиболее эффективным решением является ручное или программное заполнение соответствующих регистров сведений. В рамках данной статьи мы подробно разберем, как устроена структура хранения этих данных в системе 1С, предоставим готовые программные скрипты для автоматического заполнения регистров и приведем полные таблицы актуальных значений лимитов и пособий с 2018 по 2026 год включительно.
Перед тем как переходить к написанию кода или ручному вводу данных, нам необходимо точно выяснить, в каких объектах метаданных конфигураций 1С:ERP и 1С:ЗУП хранятся интересующие нас показатели:
ГосударственныеПособия. Ведущим измерением регистра является вид пособия, который ссылается на предопределенные элементы перечисления РазмерыГосударственныхПособий.ПредельнаяВеличинаБазыНачисленияСтраховыхВзносов. Записи в этом регистре классифицируются по периодам (годам) и видам страхования (ОПС, ВНиМ, Единый тариф).Рассмотрим детально, как заполнить каждый из этих регистров с учетом масштабных изменений в законодательстве РФ.
Для быстрого внесения информации в базу данных лучше всего использовать внешнюю обработку. Мы можем написать процедуру, которая очистит или обновит записи в регистре сведений ГосударственныеПособия. Ниже представлен расширенный и дополненный программный код, базирующийся на решениях из практики 1С-разработчиков. Данный код включает в себя исторические данные, а также актуальные проиндексированные показатели до 2026 года включительно.
Проанализируем структуру и логику работы программного кода:
&НаСервере
Процедура ЗаполнитьГосударственныеПособияНаСервере()
ВидыПособий = Перечисления.РазмерыГосударственныхПособий;
НаборЗаписей = РегистрыСведений.ГосударственныеПособия.СоздатьНаборЗаписей();
// 1. По уходу за ребенком до 3 лет (историческая компенсация 50 руб., отмененная с 2020 года)
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПоУходуЗаРебенкомДо3хЛет, '20000101', 50);
// 2. Единовременное пособие при рождении ребенка
// Исторический блок данных
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПриРожденииРебенка, '20150101', 14497.80);
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПриРожденииРебенка, '20160201', 15512.65);
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПриРожденииРебенка, '20170201', 16350.33);
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПриРожденииРебенка, '20180201', 16759.09);
// Период после 2018 года
ПособиеРождение = ВидыПособий.ПриРожденииРебенка;
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20190201', 17479.73);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20200201', 18004.12);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20210201', 18886.32);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20220201', 20472.77);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20230201', 22909.03);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20240201', 24604.30);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20250201', 26941.71);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРождение, '20260201', 28450.45);
// Единовременное пособие при усыновлении ребенка (приравнивается к пособию при рождении)
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПриУсыновленииРебенка, '20180201', 16759.09);
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПриУсыновленииРебенка, '20190201', 17479.73);
ДобавитьЗаписьПособия(НаборЗаписей, ВидыПособий.ПриУсыновленииРебенка, '20200201', 18004.12);
// 3. Пособие при постановке на учет в ранние сроки беременности (упразднено с 01.07.2021)
ПособиеРанниеСроки = ВидыПособий.ПриПостановкеНаУчетВРанниеСрокиБеременности;
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРанниеСроки, '20180201', 628.47);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРанниеСроки, '20190201', 655.49);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРанниеСроки, '20200201', 675.15);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеРанниеСроки, '20210201', 708.23);
// 4. Минимальный размер ежемесячного пособия по уходу за ребенком до 1.5 лет
// С июня 2020 года разница между первым и последующими детьми законодательно ликвидирована
ПособиеМинимумПервый = ВидыПособий.МинимумПособияПоУходуЗаПервымРебенкомДоПолутораЛет;
ПособиеМинимумПоследующий = ВидыПособий.МинимумПособияПоУходуЗаПоследующимРебенкомДоПолутораЛет;
// Исторический блок до объединения минимумов
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20180201', 3142.33);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20180201', 6284.65);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20190201', 3277.45);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20190201', 6554.89);
// Единый минимум с июня 2020 года и далее
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20200601', 6752.00);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20200601', 6752.00);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20210201', 7082.85);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20210201', 7082.85);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20220201', 7677.81);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20220201', 7677.81);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20230201', 8591.24);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20230201', 8591.24);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20240201', 9227.24);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20240201', 9227.24);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20250201', 10103.83);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20250201', 10103.83);
// В 2026 году для работающих граждан минимум рассчитывается от МРОТ (40% от 27093 руб = 10837.20 руб)
// Для неработающих проиндексированный минимум составляет 10669.64 руб. В регистр заносим базовый минимум:
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПервый, '20260201', 10669.64);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеМинимумПоследующий, '20260201', 10669.64);
// 5. Пособие на погребение (в связи со смертью)
ПособиеСмерть = ВидыПособий.ВСвязиСоСмертью;
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20180201', 5701.31);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20190201', 5946.47);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20200201', 6124.86);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20210201', 6424.98);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20220201', 6964.68);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20230201', 7793.48);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20240201', 8370.20);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20250201', 9165.37);
ДобавитьЗаписьПособия(НаборЗаписей, ПособиеСмерть, '20260201', 9678.63);
НаборЗаписей.Записать();
Сообщить("Регистр 'Государственные пособия' успешно обновлен!");
КонецПроцедуры
Процедура ДобавитьЗаписьПособия(НаборЗаписей, ВидПособия, ПериодЗаписи, РазмерПособия)
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = ПериодЗаписи;
НоваяЗапись.ВидПособия = ВидПособия;
НоваяЗапись.Размер = РазмерПособия;
КонецПроцедуры
Обратите внимание на вспомогательную процедуру ДобавитьЗаписьПособия. Она существенно упрощает код, избавляя разработчика от необходимости дублировать громоздкие конструкции создания строк набора записей для каждого отдельного периода.
Теперь выясним ситуацию с предельными величинами страховых взносов. В исходном обсуждении на форуме этот вопрос был полностью проигнорирован коллегами автора, хотя для корректного расчета налогов и взносов (особенно по ОПС и ВНиМ) эти лимиты критически важны.
До 31 декабря 2022 года в РФ действовало разделение лимитов базы по видам страхования. Нам требовалось заносить в базу отдельно пределы для ОПС (Пенсионный фонд) и отдельно для ВНиМ (социальное страхование на случай временной нетрудоспособности). С 1 января 2023 года, в связи с переходом на Единый налоговый счет (ЕНС) и образованием Социального фонда России (СФР), была введена Единая предельная величина базы.
Разберем, как отразить эти изменения в периодическом регистре сведений ПредельнаяВеличинаБазыНачисленияСтраховыхВзносов с помощью программного кода:
&НаСервере
Процедура ЗаполнитьПредельныеБазыСтраховыхВзносов()
НаборЗаписей = РегистрыСведений.ПредельнаяВеличинаБазыНачисленияСтраховыхВзносов.СоздатьНаборЗаписей();
// Периоды до объединения фондов (раздельные лимиты по ОПС и ВНиМ)
// 2018 год
ДобавитьПредел(НаборЗаписей, '20180101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеПенсионноеСтрахование, 1021000);
ДобавитьПредел(НаборЗаписей, '20180101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеСоциальноеСтрахование, 815000);
// 2019 год
ДобавитьПредел(НаборЗаписей, '20190101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеПенсионноеСтрахование, 1150000);
ДобавитьПредел(НаборЗаписей, '20190101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеСоциальноеСтрахование, 865000);
// 2020 год
ДобавитьПредел(НаборЗаписей, '20200101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеПенсионноеСтрахование, 1292000);
ДобавитьПредел(НаборЗаписей, '20200101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеСоциальноеСтрахование, 912000);
// 2021 год
ДобавитьПредел(НаборЗаписей, '20210101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеПенсионноеСтрахование, 1465000);
ДобавитьПредел(НаборЗаписей, '20210101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеСоциальноеСтрахование, 966000);
// 2022 год
ДобавитьПредел(НаборЗаписей, '20220101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеПенсионноеСтрахование, 1565000);
ДобавитьПредел(НаборЗаписей, '20220101', Перечисления.ВидыСтрахованияПФРФССФОМС.ОбязательноеСоциальноеСтрахование, 1032000);
// Периоды после объединения фондов в СФР (вводится Единая предельная величина)
// В старых конфигурациях Единый тариф сопоставляется либо со специальным новым предопределенным значением,
// либо переиспользуется измерение ОПС в зависимости от логики релиза.
// Традиционно в ERP 2.2 и ЗУП 3.1 используется значение "НаОбязательноеПенсионноеСтрахование" или "НаЕдиныйТариф"
ВидСтрахованияЕдиный = Перечисления.ВидыСтрахованияПФРФССФОМС.НаОбязательноеПенсионноеСтрахование;
ДобавитьПредел(НаборЗаписей, '20230101', ВидСтрахованияЕдиный, 1917000);
ДобавитьПредел(НаборЗаписей, '20240101', ВидСтрахованияЕдиный, 2225000);
ДобавитьПредел(НаборЗаписей, '20250101', ВидСтрахованияЕдиный, 2759000);
ДобавитьПредел(НаборЗаписей, '20260101', ВидСтрахованияЕдиный, 2979000);
НаборЗаписей.Записать();
Сообщить("Предельные величины базы страховых взносов успешно обновлены!");
КонецПроцедуры
Процедура ДобавитьПредел(НаборЗаписей, ПериодЗаписи, ВидСтрахования, ЛимитБазы)
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = ПериодЗаписи;
НоваяЗапись.ВидСтрахования = ВидСтрахования;
НоваяЗапись.Размер = ЛимитБазы; // Имя ресурса может отличаться (например, "Размер" или "ПредельнаяВеличина")
КонецПроцедуры
Важное предупреждение: Имена реквизитов и структура перечислений могут незначительно варьироваться в зависимости от точной версии вашей конфигурации (например, в 1С:ЗУП 3.1 и старой 1С:ERP 2.2). Перед запуском обработки обязательно откройте дерево метаданных в конфигураторе и проверьте точные имена измерений и ресурсов для регистра ПредельнаяВеличинаБазыНачисленияСтраховыхВзносов.
При работе в устаревших базах данных простого изменения цифр в регистрах может оказаться недостаточно из-за изменения методологии учета. Выясним ключевые вехи изменений в расчетах:
Проанализировав все вышеописанные шаги, мы можем сделать вывод, что временное ручное поддержание актуальности баз данных 1С вполне реализуемо программными методами. Тем не менее, настоятельно рекомендуется запланировать полноценное обновление вашей информационной базы 1С:ERP до современных и поддерживаемых вендором версий, чтобы избежать расхождений в методологии учета и отправке регламентированной отчетности.