Ускоряем расчет зарплаты в 10 раз

30.09.26

Управление проектом и продуктом - Кейсы проектов

Можно ли ускорить расчет заработной платы в «1С:ЗУП КОРП» в 10 раз? Разбираем ключевые ограничения производительности на крупных объемах данных. Объясняем, какие подходы к оптимизации действительно работают на практике: от многопоточности до автоматизации сценариев расчета и архитектурных решений. Демонстрируем результаты синтетических тестов и реального проекта с сотнями тысяч сотрудников, где удалось добиться кратного ускорения. Разбираем, как повысить производительность без потери корректности расчетов и с учетом требований бизнеса.

Контекст задачи: крупные компании и импортозамещение

 

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

После того как страна взяла курс на импортозамещение, к интеграторам начали приходить компании с вопросом: «Как нам дальше жить? Я только вчера узнал, что SAP уже нельзя купить – нет лицензий».

Мы начали рассматривать разные сценарии, смотреть на варианты реализации, в том числе 1С:Fresh, и в итоге собрали небольшой список – топ-5 проблем, с которыми сталкиваемся при попытке переезда.

 

Технические ограничения и анализ узких мест

 

 

Первые два пункта нас отсекают сразу. 50 000 сотрудников – это достаточно крупная компания, расчет ЗП в одной базе для ЗУП у такого заказчика – серьезный вызов. Но для нас это достаточно типичный кейс.

Если вы занимаетесь расчетом зарплаты и пробовали считать большие организации, вы наверняка сталкивались с проблемой количества строк в документе начисления зарплаты. 10 000 сотрудников, по 10 начислений на каждого – и вы уже упираетесь в предел по количеству записей в 99 999. Насколько я знаю, проблема решена в 27-й платформе, но это только одна из сложностей, которая возникает при решении задачи.

В итоге мы уперлись в ключевую вещь: чтобы посчитать зарплату, нужно время. Когда это час-два – нормально, можно сходить попить чай, пообедать. Когда это сутки – это уже проблема.

 

 

Чтобы решить проблему, нужно понять ее причину. Мы взяли документ начисления зарплаты и вообще все документы в этой цепочке. Самый характерный пример – именно он.

Время выполнения разложилось следующим образом. Три операции – заполнение, запись и, самое главное, открытые формы и их оповещения – на это уходит 80% времени. Теперь проблема стала понятна – осталось ее решить.

 

Поиск решений и архитектура системы

 

 

Наша команда начала искать гипотезы: выдвигать свои, смотреть, что публикуют коллеги, в том числе на «Инфостарте». В таблице приведен только короткий список – там были даже довольно безумные варианты: например, считать зарплату ежедневно, складывать результаты, потом их сравнивать. В общем, вариантов было много.

Нижние три идеи мы пока отмели – не используем, но окончательно не забыли. Есть ощущение, что индексация может дать хороший прирост при формировании отчетности. Например, при расчете 6-НДФЛ на большой объем данных. Потому что многопоточность для одного отчета, скорее всего, не получится применить.

В итоге в топ-3 у нас вышли три концепции: многопоточность (параллельный расчет), дробление документов и ручные блокировки.

Параллельный расчет требует блокировок, потому что процессы идут одновременно в нескольких направлениях. Дробление документов – это разделение данных по объектам. Каждая идея давала небольшой прирост, но вместе, по нашим оценкам, они должны были дать двукратное или трехкратное ускорение.

 

 

Но при дроблении возникает проблема: у нас десятки тысяч сотрудников, есть RLS по физлицам, несколько организаций, различные модели разграничения доступа. И повесить на расчетчика задачу вручную делить все это на части – это слишком жестоко. Мы на это идти не готовы.

Поэтому стало понятно, что нужна промежуточная прослойка. Так появилась идея автоматизированного рабочего места.

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

Таким образом мы запускаем параллельный расчет, минимизируем количество блокировок и получаем тот результат, на который рассчитывали.

 

Организационные изменения и логика работы АРМ

 

 

