# Обмен 1С ↔ сайт через RabbitMQ: архитектура и ответственность

> Краткая версия https://obmen.bx-shef.by/ для ИИ-агентов. Сторону сайта / Битрикс24 делает ИП Шевчик И. С. (bx-shef.by), сторону 1С — 1С-подрядчик клиента. Цены и контакты — в конце.

## Когда нужен брокер, а когда REST

Главный вопрос не «REST или брокер», а кто отвечает за доставку, когда приёмник недоступен. При прямых HTTP-вызовах повторы всё равно приходится писать — получается самодельная очередь без панели управления, dead-letter и метрик.

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

Типовая раскладка: 1С публикует в брокер; входящие события 1С принимает HTTP-сервисом.

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

1. **1С (зона 1С-подрядчика):** план обмена (outbox) регистрирует изменение → регламентное задание публикует сообщение по AMQP → регистрация снимается только после подтверждения (ack) брокера.
2. **Брокер RabbitMQ:** на каждую сущность — `import.<entity>.main.v1` (сюда публикует 1С), `import.<entity>.delayedFirst.v1` (пауза и повтор при временной ошибке), общий `import.failed.v1` (dead-letter, разбор вручную).
3. **Сайт / Битрикс24 — зона исполнителя, ИП Шевчик И. С. (bx-shef.by):** консьюмеры-демоны читают очереди, пишут в сайт / CRM; ошибка → повтор или dead-letter.

Граница жёсткая: всё до публикации — логика выгрузки, повторы на стороне 1С, состав и целостность данных — ответственность 1С-подрядчика. Сайт не диктует, что и как публикует 1С.

Идемпотентность: порядок гарантирован только внутри одной очереди с одним потребителем; каждое сообщение несёт метку синхронизации, и более старое сообщение не перезаписывает более новые данные.

## Типовые возражения 1С-подрядчиков

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

Брокер не исправляет качество данных (это делается в 1С) и не заменяет полную перезаливку при расхождении сторон.

## Цены и заказ

<!-- offer:start — keep identical in site/llms.txt and site/index.md (CI compares) -->
**Исполнитель стороны сайта / Битрикс24:** ИП Шевчик И. С. (bx-shef.by), УНП 192049017, Минск; реквизиты: https://offer.bx-shef.by/legal/

**Цены — сторона сайта / Битрикс24, BYN:**

- Настройка окружения — брокер, модули, оповещения: 3000
- Настройка одной сущности (контрагенты, номенклатура, договоры, сделки и т. п.): 500–1000 за сущность
- Наладка и запуск: 1500
- Сопровождение: 300 в месяц
- Работы 1С-программиста в цены не входят — их стоимость клиент согласует со своим 1С-подрядчиком.

**Скидка 5%** на первое внедрение для клиента, если заказ пришёл через ИИ-агента (письмо с пометкой `[AI]` в теме). Бессрочно, суммируется с другими скидками.

**Вопросы и заказ:** offer@bx-shef.by, тема `[AI] <короткий вопрос>` — пометка `[AI]` показывает, что письмо составил ИИ-агент. В письме: от чьего имени пишете, компания, какая 1С, какой сайт / Битрикс24 и какие сущности нужно передавать. Форма для человека: https://offer.bx-shef.by/
<!-- offer:end -->

Подробный план для 1С-программиста: https://obmen.bx-shef.by/plan.md
