Почему не приходят документы при XML-обмене по плану обмена в 1С и как их найти?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Основные причины потери документов при XML-обмене

Выясним, на каких этапах передачи данных документ может не дойти до целевой базы:

  1. Срабатывание условий в правилах выгрузки (ПРО / ПКО): В программных обработчиках событий (например, «Перед выгрузкой» или «При выгрузке») может быть прописан код, устанавливающий отказ от выгрузки объекта при определенных условиях (не заполнены реквизиты, документ не соответствует статусу, дате и т. д.). В этом случае документ зарегистрирован на узле обмена, но пропускается алгоритмом при формировании XML.
  2. Специфика платформенного механизма снятия регистрации: В платформе 1С снятие флага регистрации изменений привязано к номеру выгружаемого сообщения. Когда база-источник получает квитанцию с подтверждением приема от базы-приемника, платформа очищает регистрацию со всех объектов, помеченных этим номером сообщения. Это происходит независимо от того, был ли объект реально записан в XML-файл или пропущен правилами конвертации.
  3. Рассинхронизация номеров сообщений обмена: Если в источнике и приемнике рассинхронизировались счетчики сообщений (поля «Номер отправленного» и «Номер принятого»), приемник отклоняет входящий XML-пакет из-за ошибки расхождения номеров. При этом источник при получении ответной квитанции может сбросить регистрацию объектов.
  4. Отборы и ошибки на стороне базы-приемника: Документ может успешно сформироваться и выгрузиться в XML, но не записаться в приемнике из-за:
    • Входящих отборов на узле приемника (по организации, подразделению, периоду).
    • Ошибок в обработчиках «Перед записью» или «При загрузке».
    • Отката всей транзакции загрузки при вызове исключения на другом объекте из этого же пакета.
  5. Недопустимые символы в XML: Наличие спецсимволов и непечатаемых управляющих символов (ASCII 0–31) в строковых реквизитах (в комментариях или наименованиях) может привести к сбою XML-парсера при чтении файла без вывода понятного сообщения об ошибке.

Шаги по диагностике и поиску пропущенных документов

Разберем по шагам, как локализовать проблему и понять, на каком этапе теряется документ:

  1. Проверка через обработку «Регистрация изменений для обмена»: В любой типовой конфигурации 1С есть стандартная обработка Регистрация изменений для обмена. С ее помощью смотрим, зарегистрирован ли конкретный документ на узле плана обмена. Если объект отсутствует в таблице изменений, значит, он либо не регистрировался, либо регистрация уже была снята при получении квитанции.
  2. Проверка факта выгрузки в XML: Проверяем, попал ли объект в сформированный XML-файл. Для этого выгружаем пакет и ищем в файле уникальный идентификатор (GUID) или номер документа. Если документ есть на узле, но отсутствует в XML — проблема в правилах выгрузки (обработчики «Перед выгрузкой»).
  3. Анализ Журнала регистрации: В базе-приемнике проанализируем Журнал регистрации за время выполнения обмена. Фильтруем события по категории обмена данными, чтобы найти сообщения об ошибках записи документов или отмене транзакций.
  4. Отладка правил обмена: Включаем режим отладки выгрузки/загрузки с помощью выгрузки правил во внешний модуль. Это позволяет пройти алгоритмы обработчиков пошагово в Конфигураторе и точно определить условие, прописывающее отказ от обработки объекта.

Как организовать контроль и предотвратить потери

Рассмотрим рекомендации по предотвращению утери данных при регулярном обмене:

  1. Формирование реестра документов для сверки: Разработаем отчет или обработку для построения реестра выгруженных и загруженных документов в обеих базах за период. Сверка итоговых количеств и сумм позволит быстро выявлять расхождения.
  2. Корректировка номеров сообщений: При сбоях нумерации проводим выравнивание значений «Номер отправленного» и «Номер принятого» на узлах планов обмена в обеих базах.
  3. Использование гарантированной доставки: Для критически важных интеграций рассматриваем переход с файлового XML-обмена на прямое онлайн-взаимодействие через HTTP-сервисы или шину данных. Это дает мгновенный отклик о статусе записи каждого документа и исключает неконтролируемую потерю объектов.
← На главную