Обмен с 1С ломается после обновлений: как сделать его предсказуемым
Обмен с 1С — самое частое требование в техзаданиях на B2B-порталы и каталоги. И одна из самых частых жалоб: после обновления конфигурации или смены API площадки обмен встаёт, а 1С-программист и подрядчик сайта показывают друг на друга. Вот что делает обмен предсказуемым.
1. Один ответственный за обмен целиком
Поломка обычно случается на стыке: «у нас всё отправилось», «а к нам ничего не пришло». Если за стык отвечает один подрядчик — от выгрузки в 1С до записи на стороне сайта, — исчезает главный источник простоя: поиск виноватого.
2. Учёт остаётся в 1С
1С остаётся главной системой по остаткам, реализации и документам. Внешняя система не дублирует учёт, а обменивается с ним: получает то, что нужно для продаж, и отдаёт заказы. Чем меньше учётной логики снаружи, тем меньше расхождений.
3. Очередь вместо прямых вызовов
Каждое сообщение — заказ, запрос номенклатуры, документ — ставится в очередь. Если 1С недоступна или занята, ничего не теряется: сообщение дождётся своей очереди. Повторы идут с нарастающей паузой, а не долбят систему каждую секунду.
4. Повтор не создаёт дубль
Сообщение может уйти дважды: сеть оборвалась после отправки, но до подтверждения. Если у каждого заказа есть постоянный идентификатор, повторная отправка ничего не дублирует. Без этого «на всякий случай отправим ещё раз» превращается в два одинаковых заказа.
5. Порядок важен
Документ реализации не имеет смысла раньше, чем в 1С появилась номенклатура. Обмен должен соблюдать порядок «сначала справочник, потом документ», а не надеяться, что всё придёт вовремя.
6. Журнал и сверка
В журнале видно, что ушло, что вернулось и что не удалось — с причиной. Записи журнала не правятся задним числом. Раз в сутки полезна сверка: сколько заказов принято снаружи и сколько дошло до 1С. Расхождение видно поимённо, а «застрявшие» сообщения поднимают оповещение раньше, чем позвонит клиент.
7. Обновления — через тестовый контур
Перед обновлением конфигурации обмен прогоняется на копии базы. Это дешевле, чем разбирать последствия в рабочей системе в понедельник утром.
Что спросить у подрядчика
- Что будет с заказом, если 1С недоступна два часа?
- Как узнать, что обмен встал, раньше, чем позвонит клиент?
- Где посмотреть, почему конкретный заказ не дошёл?
- Кто отвечает, если сломалось на стыке?
Так устроен модуль обмена, который мы встраиваем в действующую 1С клиента: очередь с повторами, журнал и сверка расхождений. Конфигурацию и доработки на стороне 1С разбираем на старте проекта.