При подготовке квартальной регламентированной отчетности на предприятиях с высокой численностью персонала (от нескольких тысяч сотрудников) пользователи конфигурации «1С:Зарплата и Управление Персоналом 2.5» нередко сталкиваются с ситуацией, когда регламентированный отчет «Расчет по страховым взносам» (РСВ) формируется много часов подряд или полностью блокирует работу сеанса. Проанализируем архитектурные причины такого поведения системы и рассмотрим практические способы решения проблемы высокой нагрузки.
Разберем внутренний механизм формирования формы РСВ в конфигурациях на обычных формах. Процесс заполнения отчета условно делится на два ключевых этапа:
СтраховыеВзносыСведенияОДоходах, ИсчисленныеСтраховыеВзносы и выполняет расчет сумм. Этот этап исполняется на сервере СУБД и 1С:Предприятия. Даже на десятках тысяч записей оптимизированный SQL-запрос выполняется за несколько минут.Именно второй этап является главным узким местом. Механизм обычных форм 1С:Предприятия 8 отрисовывает элементы интерфейса в едином потоке 32-разрядного клиентского приложения. При накоплении десятков тысяч табличных документов в оперативной памяти одного сеанса происходят следующие сбои:
Наиболее эффективный подход для организаций с численностью более 3–5 тысяч человек — исключить построение экранных форм Раздела 3 и генерировать файл выгрузки XML напрямую. Разберем логику работы такого решения:
ЗаписьXML напрямую из полученных таблиц данных.Такой подход сокращает время формирования итогового файла выгрузки с 15–19 часов до 5–15 минут, так как исключается самый ресурсоемкий этап — генерация визуальных табличных документов.
Проанализируем программные ошибки типовых конфигураций. В ранних релизах формы РСВ фирма «1С» использовала неоптимальные алгоритмы соединения таблиц по страховым взносам и распределения выплат по тарифам.
Рекомендуется обновить конфигурацию 1С:ЗУП 2.5 и внешние формы регламентированной отчетности до актуальных релизов. В последующих обновлениях были внесены следующие оптимизации:
Если этап выполнения запросов к базе данных также занимает существенное время, необходимо проверить состояние таблиц и индексов на сервере Microsoft SQL Server или PostgreSQL. Выполним следующие шаги:
Table Scan вместо поиска по индексу Index Seek). Перед сдачей квартальной отчетности выполните полное обновление статистики по регистрам страховых взносов.СтраховыеВзносыСведенияОДоходах, ИсчисленныеСтраховыеВзносы и основных справочников (ФизическиеЛица, СотрудникиОрганизаций).