Оптимизация работы 1С:УТ 11 при большом потоке заказов
Когда компания вырастает до 1000+ заказов в сутки с нескольких маркетплейсов и сайта, стандартная 1С:Управление торговлей 11 начинает «задыхаться». Документы проводятся по минуте, возникают конфликты блокировок между менеджерами и обменами. Разбираем, как это исправить.
Почему 1С:УТ 11 перестает справляться?
Конфигурация 1С:УТ 11 — мощный инструмент, но она спроектирована универсальной. При высоких нагрузках (особенно при интеграции с Ozon, Wildberries и сайтом) база начинает тормозить из-за следующих архитектурных "узких мест":
- Синхронные процедуры при проведении: Система пытается мгновенно списать остатки, зарезервировать товар и сделать расчеты партионного учета прямо в момент, когда 100 заказов загружаются по API.
- Конфликты блокировок таблиц: Один менеджер открыл подбор номенклатуры, фоновый обмен с сайтом пытается обновить цены, а модуль маркетплейса списывает резервы. Итог: «Конфликт блокировки при выполнении транзакции».
- Избыточный контроль свободных остатков: Выключенный контроль остатков решает проблему скорости, но создает пересорт. А включенный — сильно тормозит базу из-за сложных алгоритмов УТ 11.
🛠️ Первые шаги: настройка логики 1С:УТ 11 (Без программирования)
Многое можно ускорить штатными средствами в настройках конфигурации:
Убедитесь, что выгрузка прайс-листа на сайт, парсинг заказов с маркетплейсов и загрузка товаров не пересекаются по расписанию. Настройте "Смещение" (offset) в расписании регламентных заданий на несколько минут друг от друга.
Зайдите в НСИ и Администрирование → Финансовый результат и контроллинг. Убедитесь, что расчет себестоимости и формирование движений по партиям выполняется строго в фоновом режиме (через отложенное проведение) или один раз ночью, а не при каждом проведении Реализации.
💻 Техническая оптимизация (На уровне кода и SQL)
Если штатные настройки исчерпали потенциал, пора подключать разработчиков:
1. Управляемые блокировки вместо автоматических
При высоконагруженной торговле автоматические блокировки таблиц на уровне СУБД (SQL) неизбежно приводят к зависаниям (когда блокируется вся таблица товаров). Необходимо перевести узкие места кода, например, ваши нестандартные интеграционные модули, на Управляемые блокировки. Тогда система будет блокировать запись только по конкретному складу и конкретной номенклатуре, а не всю таблицу целиком.
2. Рефакторинг модуля интеграции с маркетплейсами
Коробочные плагины или дешевые обработки обмена с WB/Ozon часто написаны оптимально для 100 заказов в день. Для 5000+ заказов в день архитектуру пишут иначе:
- Пакетное (Bulk) чтение и запись: Запросы в 1С формируются не в цикле для каждого заказа, а создают документы разом (в транзакциях по 50-100 штук).
- Отказ от лишних проверок: Если алгоритм 100% знает, что пришел новый клиент, он не должен миллион раз вызывать поиск контрагента по ИНН. Используются кэшированные таблицы в оперативной памяти.
3. Разделение РУ и БУ (Если УТ используется с модулем фин.учета)
Чем больше регистров двигает один документ «Заказ клиента», тем медленнее он проводится. Если у вас множество самописных подписок на события (или расширений), которые при проведении заказа сразу пытаются отправить SMS, обновить статус на сайте и сгенерировать сложную логистическую накладную, выполнение займет 10 секунд. Эту логику нужно выносить в фоновые задания через регистр сведений "Очередь событий".
Проблема с производительностью УТ 11?
Я умею ускорять 1С в высоконагруженных e-commerce проектах. Найду "бутылочное горлышко", перепишу долгие запросы и настрою блокировки, чтобы ваши менеджеры не ждали проведения заказа по минуте.
Получить консультацию →