Как исправить ошибку «Неправильный формат сообщения» и «Поле объекта не обнаружено (Объекты)» при обмене между 1С:Документооборот и УАТ?

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

При настройке интеграции между различными конфигурациями на платформе «1С:Предприятие» специалисты часто сталкиваются с непредвиденным поведением системы, сбоями при чтении файлов обмена и непонятными ошибками в коде. Особенно остро эти проблемы встают, когда задействованы механизмы Библиотеки стандартных подсистем (БСП) и специализированные планы обмена.

В данной статье мы подробно разберем ситуацию, когда при попытке обмена между конфигурациями «1С:Документооборот» (ДО) и «1С:Управление автотранспортом» (УАТ) возникают сразу две критические ошибки:

Мы детально проанализируем причины возникновения этих ошибок — как с технической точки зрения (на уровне кода и XML-структур), так и с методологической стороны. Также мы рассмотрим пошаговые инструкции по правильной настройке взаимодействия между этими базами.

---

Технический анализ ошибки «Неправильный формат сообщения»

Рассмотрим подробнее, почему возникает ошибка при вызове метода НачатьЧтение. Этот метод принадлежит объекту ЧтениеСообщенияОбмена и отвечает за инициализацию процесса загрузки данных из файла XML.

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


ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлу);

ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
Попытка
    ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
Исключение
    ЗаписатьЛогОшибки("Не удалось прочитать заголовок сообщения обмена: " + ОписаниеОшибки());
    ВызватьИсключение;
КонецПопытки;

Метод НачатьЧтение анализирует так называемый «конверт» сообщения — заголовок XML-документа. В заголовке обязательно должны присутствовать следующие элементы:

  1. Имя плана обмена (соответствующее метаданным текущей базы).
  2. Код отправителя и код получателя (они должны строго совпадать с кодами узлов, зарегистрированных в текущей информационной базе).
  3. Номер сообщения (используется для контроля последовательности пакетов).

Если заголовок XML-файла не соответствует ожидаемому формату (например, в файле вообще отсутствует XML-структура сообщения обмена, либо теги повреждены, либо перепутаны коды узлов), платформа мгновенно генерирует исключение Неправильный формат сообщения.

Часто это происходит, когда вместо специализированного сообщения обмена в систему пытаются загрузить обычный файл выгрузки данных, сформированный, например, через обработку «Универсальный обмен данными в формате XML».

---

Технический анализ ошибки «Поле объекта не обнаружено (Объекты)»

Эта ошибка происходит на этапе выгрузки данных из информационной базы-источника. Разберем по шагам, где именно в программном коде БСП возникает этот сбой.

При выгрузке изменений через планы обмена механизмы БСП обращаются к свойствам узла обмена. В конфигурациях, разработанных на базе современных стандартов 1С, планы обмена часто содержат табличные части для гибкой настройки фильтрации объектов. Одной из таких табличных частей является табличная часть Объекты (или ОбъектыМетаданных), где перечисляются типы данных, подлежащие синхронизации.

Типичный фрагмент кода БСП, в котором происходит обращение к метаданным плана обмена, выглядит так:


// Фрагмент общего модуля обмена данными
Функция ПолучитьПравилаРегистрацииОбъектов(УзелИнформационнойБазы) Экспорт
    
    // Попытка обратиться к табличной части "Объекты" узла плана обмена
    ТаблицаОбъектов = УзелИнформационнойБазы.Объекты.Выгрузить();
    
    // Дальнейшая обработка правил регистрации...
    Возврат ТаблицаОбъектов;
    
КонецФункции

Если в коде выполняется обращение вида УзелИнформационнойБазы.Объекты, но у используемого плана обмена в конфигураторе физически отсутствует табличная часть с именем Объекты, платформа аварийно завершает работу с ошибкой Поле объекта не обнаружено (Объекты).

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

---

Методологическая ошибка: путаница между ЭДО и Документооборотом

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

«Начат обмен данными по настройке "Обмен с ЭДО"...»

Это ключевой маркер методологической ошибки. Пользователь перепутал две совершенно разные технологии:

  1. 1С:ЭДО (Электронный документооборот) — это сервис обмена юридически значимыми документами (счетами-фактурами, накладными, договорами) с внешними контрагентами через операторов электронного документооборота. План обмена «Обмен с ЭДО» является служебным и предназначен исключительно для синхронизации метаданных самого сервиса ЭДО (настройки учетных записей, пакеты электронных документов и т.д.).
  2. 1С:Документооборот (ДО) — это самостоятельная ERP-система для управления внутренними процессами предприятия, задачами, проектами и бумажным/электронным архивом документов.