Что здесь важно? Важно понимать: если вы переходите на управление операциями расчета зарплаты с помощью АРМ, вы фактически организационно меняете процесс у заказчика.

Теперь пользователь заходит, задает сценарий, нажимает кнопку – и все. И это уже не просто технологическое изменение, а, скорее, организационное. Заказчик должен принять, что в одном месте он запускает процесс, а в другом – получает результат. То есть запуск отчетов и открытие документов – это уже не одно и то же.

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

 

 

Вот так выглядит стандартный вариант поставки. Почему «стандартный»? Потому что у каждого заказчика обязательно появятся свои пожелания: дополнительные расчеты, запуск интеграций – что угодно. Здесь показан максимально лаконичный вариант.

Наверху – отбор. Здесь же пользователь получает информацию о том, какие настройки используются. Почему именно информационно? Потому что этим пользуется расчетчик, и объяснять ему, как настраивать количество потоков, не требуется. Настройки вынесены в отдельный регистр: администратор может задать их один раз или менять при необходимости. В итоге расчетчик просто контролирует результат.

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

Задача пользователя – пройтись по переключателям и задать нужный сценарий. Например, можно запустить только перерасчет среднего – поставить один переключатель, нажать «сформировать» и на этом остановиться. А можно запустить все сразу. Это уже зависит от задачи пользователя.

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

То же самое с резервами: если нужно сформировать резерв на премию – просто выбираем соответствующую опцию.

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

Теперь о том, что мы сознательно не стали делать. Частый запрос от расчетчиков: «Давайте добавим сюда отчеты». Мы это рассматривали несколько раз и каждый раз приходили к одному выводу.

У вас уже есть набор отчетов – типовых или нетиповых – которые формируются средствами платформы. Максимум, что можно сделать, – либо дублировать их внутри АРМ, что не нужно, либо просто вызывать их оттуда. Выигрыш – несколько секунд, а сложность настройки и поддержки возрастает. Поэтому мы решили, что это избыточно. Возможно, когда-нибудь пересмотрим это решение, но пока оставили так.

Что осталось? Остался лог. Мы берем данные из журнала регистрации: какие документы созданы, сколько времени это заняло, какие были ошибки.

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

 

Результаты синтетического тестирования

 

 

Это был наш первый большой подход – синтетический тест с достаточно однотипными сотрудниками. Главная задача была проверить, что схема в принципе работает.

Почему несколько вариантов запуска – 40, 80 и 120 потоков? Нам нужно было понять зависимость от использования процессорных мощностей: как влияет количество потоков, как это связано с количеством ядер и, самое главное, можно ли параллельно работать пользователям во время выполнения расчета.

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

 

 

Что получили в итоге. Синяя линия – это один поток, классический расчет типовой конфигурации 1С, коробочное решение. Результат, который мы получили, честно говоря, мы не ожидали. Мы рассчитывали на прирост в два-три раза.

Самое сильное удивление вызвала последняя строка – резервы по оплате труда. 200 000 сотрудников, метод МСФО – в однопоточном режиме расчет занял 44 часа. Когда запустили в многопоточном режиме – 65 минут. Разница получилась примерно в 30 раз.

 

 

Вот сводная таблица по всем трем вариантам запуска. Здесь важно обратить внимание на следующее. Да, увеличение количества потоков снижает время выполнения операций. Но если внимательно посмотреть, разница, например, по начислению зарплаты за первую половину месяца между 40 и 120 потоками – это секунды. В одном случае экономия – полминуты, в другом – несколько секунд. Это уже погрешность.

При этом использование максимального количества потоков просто парализует работу пользователей. Поэтому важно найти баланс. Для нас золотой серединой оказалось двукратное превышение количества ядер. Хотя дальше покажу, что иногда мы используем и меньше.

Теперь по операциям. Как уже говорил, резервы – это колоссальная нагрузка: 44 часа против примерно 65 минут. Почему так? Потому что при расчете резервов методом МСФО для каждого сотрудника определяется остаток дней отпуска и рассчитывается средний заработок. Программа просто берет 200 000 человек и последовательно обрабатывает каждого. Аналогичная ситуация возникает, например, при перерасчете среднего после годовой премии. Это тяжелые, ресурсоемкие операции – и именно на них многопоточность дает максимальный эффект.

