Вебформат

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

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

Уровни защиты обмена от сбоев

Заключительная часть разбора: почему обмен не теряет данные даже при сбоях. Устойчивость держится на шести независимых уровнях защиты - от подтверждения приёма каждой выгрузки до архива всей истории обмена. Каждый уровень закрывает свой класс проблем, а вместе они дополняют друг друга.

Уровни защиты
Уровни защиты

Общая картина

Устойчивость обмена - это не одно решение, а несколько независимых уровней защиты. Каждый закрывает свой класс проблем, и они не заменяют, а дополняют друг друга.

Шесть уровней защиты обмена от сбоев
Защита обмена от сбоев
Шесть независимых уровней
Каждый закрывает свой класс проблем
приём и хранение
Данные не теряются
Приём каждой выгрузки подтверждается
Нет подтверждения - 1С передаёт повторно
Выгрузка попадает в очередь только целиком
Неполная выгрузка ждёт остальные части
Очередь переживает перезапуски
Очередь и статусы хранятся в базе данных
Приём работает, даже если обработка остановлена
Незавершённая работа возобновляется сама
обработка и сверка
Обработка безопасна для данных
Повторная обработка не создаёт дубликатов
Ошибка одной записи не останавливает выгрузку
Отметка о завершении ставится только по факту
Два обработчика одновременно исключены
Расхождения устраняются сами
Полные выгрузки выравнивают сайт с 1С
Устаревшие снимки не обрабатываются
Пустая выгрузка не может очистить каталог
передача в 1С и контроль
Заказы доходят всегда
Реестр пометок хранит всё непереданное
Уведомление и плановый опрос - два независимых пути
Пометка снимается только после передачи
Ничего не проходит незамеченным
Статус каждой выгрузки виден в панели сайта
По каждой выгрузке есть подробный протокол
Архив всех выгрузок хранится целиком
Любую выгрузку можно обработать повторно
Уровни не заменяют, а дополняют друг друга: устойчивость обмена держится не на одном решении, а на всех шести сразу.

Данные не теряются

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

Файл появляется в очереди только целиком, поэтому обработчик не может прочитать наполовину записанную выгрузку. Выгрузка из нескольких частей ждёт, пока соберутся все части.

Очередь переживает перезапуски

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

Приём выгрузок не зависит от обработки - он продолжает работать, даже когда сервис синхронизации остановлен.

Обработка безопасна для данных

Каждая запись привязана к своему коду из 1С, поэтому повторная обработка обновляет существующие данные, а не создаёт вторые такие же. Это делает безопасными и повторные передачи, и перезапуск обработки после сбоя.

Ошибка в одной записи не останавливает выгрузку целиком. Отметка о завершении ставится только по факту. Два обработчика одновременно работать не могут.

Расхождения устраняются сами

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

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

Заказы доходят всегда

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

Ничего не проходит незамеченным

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

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

Что это даёт бизнесу

Свойство обменаЧто это значит на практике
Данные не теряютсяЗаказ покупателя дойдёт до менеджера при любых сбоях
Восстановление автоматическоеПростой не превращается в задачу для программиста
Дубликаты невозможныТовары и цены не задваиваются при повторных передачах
Расхождения самоустраняютсяДанные на сайте не расходятся с 1С со временем
Обмен прозраченПроблема видна в панели управления, а не по звонку клиента
Рост объёмов не требует переделкиКаталог может расти вместе с бизнесом

Обзорная версия всей серии - в статье про обмен целиком. Что вошло в проект помимо обмена - каталог, персональные цены, дилерский кабинет - в кейсе B2B-платформы.

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

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