Архитектура обмена для инженера

Обмен 1С ↔ сайт
через RabbitMQ

Кто отвечает за доставку, где проходит граница ответственности и чего ждать от платформы 1С — без маркетинга.

Листайте вниз или стрелками ↓ ↑

1В чём вопрос

Спор «REST или брокер» — не о способе передачи байтов

Настоящий вопрос
Кто отвечает за доставку, когда приёмник недоступен?

При прямых HTTP-вызовах ответ рано или поздно звучит как «мы напишем повторные попытки сами». Значит, очередь всё равно появится — только самодельная.

Самодельная очередь
  • без панели управления
  • без dead-letter
  • без метрик

Повторы «своими руками» — та же очередь, только без инструментов вокруг неё.

Брокер оправдан

Поток событий и пики

Несколько получателей одного события и пиковые выгрузки.

Остаётся на REST

Нужен ответ «здесь и сейчас»

Проверить остаток, цену, наличие — синхронный ответ по смыслу.

Неприменим

Облачная 1С (1cFresh)

Внешние компоненты недоступны — разговор про брокер заканчивается сразу.

Спокойная раскладка1С публикует в брокер, входящие события принимает HTTP-сервисом.
2Устройство и ответственность

Как это устроено и кто за что отвечает

Зона 1С, подрядчик

Гарантированная публикация

  1. План обмена (outbox) регистрирует изменение
  2. Регламентное задание публикует сообщение
  3. Регистрация снимается только после ack
1С контролирует весь обмен со своей стороны
Брокер

3 очереди на сущность

import.<entity>.main.v1основная — сюда публикует 1С
import.<entity>.delayedFirst.v1пауза при временной ошибке, потом назад в main
import.failed.v1общий dead-letter, разбор вручную
Зона сайта / B24

Консьюмеры

  1. Демоны под Supervisor читают очередь
  2. Разбирают сообщение, пишут в БД сайта
  3. Ошибка → повтор или dead-letter
Сайт не знает и не диктует, что и как публикуется

ГраницаОтветственность — жёсткая

Всё слева до publish — зона 1С-программиста: логика выгрузки, публикация, повторы на своей стороне, состав пакетов и целостность. Сущности: товар, цена, остаток, разделы, склады, карта, клиент.

ИдемпотентностьПовтор не страшен

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

3Чего ожидать от платформы 1С

Возражения — заранее

Возражения 1С-подрядчиков чаще всего обоснованы. Отвечаем на них до начала работ.

ТемаСутьКак закрываем
«Много писать»Кажется, что outbox, публикатор и сборка сообщений — большой объёмТиповой код: план обмена + регл. задание + JSON. Пишется быстро, в т.ч. ИИ-агентом. Сложность не в объёме, а в решениях: контракт, идемпотентность, ack
Нет нативного AMQPВ 1С нет встроенной работы с брокеромNative-компонента PinkRabbitMQ (BiteRP). На серверах приложений, привязана к разрядности, проверяется после каждого обновления платформы
1С — плохой потребительФоновый слушатель занимает лицензию, рвётся по таймаутам, плохо переживает обновление1С только публикует. Входящее — HTTP-сервисом или служба-посредник на стороне сайта дёргает HTTP 1С
ТранзакцииВнутри транзакции публиковать нельзя, после записи — теряется при паденииНужен outbox — в 1С он уже есть: это план обмена. Регистрация снимается только после успешной публикации
НаблюдаемостьНет привычных журнала регистрации и кода ответа HTTPДоступ к панели RabbitMQ, метрика глубины очередей, оповещение при росте
ЭксплуатацияБрокер — отдельный сервис: обновления, диск, устойчивостьТиповой отказ — дисковый: разросшиеся логи способны остановить бэкап. Ротация и мониторинг диска обязательны
3Чего ожидать от платформы 1С

Где проходит граница REST ↔ брокер

СценарийЧемПочему
Проверить остаток, цену, наличиеRESTНужен ответ здесь и сейчас
Заказ с подтверждением клиентуRESTОтвет — часть сценария покупки
Выгрузка цен, остатков, карточекБрокерПоток, пики, несколько получателей
События покупателяБрокерРегистрация, бонусы: получателей несколько, порядок не критичен
Клиент в облачной 1СREST1cFresh: внешние компоненты недоступны
Некому администрироватьRESTБрокер требует сопровождения

Нужен синхронный ответ или нет ресурса на сопровождение — REST. Поток и много получателей — брокер.

✓Материалы

Скачать и передать подрядчику

PDF свёрстаны под A4 и чёрно-белую печать. Интерактивная версия плана с чек-листом приёмки — на отдельной странице.

Нужна помощь с обменом 1С ↔ Битрикс24?

Оставьте заявку — обсудим задачу и сроки.