
Мониторинг обмена сайта с 1С должен подтверждать три разных факта: обмен запустился, обработка завершилась без критической ошибки, а нужные данные действительно обновились на принимающей стороне.
Одного сообщения «выгрузка выполнена» недостаточно. Каталог мог передаться частично, цены — не примениться, заказы — остаться в очереди, а контроль запуска будет продолжать показывать зелёный статус.
Для интернет-магазина нужно отдельно контролировать как минимум два направления:
У каждого направления свои расписание, допустимая задержка, доказательство успеха и владелец инцидента.
Чтобы не узнавать об остановке обмена по жалобе менеджера:
Сайт может продолжать открываться и принимать заказы, пока интеграция уже не работает.
Проблему часто замечают косвенно:
Проверка главной страницы ничего из этого не обнаружит. Даже контроль endpoint обмена отвечает только на вопрос о доступности обработчика, а не о движении данных.
Конкретная схема зависит от конфигурации 1С, версии модуля, доработок и правил проекта. В типовом контуре 1С-Битрикс использует CommerceML для передачи коммерческих данных.
Упрощённо каталог движется так:
1С
→ подготовка данных
→ формирование пакета CommerceML
→ авторизация и передача на сайт
→ распаковка и пошаговая обработка
→ сопоставление объектов
→ применение товаров, предложений, цен и остатков
→ очистка временных данных
→ завершение цикла
Заказы могут двигаться в другую сторону:
Покупатель оформил заказ
→ заказ сохранён на сайте
→ попал в выборку обмена
→ передан в 1С
→ создан или обновлён документ
→ сопоставлены товары и контрагент
→ номер или статус вернулся на сайт
Официальная документация 1С-Битрикс описывает штатные компоненты импорта и экспорта в формате CommerceML v2. Но в реальном проекте между ними часто появляются кастомные обработчики, очереди, прокси, расписания и правила фильтрации. Их нужно включить в карту, а не считать обмен «одной кнопкой».
Перед мониторингом заполните паспорт обмена.
| Вопрос | Пример ответа |
|---|---|
| Какая конфигурация 1С участвует? | УТ, ERP или кастомная конфигурация; точная версия |
| Какой модуль или обработка выполняет обмен? | Название и версия |
| Кто инициирует цикл? | 1С, cron, агент, внешний оркестратор |
| Как часто? | Каталог каждый час, заказы каждые 5 минут |
| Какой транспорт? | HTTP(S), файл, очередь, промежуточный сервис |
| Какая учётная запись? | Идентификатор без пароля |
| Где хранятся журналы? | 1С, сайт, веб-сервер, Helpdesk |
| Кто владеет 1С? | Клиент или отдельный подрядчик |
| Кто владеет сайтом? | Студия |
| Какой источник истины? | Цена и остаток — 1С; заказ — сайт; статус отгрузки — 1С |
| Какой допустимый разрыв? | Цена — 90 минут; заказ — 15 минут |
| Какой обход? | Ручное подтверждение остатка, временный импорт заказов |
Если схема неизвестна, сигнал «обмен упал» будет ходить между студией и специалистом 1С без владельца.
Не используйте один общий статус «синхронизация работает».
Создайте отдельные контуры:
Один цикл может успешно передать товары и не применить цены. Поэтому у критических наборов должны быть отдельные доказательства свежести.
Проверяет, что регламентное действие началось в ожидаемое время.
Сигналы:
Этот уровень обнаруживает сломанное расписание, выключенную 1С, cron или агент. Но успешный старт ничего не говорит о завершении.
Проверяет, что цикл дошёл до конечного состояния.
Сигналы:
Heartbeat нельзя отправлять при старте. Иначе зависшая посередине выгрузка будет считаться успешной до следующего окна.
Проверяет фактическое состояние принимающей системы.
Примеры:
Именно этот уровень отвечает на вопрос бизнеса. Первые два нужны, чтобы быстрее локализовать причину.
exchange_id — уникальный идентификатор;Не отправляйте в мониторинг полные персональные данные заказа. Для связи событий достаточно технического идентификатора, времени, статуса и агрегированных показателей.
Факт последнего успеха удобнее бинарного «работает/не работает».
Свежесть = текущее время − время последнего подтверждённого
применения данных на принимающей стороне
Пример для каталога, который должен обновляться каждый час:
| Возраст последнего результата | Состояние | Действие |
|---|---|---|
| До 75 минут | Норма | Наблюдение |
| 75–90 минут | Допуск | Проверить длительность текущего цикла |
| 90–180 минут | Предупреждение | Создать P3/P2 и назначить владельца |
| Более 180 минут | Критично для активного магазина | Эскалация по бизнес-влиянию |
Это только пример. Если магазин меняет цены один раз ночью, пороги будут другими. Если остаток критичен в период распродажи, допуск может составлять минуты.
Для заказов полезнее измерять возраст старейшего неподтверждённого заказа, а не время последнего общего обмена. Один новый успешный заказ не должен скрывать старый застрявший.
Heartbeat — короткий сигнал, который задача отправляет после выполнения проверяемого результата.
Пример полезного события:
{
"job": "catalog_import",
"exchange_id": "2026-08-04T12:00:00+03:00_catalog_1842",
"status": "success",
"started_at": "2026-08-04T12:00:05+03:00",
"finished_at": "2026-08-04T12:08:41+03:00",
"processed": 12483,
"updated_prices": 417,
"updated_stocks": 932,
"errors": 0,
"source_timestamp": "2026-08-04T11:59:48+03:00"
}
Правила:
exchange_id;success, если обработана только часть обязательных данных;Если прямой сигнал невозможен, мониторинг может проверять доступный служебный показатель или файл состояния. Он не должен быть публичным без авторизации и не должен раскрывать внутренние пути и секреты.
Богатое JSON-событие выше (с processed, updated_prices, errors и так далее) — это внутренняя телеметрия студии: его есть смысл писать в свой журнал или отправлять в свою систему до отдельного шага. Сам факт «цикл завершился успешно» в Pingvera передаётся отдельным, более простым механизмом — heartbeat-монитором.
Heartbeat-монитор Pingvera даёт URL пульса вида https://app.pingvera.ru/hb/{token} (метод GET или POST, токен-секрет зашит прямо в путь; есть вариант с явным сигналом — https://app.pingvera.ru/hb/{token}/{signal}). У монитора задаётся:
schedule — расписание в cron-выражении, когда обмен должен запускаться;schedule_tz — часовой пояс этого расписания;grace — сколько ждать после ожидаемого времени, прежде чем считать пропуск инцидентом.Логика обратная обычному мониторингу: Pingvera не опрашивает цель, а ждёт, что цель сама отчитается. Молчание дольше расписание + grace — это и есть сигнал сбоя.
Вызов пульса добавляется в самый конец обработки — после того, как обмен реально завершился успехом (см. правило выше «heartbeat нельзя отправлять при старте»):
# ...весь обмен отработал, критические шаги подтверждены...
curl -fsS "https://app.pingvera.ru/hb/{token}"
Если обмен не запустился или упал раньше этой строки, пульс не придёт, и после истечения schedule + grace Pingvera откроет инцидент «ночной обмен не отметился» — без отдельного опроса состояния 1С или сайта.
Контрольный объект помогает подтвердить, что данные дошли до конца.
Варианты:
Требования:
Не меняйте автоматически остаток продаваемого товара ради мониторинга. Ошибка теста не должна создать реальный дефицит или ложное наличие.
Обмен может завершиться со статусом успеха и выполнить опасное массовое действие.
Добавьте правила:
Порог должен учитывать сезонные массовые обновления. Перед большой переоценкой создайте согласованное окно, но не отключайте контроль полностью.
Официальные настройки торгового каталога позволяют определить действие над товарами, которых нет в CommerceML-файле:
Это значит, что неполный или неверно сформированный пакет может привести не только к отсутствию новых данных, но и к массовому изменению существующего каталога. Студия должна знать выбранное правило и контролировать дельту после импорта.
Также проверьте:
Собирайте:
Актуальный учебный курс 1С-Битрикс описывает форму «Журнал обменов», где протоколы можно смотреть по датам, типам и другим разрезам, в том числе фильтровать ошибки.
Проверяйте:
Сводите временную шкалу:
11:59:48 — 1С сформировала пакет
12:00:05 — началась передача
12:01:12 — сайт принял архив
12:01:20 — началась обработка
12:08:41 — импорт завершён
12:09:03 — контрольное значение подтверждено
Так видно, где возникла задержка. Обязательно согласуйте часовой пояс и синхронизацию времени.
| Поломка | Что видно | Как обнаружить |
|---|---|---|
| Задание не стартовало | Нет нового цикла | Отсутствие ожидаемого старта и heartbeat |
| Ошибка авторизации | Повторные ответы отказа | Код категории + журнал обеих сторон |
| Передача оборвалась | Неполный пакет, повторы | Размер, номер порции, незавершённый цикл |
| Закончилось место | Ошибка распаковки или записи | Диск и inode + журнал импорта |
| Обработка зависла | Время старта есть, окончания нет | Максимальная длительность и блокировка |
| Пакет пуст | Технический успех, ноль объектов | Минимальный ожидаемый объём |
| Цены не применились | Товары обновились, цены старые | Отдельная метрика цен и контрольный объект |
| Заказы не уходят | Каталог свежий, очередь заказов растёт | Возраст старейшего заказа |
| Дубли заказов | Повторная обработка | Уникальный ID и сверка дубликатов |
| Массовая деактивация | Импорт успешен, каталог исчезает | Контроль дельты и числа активных товаров |
| Статус не вернулся | Заказ есть в 1С, сайт старый | Задержка обратного направления |
| Обмен стал медленнее | Циклы перекрываются | Длительность и процент сервисного окна |
Пример матрицы для магазина:
| Уровень | Условие | Действие |
|---|---|---|
| Информация | Цикл завершён в обычном диапазоне | Сохранить в истории без уведомления дежурного |
| Предупреждение | Длительность или свежесть приближается к допуску | Проверить текущий цикл и ресурсы |
| P3 | Один цикл не завершён, бизнес-данные ещё в допустимом окне | Назначить владельца в рабочее время |
| P2 | Данные устарели; заказы задерживаются; есть ограниченный ручной обход | Уведомить студию и клиента по регламенту |
| P1 | Неверные цены массово опубликованы; заказы теряются; нет обхода; возможна порча данных | Остановить влияние, открыть критический инцидент |
Не объявляйте P1 только по технической строке. Если ночной импорт задержался на десять минут, а магазин использует суточные цены, влияние отличается от трёхчасовой остановки заказов во время распродажи.
Повторный полный обмен может:
Сначала определите состояние текущего цикла и повторяемость операций.
В зависимости от согласованных полномочий:
Не выключайте весь магазин, если можно безопасно ограничить одну функцию.
Проверьте по порядку:
После исправления недостаточно увидеть статус success.
Проверьте:
С [время] обновление [цен и остатков / заказов] задержано.
Последние подтверждённые данные применены в [время].
Влияние: [конкретный бизнес-результат].
Мы [действие] и используем [обход, если есть].
Следующее обновление — до [время].
Не пишите клиенту только «ошибка CommerceML». Объясните свежесть данных и работу заказов.
# Контроль обмена 1С ↔ сайт: [проект]
## Владельцы
- Бизнес-владелец: [имя]
- Сайт: [студия / контакт]
- 1С: [подрядчик / контакт]
- Инфраструктура: [контакт]
- Аварийное решение: [роль]
## Направление 1: [каталог / заказы / статусы]
Источник истины: [система]
Инициатор: [система / задача]
Расписание: [значение]
Часовой пояс: [значение]
Допустимая свежесть: [значение]
Максимальная длительность: [значение]
Критические часы: [значение]
### Доказательства
- Старт: [сигнал]
- Завершение: [сигнал]
- Бизнес-результат: [контрольное значение]
### Метрики
- [длительность]
- [число объектов]
- [ошибки]
- [очередь]
- [дельта активных данных]
### Пороги
| Условие | Уровень | Канал | Первое действие |
|---|---|---|---|
| | | | |
### Обход
[Безопасный ручной процесс, владелец и максимальная длительность]
### Восстановление
[Порядок без секретов]
### Критерий закрытия
[Какой факт на принимающей стороне должен быть подтверждён]
Для магазина с часовым обновлением каталога и пятиминутной передачей заказов:
В ежемесячном отчёте полезно показывать:
Не отправляйте клиенту тысячи технических строк. Покажите вывод: насколько свежими были цены, как быстро заказы попадали в учётную систему и что команда улучшила.
Доступный обработчик не доказывает успешное применение пакета.
Зависшая задача выглядит здоровой. Сигнал успеха должен быть последним шагом.
Работающий каталог скрывает остановку заказов. Разделяйте потоки.
Команда видит время последнего обмена, но не понимает, когда эскалировать.
Он увеличивает влияние и стирает контекст. Сначала диагностируйте состояние.
Десять тысяч обработанных товаров могут иметь нулевые цены. Добавьте контроль значений и дельт.
Сайт говорит, что пакет не пришёл, 1С — что отправила. Связывайте циклы по ID и времени.
Для контроля очереди не нужны ФИО, телефон и адрес покупателя. Используйте технические идентификаторы и агрегаты.
Студия обнаружила неверные остатки, но никто не уполномочен включить ручное подтверждение. Полномочия фиксируют заранее.
Pingvera может стать внешним слоем контроля:
Для прямой проверки журнала 1С, очереди заказов или контрольного значения потребуется подходящий источник данных: безопасный endpoint, скрипт, webhook или интеграция. Pingvera не должна получать административный доступ к 1С и не меняет остатки автоматически. Она контролирует разрешённые доказательства и сообщает об отклонении.
Первый практический шаг: настройте два независимых сигнала — heartbeat успешного обмена и проверку фактической свежести результата. Затем подключите их к Pingvera.
Проверить итоговый статус, отсутствие критических ошибок, ожидаемый объём обработки и фактическое применение данных на принимающей стороне. Сам HTTP-ответ или начало задачи не являются достаточным доказательством.
Измерять историческую длительность и запретить опасное перекрытие циклов. Порог должен учитывать нормальные колебания, но предупреждать до нарушения допустимой свежести.
Нет. Сначала определите этап, состояние частично обработанных данных и повторяемость операции. Часто безопаснее повторить конкретный этап или инкрементальный пакет. Полный обмен может усилить нагрузку и массовые изменения.
Можно контролировать очередь на сайте, возраст старейшего непереданного заказа, техническое подтверждение обработки и периодически сверять контрольный заказ на стороне 1С. Полный end-to-end требует участия или безопасной интеграции со стороны 1С.
Он зависит от бизнес-процесса. Для передачи интернет-заказа это могут быть минуты, для ночного обновления каталога — часы. Порог должен быть меньше момента, когда устаревшие данные начинают вредить покупателю или работе менеджера.
Да, если объект специально подготовлен, не участвует в продаже и аналитике, а изменение безопасно. Другой вариант — только читать ожидаемое значение реального товара, не изменяя его автоматически.
Сопоставьте exchange_id и время, затем проверьте приём пакета, распаковку, пошаговую обработку, правила сопоставления, журнал импорта, состояние базы и фактическое поле контрольного объекта. Успех отправки со стороны 1С не равен успеху применения на сайте.
Нет. Пропущенный цикл может оставаться внутри технического допуска. Уведомление связывают с уровнем критичности, свежестью данных, очередью заказов и риском. Студия при этом должна видеть раннее предупреждение.
Работающий обмен — это не доступный URL и не запущенное задание. Это подтверждённое движение правильных данных с допустимой задержкой.
Разделите потоки, измеряйте свежесть, отправляйте heartbeat после завершения, проверяйте бизнес-результат и контролируйте аномальные дельты. Тогда веб-студия узнает об остановке обмена до жалоб покупателей и сможет говорить с клиентом не об абстрактной «ошибке синхронизации», а о конкретном влиянии на цены, остатки и заказы.
Следующие материалы курса: «Как проверить восстановление сайта из бэкапа, не рискуя production» и «Отчёт об инциденте сайта: русский шаблон для клиента».
Pingvera следит за сайтами клиентов «снаружи и изнутри» — доступность из регионов, формы, оплата, домен, SSL, сервер — и предупреждает в Telegram, email и Max раньше, чем напишет клиент.
Попробовать Pingvera бесплатноЧитайте также: Мониторинг как код для веб-студии: руководство · Terraform-провайдер Pingvera: мониторинг как код · CLI Pingvera: мониторинг из терминала и скриптов · Мониторинг, который не заходит на сервер клиента · Бесплатно проверить сайт.