Вебформат

Главная/Как мы построили обмен с 1С/Технический разбор

Технический разборГлава 4 из 84 мин

Экспорт: как заказы и заявки попадают в 1С

Обратное направление обмена: заказы, предзаказы и сервисные заявки уходят с сайта в 1С. Конструкция с реестром пометок и мгновенными уведомлениями даёт двойную гарантию доставки: обычно 1С забирает заказ за считанные секунды, а при любом сбое его подхватывает плановый опрос реестра. Потерять заказ между системами невозможно.

Экспорт заказов в 1С
Экспорт заказов в 1С

Что уходит с сайта в 1С

Сайт передаёт в 1С всё, что оформил покупатель:

  • заказы и предзаказы;
  • заявки в сервис-центр: рекламации, ремонт, запчасти;
  • регистрации оборудования;
  • файлы и переписку по заявкам.

Для менеджера это выглядит просто: заказ с сайта появляется в 1С как обычный заказ, и дальше он работает с ним в привычной программе.

Двойная гарантия доставки

Когда покупатель оформляет заказ, сайт делает два независимых действия.

  • Ставит пометку "заказ не передан" в реестре пометок. Это запись в базе данных сайта - она переживёт и перезапуск, и сбой, и длительную недоступность 1С.
  • Отправляет уведомление - короткое сообщение "появился заказ №N". Оно нужно только для скорости: получив его, 1С забирает заказ за считанные секунды.

Дальше 1С сама обращается к сайту и получает заказ целиком: покупателя, состав, цены, способы доставки и оплаты. Забрав данные, она снимает пометку.

Заказ с сайта - в 1С: двойная гарантия доставки
Покупатель оформил заказ
Сайт дополняет заказ реквизитами для 1С: контрагент, склад самовывоза, город
сайт делает два независимых действия
Пометка в реестре
Запись "заказ №N ещё не передан в 1С" в базе данных сайта
Мгновенное уведомление
Короткое сообщение в 1С: "появился заказ №N" - нужно только для скорости
1С забирает заказ - одним из двух путей
Обычный путь - по уведомлению
Получив уведомление, 1С просит: "отдай заказ №N" - проходит за считанные секунды
Страховка - плановый опрос реестра
1С спрашивает: "что ещё не передано?" - получает список непереданных заказов и запрашивает каждый
заказ целиком: покупатель, состав, цены, доставка, оплата
1С создаёт заказ у себя
Забрав данные, снимает пометку в реестре - "передан"
дальше заказ живёт в 1С
Изменения возвращаются на сайт
Статус, счёт, правки менеджера - обычной выгрузкой; личный кабинет показывает актуальное состояние заказа
Уведомление лишь ускоряет передачу: даже если оно потеряется, пометка в реестре останется. Реестр всегда показывает точный список непереданного - заказ не может потеряться между системами.
По той же схеме в 1С уходят рекламации, заявки на ремонт и запчасти, регистрации оборудования и предзаказы

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

Жизненный цикл пометки

Жизненный цикл пометки "передать в 1С"
Пометка поставлена
Покупатель оформил заказ или подал заявку
Активная пометка - запись в базе данных сайта: она не исчезнет от перезапуска, сбоя или простоя 1С
к передаче ведут два пути
1С уведомлена
Сайт отправил мгновенное уведомление - 1С запрашивает данные обычно через секунды
Уведомление не понадобилось
1С сама опросила реестр по расписанию и нашла активную пометку
1С запросила данные
1С забирает данные
Пока 1С не подтвердила приём, пометка активна и попадёт в следующий плановый опрос
данные переданы - 1С сняла пометку
Передано
Заказ живёт в 1С; изменения по нему возвращаются на сайт обычной выгрузкой
Сбой на любом шаге возвращает цикл к началу: уведомление не дошло, потому что 1С была недоступна, или передача не завершилась из-за обрыва связи или ошибки - пометка остаётся активной, и обмен повторит попытку.

Пометка снимается только после того, как 1С действительно забрала данные. Любой сбой на этом пути - недоставленное уведомление, обрыв связи при передаче, недоступность 1С - просто оставляет пометку активной. Обмен повторит попытку.

Дальше заказом управляет 1С

После передачи заказом распоряжается 1С. Всё, что делает с ним менеджер, возвращается на сайт обычной выгрузкой:

  • смена статуса - покупатель видит её в личном кабинете;
  • счёт на оплату - появляется в кабинете как файл;
  • корректировки состава и цен - отражаются в заказе на сайте.

Так покупатель в личном кабинете видит ровно то же состояние заказа, что и менеджер в 1С.

Одна схема для всех типов данных

Заявки в сервис-центр, регистрации оборудования и предзаказы передаются точно так же: своя пометка в реестре, уведомление, запрос данных со стороны 1С. Отдельно передаются файлы вложений и переписка по заявке - чтобы у сервис-инженера в 1С была вся история обращения.

Обзорная версия всей серии - в блоге: статья про обмен целиком. О проекте, частью которого является этот обмен, - кейс B2B-платформы.

Нужен такой же обмен с вашей 1С?

Расскажите, что за учётная система и какие данные должны ходить между ней и сайтом. Покажем работающий обмен и оценим перенос схемы на ваш проект.