При работе с инструментом «1С:Конвертация данных 3.1» (КД 3) разработчики часто сталкиваются с неприятной ситуацией на этапе начала настройки обмена — при попытке загрузить структуру формата. Типичная ошибка выглядит как сообщение: «Неверно указано имя основного пакета XDTO» или «Ошибка проверки модели XDTO: пакет не определен». Это останавливает процесс создания правил конвертации, так как без описания структуры формата (EnterpriseData) невозможно сопоставить объекты конфигурации с объектами обмена.
В этой статье мы подробно разберем, почему возникают эти ошибки, и рассмотрим несколько проверенных способов их решения, основываясь на практическом опыте ведущих разработчиков 1С.
Давайте проанализируем ситуацию. Основная причина ошибок кроется в сложной структуре зависимостей XDTO-пакетов. Формат EnterpriseData (ED) не является изолированным файлом. Он активно использует типы данных, описанные в другом пакете — ExchangeMessage. Когда мы пытаемся загрузить только один XSD-файл формата в КД 3, система пытается разрешить ссылки на импортируемые типы. Не находя описания пакета ExchangeMessage, платформа выдает ошибку фабрики XDTO.
Кроме того, часто возникает путаница с тем, что именно вводить в поле «Имя основного пакета XDTO». Многие пользователи ошибочно вводят туда имя файла или произвольное название, в то время как система ожидает уникальный идентификатор пространства имен.
Рассмотрим наиболее простой и современный метод, который помогает в 90% случаев. Вместо того чтобы пытаться загружать файлы по одному, мы воспользуемся возможностью множественного выбора файлов в диалоговом окне загрузки.
Выполним следующие шаги:
ExchangeMessage) и нажмем на нем правой кнопкой мыши — «Экспортировать в XML-схему». Сохраним его под именем Message.xsd.EnterpriseData_1_8_6) и аналогично экспортируем его в файл, например ED.xsd.Message.xsd и ED.xsd.При таком подходе КД 3 одновременно получает все необходимые определения типов, и ошибка «пакет не определен» исчезает.
Выясним причину ошибки «Неверно указано имя основного пакета XDTO». Рассмотрим подробнее, что должно быть указано в соответствующем поле обработки загрузки.
Для системы критически важно, чтобы Имя основного пакета совпадало с Namespace (пространством имен) самого XDTO-пакета в конфигурации. Чтобы получить его правильно, выполним следующие действия:
EnterpriseData_X_X_X.http://www.1c.ru/EnterpriseData/1.8.Важно: Не пытайтесь вписывать туда имя файла или просто текст «EnterpriseData». Только полный URI гарантирует успешную идентификацию пакета системой.
Проанализируем ситуацию, когда множественный выбор не помогает из-за специфических путей в заголовках схем. Рассмотрим пример ручной правки XSD-файла для того, чтобы «подсказать» платформе, где искать импортируемые пакеты.
EnterpriseData_1_0_beta.xsd) в текстовом редакторе (рекомендуется Notepad++).xs:import. Обычно она выглядит так:
schemaLocation:
Message.xsd лежит в той же папке, что и основной файл формата.После такой правки загрузка даже одного основного файла может пройти успешно, так как он сам «знает», откуда подтянуть недостающие типы.
Иногда при загрузке возникает фатальная ошибка: «Extra content at the end of the document» или «Ошибка разбора XML». Разберем по шагам, как это исправить:
Эти ошибки часто связаны с невидимыми символами BOM (Byte Order Mark), которые добавляют некоторые текстовые редакторы. Чтобы избежать этого, при сохранении XSD-файлов убедитесь, что используется кодировка UTF-8 без BOM.
Также проверьте, что в конце файла нет лишних пустых строк или мусорных символов после закрывающего тега . Если вы редактировали файл вручную, платформа может запнуться на любом лишнем знаке вне структуры XML.
Посмотрим на ситуацию с обновлением форматов. В КД 3 важно понимать логику версионирования EnterpriseData:
1.0.1, 1.0.2, 1.0.3 в контексте КД 3 часто имеют одно и то же пространство имен (URI).В современных конфигурациях на базе БСП (Библиотека стандартных подсистем) можно получить готовые файлы схем без ручного экспорта из конфигуратора. Рассмотрим, как это сделать:
Во многих типовых решениях (ERP, УТ 11, БП 3) в разделе администрирования или в планах обмена существует функционал выгрузки параметров подключения. При выгрузке этих параметров система часто генерирует архив, содержащий актуальные и уже согласованные между собой XSD-схемы (включая ExchangeMessage и EnterpriseData). Использование этих файлов минимизирует риск ошибок несовместимости версий.
Подводя итог, можно сказать, что ключом к успешной загрузке структуры является одновременная подача всех зависимых схем и точное указание URI пространства имен. Выполнение этих простых правил позволит вам быстро перейти к основной части работы — написанию правил конвертации объектов.