Как получить актуальный пример XML формата EnterpriseData для обмена с 1С:Бухгалтерией 3.0?

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

Интеграция внешних систем, таких как биллинговые платформы, с 1С через формат EnterpriseData часто вызывает сложности. Основная проблема заключается в том, что формат постоянно развивается: меняются версии XDTO-пакетов, добавляются новые поля и меняется иерархия тегов. Использование старых примеров или «ручное» написание XML на основе устаревших картинок неизбежно приведет к ошибкам при загрузке данных в актуальную версию 1С:Бухгалтерии 3.0.

Давайте разберем, как правильно подойти к этой задаче и получить эталонный файл, который гарантированно пройдет проверку схемой XSD в вашей конфигурации.

Почему не стоит искать готовые XML-файлы в интернете

Формат EnterpriseData — это не просто набор тегов, это строго типизированная структура, основанная на XDTO-пакетах. Если в вашей базе 1С включен специфический функционал (например, учет по договорам с особыми параметрами, специфическая настройка НДС или использование подразделений), структура требуемого XML будет отличаться от «базовой». Попытки угадать структуру вручную — это путь к бесконечным ошибкам при импорте.

Решение 1: Генерация примера через штатный функционал

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

  1. Создайте в вашей 1С документ Акт об оказании услуг (или Реализация товаров и услуг), заполнив его всеми необходимыми данными, которые вы планируете передавать из вашего биллинга.
  2. Воспользуйтесь обработкой Выгрузка и загрузка данных EnterpriseData. Если она отсутствует в стандартном меню, ее можно найти на портале обновлений 1С или в составе дистрибутивов Конвертации данных 3.0.
  3. Настройте правила выгрузки так, чтобы выгружался только созданный вами документ.
  4. Полученный XML-файл и будет являться эталоном. Вы сможете изучить его структуру, вложенность элементов и типы данных, которые ожидает именно ваша версия 1С.

Решение 2: Программная генерация через Конфигуратор

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

Рассмотрим структуру получения данных через ФабрикуXDTO. Это позволит увидеть, как 1С преобразует объекты в формат EnterpriseData:


// Получим ссылку на нужный документ
ДокументОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("ИПОО-000001", ТекущаяДата());

// Сериализуем документ в XML
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Temp\Act_Example.xml");
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ДокументОбъект.ПолучитьОбъект());
ЗаписьXML.Закрыть();

Этот подход гарантирует, что вы получите структуру, соответствующую текущей версии вашей конфигурации 1С:Бухгалтерии, включая все актуальные наборы свойств.

Работа со схемами XSD

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

  1. Откройте конфигуратор вашей базы.
  2. Перейдите в ветку XDTO-пакеты.
  3. Найдите пакеты с префиксом EnterpriseData_....
  4. Нажмите на пакет правой кнопкой мыши и выберите Экспорт в файл схемы XML.

Полученные файлы схем можно использовать в ваших Ruby-скриптах для генерации классов или валидации входящих/исходящих данных. Это обеспечит стабильность интеграции даже при обновлении платформы 1С.

Заключение: лучший алгоритм действий

Проанализировав ситуацию, мы пришли к выводу, что самый эффективный путь — это использование инструментов 1С для «самодокументирования» формата.

Следуя этим шагам, вы сэкономите время на отладке и избежите ошибок, связанных с несоответствием версий форматов обмена.

← На главную