Попытка использовать план обмена Обмен с ЭДО для передачи данных между базами «1С:Документооборот» и «1С:Управление автотранспортом» в корне неверна. Это приводит к тому, что система пытается прочитать файлы по алгоритмам ЭДО, которые не соответствуют структуре данных интеграции ДО-УАТ, вызывая описанные выше технические сбои.

---

Как правильно настроить интеграцию между ДО и УАТ

Для того чтобы связать эти две конфигурации, необходимо использовать штатные механизмы интеграции, заложенные разработчиками фирмы «1С» и отраслевых решений. Рассмотрим два наиболее эффективных и поддерживаемых способа.

Способ 1. Настройка бесшовной интеграции (Рекомендуемый)

Технология бесшовной интеграции позволяет пользователям работать с функционалом «1С:Документооборота» непосредственно из интерфейса «1С:Управление автотранспортом» без физического дублирования данных в обеих базах. Это реализуется через механизм веб-сервисов.

Выполним настройку по шагам:

  1. Публикация веб-сервиса в базе 1С:ДО:
    • Откройте базу «1С:Документооборот» в режиме Конфигуратора с правами администратора.
    • Выполните публикацию на веб-сервере (IIS или Apache) через меню Администрирование -> Публикация на веб-сервере.
    • Обязательно установите флажок напротив веб-сервиса DMService (Document Management Service). Именно этот сервис обеспечивает бесшовную интеграцию.
  2. Настройка подключения в базе 1С:УАТ:
    • Откройте базу «1С:Управление автотранспортом» в режиме «1С:Предприятие».
    • Перейдите в раздел Администрирование -> Настройки программы -> Интеграция с 1С:Документооборот.
    • Установите флаг Интеграция с 1С:Документооборот.
    • В поле Адрес веб-сервиса введите URL-адрес опубликованного сервиса в формате:
      http://имя_сервера/имя_публикации/ws/DMService.1cws.
    • Укажите логин и пароль пользователя базы «1С:Документооборот», под которым система будет авторизоваться при отправке запросов.
  3. Настройка правил интеграции:
    • В этом же разделе настройте правила соответствия объектов. Укажите, какие документы УАТ (например, Путевой лист или Заказ на ТС) должны автоматически создавать связанные документы или запускать бизнес-процессы в «1С:Документооборот».

---

Способ 2. Синхронизация данных (Классический обмен через БСП)

Если вам требуется физический перенос справочников и документов между информационными базами ДО и УАТ, необходимо использовать стандартную подсистему «Синхронизация данных».

Разберем процесс настройки по шагам:

  1. Включение синхронизации данных:
    • В обеих базах (ДО и УАТ) перейдите в раздел Администрирование -> Синхронизация данных.
    • Установите флаг Синхронизация данных.
    • Задайте уникальный префикс информационной базы для каждой стороны (например, для ДО — ДО, для УАТ — АТ).
  2. Создание настройки синхронизации:
    • В одной из баз (например, в УАТ) нажмите кнопку Настройки синхронизации данных -> Создать синхронизацию данных.
    • В списке доступных конфигураций выберите 1С:Документооборот.
    • Выберите канал обмена (прямое подключение к базе, обмен через каталог, FTP или электронную почту). Для файловых баз проще всего использовать локальный каталог, для клиент-серверных — прямое подключение через COM-соединение или веб-сервис.
  3. Настройка правил отправки и получения данных:
    • Укажите, с какой даты начать выгрузку документов, и какие именно справочники должны участвовать в обмене.
    • Сохраните настройки и выгрузите файл параметров подключения для второй базы (если обмен настраивается через файлы).
    • В базе «1С:Документооборот» завершите настройку синхронизации, загрузив созданные параметры.
  4. Запуск обмена:
    • Выполните первый обмен. При первом запуске система предложит сопоставить одноименные объекты (например, контрагентов, организации, физических лиц), чтобы избежать дублирования информации в базах данных.

---

Как локализовать ошибку с помощью отладчика

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

Для того чтобы подключиться к процессу обмена, выполните следующие действия:

  1. Откройте конфигуратор базы-источника.
  2. Перейдите в меню Отладка -> Подключение....
  3. В списке доступных диалогов найдите и выберите фоновое задание, отвечающее за выполнение обмена (обычно оно содержит в имени ВыполнениеОбменаДанными).
  4. Установите точку останова в общем модуле ОбменДаннымиСервер в процедуре выгрузки или чтения данных (например, перед вызовом методов НачатьЧтение() или НачатьЗапись()).
  5. Запустите обмен из режима «1С:Предприятие» и детально проанализируйте значения переменных в табло отладчика.

Соблюдение этих правил и методологически верный выбор инструментов интеграции позволят вам раз и навсегда решить проблемы с обменом данными между конфигурациями «1С:Документооборот» и «1С:Управление автотранспортом».

← На главную