С начислением зарплаты за первую половину месяца и за весь месяц ситуация проще, но и там выигрыш значительный: 10 часов против 30 минут – это уже ощутимо.

А вот отражение зарплаты в бухгалтерском учете ускоряется не так сильно. Потому что документ ничего не рассчитывает – он просто заполняется и сохраняется. Да, ускорение есть, но оно минимальное.

По итогам синтетического теста мы сделали главный вывод: схема работает, и работает хорошо. Мы определили для себя оптимальное количество потоков – примерно в два раза больше числа ядер.

 

Внедрение на реальном проекте: кейс ритейлера

 

Дальше оставался следующий шаг – проверить все это на реальных данных.

Мы понимаем, что синтетические тесты – это однотипные данные: сотрудник №1, сотрудник №2, сотрудник №25. У них нет истории, нет «мусора», нет регистра перерасчетов. И всегда возникает вопрос: а вдруг нам просто повезло? Может быть, мы так построили тест, чтобы получить красивые цифры?

Ответ на этот вопрос может дать только реальный коммерческий проект. Название заказчика по его просьбе мы не раскрываем – поэтому просто «ритейл».

Это реальный проект, который завершился примерно месяц назад. Мы работали совместно с другими командами, а наша задача была провести нагрузочное тестирование, доработать АРМ под требования заказчика и показать результат.

 

 

Что было на входе. Я, честно говоря, сначала не очень поверил: спрашиваю, сколько сотрудников – говорят, около 80 000. Думаю, нормально. И тут добавляют: еще 350 000 договорников.

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

По аппаратной части мы дали рекомендации, заказчик сказал: «Хорошо, возьмем в два раза больше». Взяли.

При тестировании заказчик отдельно попросил сохранить возможность нормальной параллельной работы пользователей. Поэтому количество потоков мы ограничили – не более двукратного превышения числа ядер. В итоге оставили 80 потоков, несмотря на рост ресурсов.

 

 

Теперь по операциям. Появилась новая – начисление по договорам. По просьбе заказчика мы разделили штатных сотрудников и договорников.

И здесь интересный момент: начисление по договорам в исходном варианте считалось почти сутки – 23,5 часа. Честно скажу, до конца не понимаю, почему так долго. Но факт остается: после оптимизации – 35 минут.

 

 

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

 

 

Если посмотреть сводную таблицу, последняя колонка – это процент прироста. Начисление по договорам ускорилось почти в 40 раз. Резервы – в 25 раз. Выплаты – примерно в 13 раз. Остальные операции – от 6 до 8 раз. Отражение зарплаты в бухгалтерском учете – чуть меньше, чем в 2 раза.

В итоге: было почти 13 часов расчета в обычном режиме – стало меньше 6 часов. И это уже можно запускать как регламентное задание в рамках решения.

Появился и дополнительный эффект, на который мы изначально не рассчитывали. 350 000 договорников и 87 000 штатных сотрудников оказались распределены по разным документам. Вы знаете, что если нужно изменить начисление у одного сотрудника и нажать «Провести», перепроводится весь документ. И перепровести документ на 1 000 человек и на 80 000 – это большая разница.

За счет дробления документов постобработка стала заметно удобнее и быстрее. Хотя, конечно, расчетчики поначалу смотрели на все это с осторожностью.

 

Итоги

 

Хочу зафиксировать несколько тезисов. Главный вопрос: можем ли мы это делать? Можем.

Самый крупный кейс, о котором я слышал, – это около полумиллиона сотрудников СБЕР. Наши тесты показывают, что такие объемы можно считать за адекватное время без разделения на отдельные базы.

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

