Любой обмен между двумя системами рано или поздно сталкивается со сбоями: сайт уходит на обслуживание, 1С закрывают на регламентные работы, обрывается связь, перезапускается сервер. Вопрос не в том, случится ли это, а в том, что произойдёт с данными.
Принцип
Обмен построен на трёх правилах:
- 01Ни один сбой не приводит к потере данных.
- 02Восстановление происходит автоматически, без участия человека.
- 03Если вмешательство всё же нужно, проблема видна администратору, а не обнаруживается по звонку клиента.
Ниже - шесть типовых сценариев и поведение обмена в каждом из них.
Сценарий 1. Сайт недоступен, 1С не может передать данные
1С считает выгрузку доставленной только после подтверждения приёма. Нет подтверждения - данные остаются в 1С, и она повторяет передачу по расписанию.
Когда сайт снова доступен, накопленные выгрузки передаются и встают в очередь. Дальше работают два механизма: устаревшие снимки не обрабатываются, а ближайшая полная выгрузка приводит сайт в точное соответствие с 1С.
Простой любой длительности не требует ручного вмешательства.
Сценарий 2. Остановлен сервис синхронизации
Приём выгрузок выполняет сайт, а не сервис синхронизации. Поэтому для 1С ничего не меняется: выгрузки принимаются и накапливаются в очереди со статусом "ожидает обработки".
После запуска сервис первой же проверкой очереди подхватывает всё накопленное. Обновление витрины задержится, но данные не потеряются.
Сценарий 3. Сбой посреди обработки выгрузки
Отметка "обработана" ставится только после того, как обработка дошла до конца. Прерванная на середине выгрузка сохраняет статус "ожидает обработки" и вернётся в работу через несколько секунд.
Повторная обработка безопасна: каждая запись привязана к своему коду из 1С, поэтому система обновит её, а не создаст дубликат. Одновременная работа двух обработчиков исключена.
Сценарий 4. Получена только часть большой выгрузки
Выгрузка из нескольких частей обрабатывается только целиком. Пока собраны не все части, она ждёт и в работу не идёт. Недостающие части 1С передаст повторно, после чего выгрузка уйдёт в обработку.
Каталог, собранный из половины выгрузки, невозможен по самому устройству обмена.
Сценарий 5. Внутри выгрузки встретились ошибочные записи
Ошибка в отдельной записи не останавливает обработку остальных. Проблемные записи попадают в протокол, выгрузка получает отметку "обработана, есть замечания", а администратор видит в панели управления сайтом, какая выгрузка и с какими именно ошибками прошла.
Так исключается самая неприятная ситуация - ошибка, которую никто не заметил. После исправления данных в 1С выгрузку можно обработать повторно.
Сценарий 6. 1С была недоступна и не узнала о заказе
Уведомление о новом заказе лишь ускоряет передачу. Гарантия - реестр пометок: пока 1С не забрала заказ, он числится непереданным.
Вернувшись в работу, 1С запрашивает список непереданного и забирает всё разом. Заказ не может потеряться между системами, даже если уведомление не дойдёт вовсе.
Сводная таблица
| Что сломалось | Что происходит с данными | Что нужно сделать людям |
|---|---|---|
| Сайт недоступен | Остаются в 1С, передаются повторно | Ничего |
| Сервис синхронизации остановлен | Накапливаются в очереди до запуска | Ничего |
| Сбой посреди обработки | Выгрузка обрабатывается заново | Ничего |
| Получена часть выгрузки | Выгрузка ждёт остальные части | Ничего |
| Ошибочные записи в выгрузке | Остальные записи обработаны, ошибки в протоколе | Исправить данные в 1С |
| 1С недоступна | Заказы ждут в реестре пометок | Ничего |
Обзорная версия - статья про обмен целиком, весь проект - кейс B2B-платформы.
