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