Заказ звонка
+7 (812) 467-34-77
При создании B2B-портала для крупного дистрибьютора мы столкнулись с типичными вызовами: тысячи клиентов, персональные скидки, сложная номенклатура, десятки тысяч заказов в месяц. Штатный обмен 1С-Битрикс не справлялся с объёмами и не давал нужной гибкости. Мы разработали собственное решение —на основе портала от «Аргумент» от компании факт, построенный на принципах микросервисной архитектуры, с выделенным фронтендом, бэкендом на Битрикс и полностью кастомным REST API для синхронизации с 1С. В этой статье — ключевые технические находки, организация обменов и система контроля, которая позволяет управлять интеграцией без сюрпризов.
Главная идея: Мы не используем «чёрный ящик» готовых модулей. Спроектировали собственный API, дашборды мониторинга и конвейер обмена через очереди RabbitMQ. Всё работает предсказуемо, логируется и масштабируется горизонтально.
Портал «Аргумент» разделён на фронтенд и бэкенд. Фронтенд — одностраничное приложение (Vue.js), отдаваемое через Nginx. Бэкенд — классический Битрикс, который выступает в роли поставщика API и административного интерфейса. Такое разделение позволило:
Серверные требования — минимум 8 ядер, 32 ГБ RAM для бэкенда и 4 ядра, 8 ГБ RAM для фронтенда. Вся инфраструктура поднята на CentOS 9 Stream с использованием BitrixVM в качестве базового окружения.
Мы реализовали отдельный REST-слой, который соединяет 1С и портал. Он не привязан к штатным веб-сервисам Битрикс — это полностью наша разработка. Ключевые эндпоинты:
Все запросы логируются, поддерживаются инкрементальные обмены (только изменённые за период). Тяжёлые выгрузки (например, полного каталога) уходят в очередь через RabbitMQ — это снимает пиковую нагрузку с сервера 1С и гарантирует, что обмен не упадёт по таймауту.
Важно для стабильности: Токен доступа хранится только в переменных окружения и в 1С. Он не светится в коде клиента. Администратор выдаёт токен, а все вызовы идут с проверкой подписи.
В 1С (конфигурации УТ 11, КАА 2.4) настроены регламентные задания, которые через каждые 5-10 минут отправляют в API портала:
Обмен работает в обе стороны: заказы, созданные на портале, немедленно отправляются в 1С через POST-запрос. При ошибке (неверный артикул, недостаток остатка) API возвращает код ошибки, и заказ не уходит до исправления. Это исключает появление «битых» заказов в учётной системе.
Одна из самых ценных частей решения — дашборд обменов, интегрированный в CRM (Битрикс24). Он показывает историю каждого вызова API: статус (успех / ошибка / в процессе), время выполнения, комментарий ошибки. Группировка позволяет видеть сводку по каждому типу обмена (номенклатура, цены, заказы). Логи хранятся 7 дней и автоматически удаляются.
Для администраторов доступен центр контроля версий — таблица, где отображается текущая версия API на каждом сервере (разработка, тестирование, продакшн), номер коммита из GitHub и дата последнего деплоя. Это полностью исключает путаницу: всегда понятно, какая сборка работает на боевом контуре.
Платформа «Аргумент» не предполагает «лёгкого» механизма кастомизации. Все наши доработки (а их более 30 — от вывода короткого кода товара до переработанных прайс-листов и стикеров каталога) вынесены в отдельную директорию /ext_www/custom/. При обновлении ядра «Аргумента» (со стороны разработчика) эта папка не затрагивается, но после каждого апдейта мы вручную проверяем совместимость и при необходимости адаптируем кастомные компоненты. Процесс обновления включает:
Код фронтенда и бэкенда хранится в GitHub. Для развёртывания на новой машине достаточно:
/var/www/).npm install для фронта, композер для бэка).npm run build) и перезапустить менеджер процессов (pm2).
Все конфигурационные файлы (параметры подключения к БД, токен API, настройки RabbitMQ) вынесены в .env. Это упрощает перенос между средами и исключает «зашитые» пароли в коде.
На базе описанного решения мы запустили B2B-портал для дистрибьютора с ассортиментом более 20 000 позиций и 1 500 активными оптовыми клиентами. Портал работает 2 года без единого сбоя обмена. Время оформления заказа сократилось с 30 минут до 3-5, нагрузка на отдел продаж снизилась на 70%, а клиенты получили личные кабинеты с персональными ценами, актами сверки и историей заказов.
Подберем оптимальный вариант для Ваших задач