Как выгрузить документ 1С в XML одной строкой кода?

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

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

Использование XDTO-сериализации

Для решения этой задачи мы воспользуемся механизмом XDTO (XML Data Transfer Objects). Это мощный встроенный инструмент платформы, который берет на себя всю рутинную работу по обходу полей объекта и формированию структуры XML-файла. Вся магия кроется в использовании СериализаторXDTO.

Многие разработчики ошибочно полагают, что для получения XML нужно сначала создавать физический файл. Однако мы можем работать напрямую с оперативной памятью, используя возможности объекта ЗаписьXML.

Пошаговый алгоритм формирования XML в памяти

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

  1. Инициализация записи XML.
  2. Перевод вывода в оперативную память через метод УстановитьСтроку().
  3. Вызов процедуры сериализации объекта.
  4. Получение готового результата.

Посмотрим на пример кода, который реализует эту задачу:


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

// 1. Создаем объект записи XML
ЗаписьXML = Новый ЗаписьXML;

// 2. Устанавливаем вывод в строку (в оперативную память)
ЗаписьXML.УстановитьСтроку();

// 3. Выполняем сериализацию с помощью СериализаторXDTO
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ОбъектДокумента);

// 4. Получаем готовую XML-строку
РезультатXML = ЗаписьXML.Закрыть();

Почему это удобно?

Главное преимущество данного подхода — скорость разработки. СериализаторXDTO автоматически учитывает структуру метаданных вашей конфигурации. Он «знает», какие реквизиты есть у документа, какие типы данных у табличных частей, и самостоятельно прописывает теги XML, соответствующие структуре базы данных.

Использование метода УстановитьСтроку() позволяет передавать сформированные данные напрямую в веб-сервисы, HTTP-сервисы или сохранять их в переменные, не создавая лишних временных файлов на диске сервера. Это избавляет нас от необходимости очистки файловой системы и повышает производительность обмена данными.

Важные замечания при работе с сериализацией

Несмотря на то, что это решение выглядит как «пара строк кода», важно учитывать несколько нюансов, чтобы ваша интеграция прошла успешно:

Используя этот метод, вы сможете значительно сократить время на написание кода интеграции и сделать обмен данными между системами более надежным и структурированным.

← На главную