Кейс компании WeJET по клиенту Как мы ускорили работу 1С:ERP в 6 раз без масштабной переработки архитектуры для ПАО «Кислородмонтаж»
Оптимизация 1С:ERP
О клиенте ПАО «Кислородмонтаж»
Проект в цифрах
Ключевые характеристики проекта
Отрасль
Промышленное строительство
Стек
- 1С:ERP Управление предприятием 2.5;
- 1С:Документооборот;
- MS SQL Server;
- БСП;
- фоновые задания 1С;
- расширения конфигурации;
- Монитор производительности 1С;
- технологический журнал
- Perfexpert;
- PowerShell-скрипты обслуживания SQL.
Статус
Промышленная эксплуатация. ПАО «Кислородмонтаж» провело масштабную оптимизацию производительности учетной системы на базе 1С:ERP без полной переработки бизнес-логики и дорогостоящего масштабирования инфраструктуры. Основной фокус проекта — устранение блокировок, ускорение массовых операций и стабилизация работы пользователей в пиковые периоды. В результате время выполнения критичных операций сократилось в 4–6 раз, количество пользовательских инцидентов снизилось более чем на 70%, а закрытие банковского дня и проведение строительных документов перестали останавливать работу системы.
Процессы 1С:ERP
В 1С:ERP были автоматизированы ключевые процессы компании:
- учет подрядной деятельности;
- формирование КС-2 и КС-3;
- казначейство и банковские операции;
- закупки и согласование заявок;
- складской учет;
- резервирование материалов;
- продажи и реализация услуг;
- управленческий учет и бюджетирование.
Система обслуживала более 200 активных пользователей одновременно.
Архитектура решенияЕдиный контур 1С:ERP и корпоративных сервисов
Предпосылки проекта
Деградация производительности 1С:ERP
После масштабного роста объемов строительства и увеличения количества объектов компания столкнулась с деградацией производительности 1С.
Проблемы особенно проявлялись в пиковые периоды:
- утром — массовая загрузка банковских выписок;
- днем — проведение КС-2/КС-3 и закупочных документов;
- вечером — резервирование материалов и закрытие складских операций.
В отдельные часы система практически переставала отвечать:
- документы проводились по 3–7 минут;
- пользователи получали ошибки таймаута;
- блокировались рабочие места бухгалтерии и ПТО;
- массовые операции могли выполняться часами;
- закрытие месяца регулярно переносилось.
Основные проблемы
Казначейство и банковские операции
Загрузка банковских выписок объемом 30-50 МБ занимала до 5 часов.
При параллельной обработке:
- возникали блокировки регистров;
- создавались дубли платежных документов;
- фоновые задания перегружали кластер 1С.
Проведение КС-2 и КС-3
Во время массового формирования актов выполненных работ:
- несколько пользователей одновременно проводили документы;
- происходила конкуренция за движения по одним и тем же регистрам;
- система формировала длинные очереди ожидания SQL-блокировок.
В часы пик проведение одного комплекта документов могло занимать до 10 минут.
Складской учет и резервирование
Параллельное резервирование материалов по строительным объектам приводило к конфликтам за остатки:
- пользователи повторно запускали операции;
- возрастало количество незавершенных транзакций;
- увеличивалась нагрузка на SQL Server.
Закупки и согласование заявок
Согласование заявок на закупку запускало цепочки бизнес-процессов одновременно по нескольким подразделениям.
Из-за большого количества фоновых задач:
- резко возрастала нагрузка на сервер 1С;
- интерфейс пользователей начинал зависать;
- формирование отчетов замедлялось в разы.
Обследование и диагностика
Команда проекта
Для поиска узких мест была сформирована рабочая группа.
Со стороны подрядчика:
- руководитель проекта;
- архитектор 1С;
- 2 senior-разработчика 1С;
- DBA MS SQL;
- DevOps-инженер.
Со стороны заказчика:
- ИТ-директор;
- руководитель финансового блока;
- руководитель ПТО;
- ключевые пользователи бухгалтерии и склада.
Как проводилось обследование
Диагностика выполнялась в несколько этапов.
Используемые инструменты
- технологический журнал 1С;
- замеры производительности;
- SQL Profiler;
- ЦУП;
- Монитор производительности 1С;
- анализ блокировок SQL Server;
- мониторинг фоновых заданий;
- нагрузочный анализ кластера 1С.
Похожая задача стоит и перед вашей компанией?
Расскажите о проекте — предложим решение, опираясь на наш опыт и реализованные кейсы
Комплексное обследование системыАнализ производительности и поиск узких мест
Что удалось выявить
Ключевые причины деградации производительности
Критическое количество ожиданий на блокировках
Большинство проблем было связано не с «тяжелыми» запросами, а с параллельной записью данных:
- регистры накопления;
- движения по остаткам;
- взаиморасчеты;
- казначейские регистры.
Многопоточность ухудшала ситуацию
Часть операций уже была реализована в фоне, однако при росте нагрузки это приводило к обратному эффекту:
- фоновые задания начинали конкурировать между собой;
- происходило каскадное создание новых задач;
SQL Server уходил в ожидания LCK_M_X и PAGEIOLATCH.
Повторяющиеся обращения к данным
В типовых механизмах:
- многократно запрашивались одинаковые настройки;
- повторно вычислялись одинаковые данные;
- происходили одинаковые обращения к справочникам и константам.
Итоги технического анализаОпределили критические ограничения системы
Варианты решения
Выбор оптимальной стратегии оптимизации
На этапе проектирования обсуждалось несколько подходов.
Вариант 1. Масштабирование инфраструктуры
Предполагалось:
- увеличить CPU SQL Server;
- расширить RAM;
- вынести фоновые задания на отдельный сервер.
Недостатки
- высокая стоимость;
- отсутствие гарантированного эффекта;
- риск повторения проблемы через несколько месяцев.
Вариант 2. Полная оптимизация кода и запросов
Предполагалось:
- глубокое переписывание механизмов проведения;
- переработка транзакций;
- оптимизация SQL-запросов.
Недостатки
- длительные сроки;
- высокий риск ошибок;
- невозможность быстро получить эффект.
Вариант 3. Управление потоками и отложенная обработка
Команда выбрала комбинированный подход:
- убрать критичные операции из пользовательских сеансов;
- сократить параллелизм;
- перевести тяжелые процессы в управляемые очереди;
- стабилизировать фоновые операции.
Именно этот вариант стал основой проекта.
Реализация
Кейс №1. Отложенное проведение КС-2 и КС-3
Ранее пользователи одновременно проводили десятки актов
Теперь:
- документ переводится в статус «К проведению»;
- запись ставится в очередь;
- отдельное фоновое задание проводит документы последовательно.
Результат
- количество блокировок снизилось более чем на 80%;
- среднее время проведения сократилось с 7 минут до 50 секунд;
- пользователи перестали получать таймауты.
Кейс №2. Очередь резервирования материалов
Для складских операций внедрили единый диспетчер резервирования
Теперь:
- пользователь только инициирует операцию;
- резервирование выполняется отдельным обработчиком;
- операции идут последовательно по объектам строительства.
Результат
- исчезли взаимные блокировки;
- склад перестал «зависать» в часы пик;
- количество повторных операций сократилось в 5 раз.
Кейс №3. Многопоточная загрузка банковских выписок
Была переработана типовая обработка обмена с банком
Что изменили:
- кешировали часто используемые данные;
- вынесли повторные обращения к БД;
- внедрили контролируемую многопоточность через собственный менеджер потоков;
- ограничили максимальное количество параллельных задач.
Сложности
На этапе тестирования обнаружилось:
- неконтролируемое создание фоновых заданий;
- дублирование документов;
- деградация производительности SQL Server.
Для решения:
- ввели диспетчер потоков;
- реализовали контроль очередей;
- ограничили количество активных задач;
- добавили механизм повторной обработки ошибок.
Результат
- загрузка банковской выписки сократилась с 5 часов до 35 минут;
- исчезли дубли платежных документов;
- нагрузка на SQL стабилизировалась.
Кейс №4. Оптимизация закупочных процессов
Во время согласования заявок система формировала десятки связанных запросов.
Что сделали:
- добавили индексацию временных таблиц;
- убрали повторные вычисления;
- переработали цикл формирования маршрутов согласования;
- внедрили пакетную обработку уведомлений.
Результат
- время согласования сократилось в 3 раза;
- интерфейс перестал зависать;
- нагрузка на сервер приложений снизилась на 40%.
Профессиональная
оценка проекта
- Интервью с ключевыми сотрудниками
- Составление карты бизнес-процессов «как есть»
- Диагностику текущих бизнес-процессов и ИТ систем
- Составление карты бизнес-процессов «как должно быть»
Получите бесплатную оценку от нашего эксперта
Комплексная оптимизацияВнедрение изменений без остановки работы предприятия
С какими сложностями столкнулись
Проект оказался нетривиальным по нескольким причинам
Проблемы проявлялись только под реальной нагрузкой. На тестовых стендах часть сценариев не воспроизводилась.
Высокая нагрузка на продуктиве
Проблемы проявлялись только под реальной нагрузкой. На тестовых стендах часть сценариев не воспроизводилась.
Большое количество интеграций
Система была связана с:
- клиент-банком;
- ЭДО;
- BI-системой;
- внутренними порталами;
- строительными системами учета.
Любые изменения требовали дополнительного тестирования.
Ограниченное окно внедрения
Большинство изменений внедрялось:
- ночью;
- в выходные;
- между закрытиями периодов.
Итоги проекта
Управление потоками оказалось эффективнее масштабирования инфраструктуры
Производительность
- проведение КС-2/КС-3 ускорилось в 6 раз;
- загрузка банковских выписок — в 8 раз;
- резервирование материалов — в 5 раз;
- согласование закупок — в 3 раза.
Эффект для бизнеса
Снижение простоев
Пользователи перестали ждать завершения массовых операций.
Стабилизация работы системы
Даже в пиковые часы:
- система сохраняла отзывчивость;
- отчеты формировались без зависаний;
- фоновые задания работали предсказуемо.
Сокращение количества инцидентов
Количество обращений в ИТ-поддержку снизилось более чем на 70%.
Что в итоге оказалось главным
Ключевой вывод проекта — далеко не всегда проблемы производительности требуют полной переработки системы или масштабной оптимизации SQL.
Во многих случаях основной причиной деградации становятся:
- неконтролируемая многопоточность;
- параллельная запись одних и тех же данных;
- перегруженные пользовательские транзакции.
В ПАО «Кислородмонтаж» основной эффект дала не глубокая переработка архитектуры, а:
- грамотное управление потоками;
- отложенная обработка;
- сокращение конкуренции за ресурсы;
- перенос тяжелых операций в фон.
Остались
вопросы?
Погрузимся в вашу задачу, подберем формат работы и сделаем расчет стоимости.