Переход с высокопроизводительной самописной системы на базе Delphi и SQL на платформу 1С при объемах свыше 100 000 заказов в сутки — это серьезный вызов для архитектуры любой информационной системы. В данной статье мы проанализируем, способна ли конфигурация 1С:Управление торговлей 11 или 1С:ERP выдержать такой поток данных, и разберем необходимые технические шаги для реализации подобного проекта.
Прежде всего, нам необходимо понять, что 100 000 заказов в день — это средняя нагрузка около 70 заказов в минуту, которая в пиковые часы (например, во время маркетинговых акций или вечернего наплыва покупателей) может возрастать до 500–1000 заказов в минуту. Рассмотрим основные факторы, которые будут влиять на производительность:
УТ 11 при проведении заказа выполняются тяжелые проверки остатков, расчеты графиков оплаты и резервирование. При высокой интенсивности это неизбежно приведет к транзакционным блокировкам СУБД.Проанализируем типовой функционал. Стандартная УТ 11 ориентирована на универсальность, что делает ее алгоритмы проведения «тяжелыми». Если попытаться записывать и проводить каждый заказ с сайта напрямую в 1С в режиме реального времени, система быстро столкнется с очередями ожиданий на блокировках. Таблицы РегистрНакопления.ЗапасыИПотребности и другие ключевые регистры станут «бутылочным горлышком».
Рассмотрим, какие изменения потребуются для обеспечения работоспособности системы при таких объемах.
Разберем наиболее эффективный метод работы в HighLoad-системах. Вместо того чтобы заставлять сайт ждать, пока 1С проведет документ, мы разделим процесс на два этапа:
HTTP-сервисы в максимально упрощенном виде. Документ записывается, но не проводится. Это позволяет мгновенно освободить поток веб-сервера.РегламентныеЗадания или пул фоновых процессов подхватывают записанные документы и проводят их в несколько потоков.Для управления очередью заказов рекомендуется использовать внешние шины данных, такие как RabbitMQ или Kafka. Это позволит гарантировать доставку сообщений и равномерно распределять нагрузку на сервер 1С.
Выясним, как влияют права доступа на скорость работы. В системах с миллионами записей стандартный RLS добавляет к каждому SQL-запросу огромные условия фильтрации. Для высоконагруженных систем мы рекомендуем:
1С:Предприятие 8.3.Рассмотрим ситуацию, когда 100 000 заказов — это лишь верхушка айсберга, а компании требуется еще и сложная аналитика. В этом случае правильным подходом будет разделение систем:
1С:ERP или УТ 11 выступает в роли приемника консолидированных данных. Заказы могут сливаться в учетную систему не по одному, а сводными документами за час или смену, если детальный учет каждого движения в ERP не требуется ежесекундно.Посмотрим на требования к «железу» и программному обеспечению. Для работы с базой, которая будет расти на терабайты в год, потребуются:
1С:ERP при использовании механизма In-Memory DB (Дата-акселератор) можно значительно ускорить построение отчетов по накопленным миллионам заказов, вынося нагрузку из основной базы в оперативную память.Для минимизации блокировок при проведении большого количества документов, проанализируем пример кода, который позволяет избежать избыточных движений. Вместо стандартного набора движений по всем регистрам, можно использовать условие:
// В обработке проведения документа ЗаказКлиента
Если ЭтоВысоконагруженныйПоток Тогда
// Записываем только минимально необходимые движения для склада
Движения.ЗапасыИПотребности.Записывать = Истина;
// Остальные тяжелые расчеты (себестоимость, взаиморасчеты)
// откладываем на ночной период или отдельный сервис
КонецЕсли;
Такой подход позволяет системе «дышать» в моменты пиковых нагрузок, перенося вторичные расчеты на время технологических окон.
Способна ли УТ 11 или ERP справиться с 100 000 заказов в день? Ответ: Да, но это потребует глубокой инженерной проработки. Платформа 1С версии 8.3 обладает необходимым инструментарием для HighLoad, однако стандартные конфигурации требуют серьезной «диеты» — отключения лишних функций, переработки механизмов проведения и жесткой оптимизации SQL-запросов. Если компания готова инвестировать в квалифицированную команду разработчиков и мощное серверное оборудование, переход на 1С станет фундаментом для дальнейшего развития и цифровизации бизнеса.