Отдельный момент – лицензии. Проф-лицензии в 1С ограничены по количеству ядер, если не ошибаюсь – до 12. Соответственно, по потокам вы упираетесь в 36 потоков - максимум, а для нормальной работы – скорее в 24. Поэтому на больших объемах вы неизбежно приходите к корпоративным лицензиям. Впрочем, в крупных организациях это и так стандартная практика.

Еще один важный момент – организационные изменения. Люди начинают работать по-другому. Это неизбежно, к этому нужно быть готовыми.

 

 

И последний тезис, самый важный. Да, зарплату нужно считать быстро – но это вторично. В первую очередь ее нужно считать правильно. Поэтому, когда вы ускоряете расчет, обязательно следите за тем, чтобы результат совпадал с ручным расчетом и оставался корректным.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции Анализ & Управление в ИТ-проектах.

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Продуктовый подход Кейсы проектов Бесплатно (free)

Бюджет согласован, инфобез доволен, акты готовы – а пользователи получили продукт, который только усложнил им жизнь: так бывает, когда их интересы теряются за проектными процедурами. На реальных кейсах разбираем вредные советы для проектных менеджеров: как не заметить ключевых пользователей, автоматизировать не тот процесс, потратить ресурсы на «рюшечки» и обнаружить последствия только при внедрении. Показываем, что двухсекундное «улучшение» способно потребовать еще одного оператора, а цифровая регистрация – оказаться медленнее бумажного листа и давать 20% неудачных попыток. Объясняем, как представители пользователей, прототипирование, «Путь героя» и наблюдение за реальной работой помогают отделить ключевые потребности от второстепенных и сохранить ценность продукта.

03.09.2026    296    0    bithunter    0    

0

Кейсы проектов Разработчик 1С:Предприятие 8 1С 8.3 1С 8.5 1С:Управление холдингом Россия Бесплатно (free)

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

18.06.2026    1350    6    RailMen    20    

4

Коммуникации Кейсы проектов Внедрение изменений Бесплатно (free)

Не стоит забывать, что исход проекта во многом зависит от мнения пользователей. Когда сотрудники не готовы к изменениям, а важные вопросы не проговариваются вслух, возникает сопротивление и саботаж. Разберем, как к этому готовиться и как помогает «нулевой этап» – стратегическая сессия перед проектом.

29.04.2026    886    0    APishchalnikov    0    

4

Кейсы проектов Бесплатно (free)

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

13.04.2026    951    0    Pryamonosov    2    

5

Инструменты управления проектом Кейсы проектов Бесплатно (free)

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

08.04.2026    8741    0    user1998994    0    

2

Кейсы проектов Внедрение изменений Бесплатно (free)

ИТ-директора часто задаются вопросом, как заставить бизнес доверять ИТ, а не видеть в них просто статью затрат. Мой 25-летний опыт показывает: доверие рождается не из презентаций, а из умения честно говорить о деньгах, сроках и рисках. В этой статье - реальный кейс внедрения WMS, который изменил отношение к ИТ-отделу. История о том, как склад с недостачами в миллионы пришел к статистической погрешности в 3000 рублей в год и что нужно сделать, чтобы перестать быть статьей затрат и стать партнером для бизнеса.

13.01.2026    1234    0    GarriSoft    2    

3

Кейсы проектов 1С:Предприятие 8 1С:Управление производственным предприятием 1C:ERP Управленческий учет Бесплатно (free)

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

07.10.2025    3067    0    rush52    6    

9

Проектирование Кейсы проектов 1С:Предприятие 8 1С:ERP Управление предприятием 2 Управленческий учет Бесплатно (free)

В настоящей статье речь пойдет о реализации в 1C:ERP модели планирования, предусматривающей своевременное обеспечение производства необходимыми материалами и комплектующими в условиях длительных сроков их поставок (до полугода). Данная модель находится в стадии внедрения на предприятии, выпускающем электротехническую продукцию. Представленный материал может быть полезен всем производственным предприятиям с длинным циклом закупки материалов у поставщиков. В статье отражен реальный опыт эксперта по внедрению 1С:ERP, компании "Институт типовых решений - производство".

10.07.2025    2210    0    itrp    0    

2