Зачем нужен обмен
Интернет-магазин работает с несколькими тысячами товаров, персональными ценами для разных категорий покупателей и остатками по десяткам складов. Все эти данные ведутся в 1С:ERP, и она остаётся единственным местом, где их заводят и изменяют. Сайт, в свою очередь, порождает собственные данные: заказы, заявки в сервис-центр, регистрации оборудования.
Обмен решает две задачи:
- →витрина показывает актуальные данные из 1С - цены, наличие, сроки поставки - без ручного ввода на стороне сайта;
- →всё, что оформил покупатель, попадает в 1С, где с заказом дальше работает менеджер.
Требование к такому обмену одно: он должен работать без участия человека и не терять данные, даже когда одна из систем временно недоступна.
Участники обмена
Менеджер работает только в 1С - привычная программа остаётся его рабочим местом. Покупатель работает только с сайтом. Обмен связывает эти две картины мира так, чтобы ни одна из сторон не занималась двойным вводом данных.
Как устроена система
Обмен построен на трёх составляющих, размещённых на одной площадке.
- →Сайт принимает выгрузки от 1С, хранит данные витрины и ведёт реестр пометок - перечень того, что нужно передать в 1С.
- →Зона обмена - журнал и очередь выгрузок. Здесь фиксируется каждая полученная выгрузка и её текущий статус. Отдельно хранится архив: все выгрузки за всё время работы обмена.
- →Сервис синхронизации - отдельная программа, которая разбирает очередь и обновляет данные сайта. Она же отдаёт 1С заказы и заявки по запросу.
Ключевое решение: приём и обработка разделены
1С передаёт выгрузку и сразу получает подтверждение приёма - на это уходят доли секунды. Разбор данных выполняется отдельно, своим темпом, и 1С его не ждёт.
Такое разделение даёт три эффекта:
- →1С не простаивает в ожидании, пока сайт обработает четверть миллиона строк;
- →тяжёлая обработка не мешает посетителям магазина;
- →если обработка по какой-то причине остановится, приём продолжит работать - выгрузки будут спокойно копиться в очереди.
Ключевое решение: заказы 1С забирает сама
Сайт не пытается "протолкнуть" заказ в 1С. Вместо этого он ставит пометку "передать в 1С" и отправляет короткое уведомление. За полными данными 1С обращается сама - тогда, когда готова их принять.
Уведомление лишь ускоряет обмен. Даже если оно не дойдёт, пометка останется в реестре, и 1С заберёт заказ при ближайшем плановом опросе. Потерять заказ между системами невозможно.
Обмен в цифрах
| Показатель | Значение |
|---|---|
| В промышленной эксплуатации | с октября 2025 года |
| Обработано выгрузок | более 75 000 |
| Выгрузок в сутки | около 750 |
| Обновление остатков | каждые 5 минут |
| Задержка между приёмом и обработкой | секунды |
| Записей в одной полной выгрузке цен | до 260 000 |
| Доля выгрузок с замечаниями | менее 0,2%, и каждая видна администратору |
| Типов передаваемых данных | 21 |
Обзорная версия темы одной статьёй - статья про обмен целиком. Что вошло в проект помимо обмена - в кейсе B2B-платформы.
