К статье
Практический материал

Администрирование · 10 мин

Как сохранить документ в XML-формате из 1С

Как выгрузить документ из 1С в XML: стандартная выгрузка, обработка «Выгрузка и загрузка данных XML», планы обмена и код. Проверка файла и типичные ошибки.

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

Главное отличие способов — что именно попадёт в файл. Одни методы выгружают документ «как есть» со всеми ссылками на справочники, другие — только представление в заданной структуре (например, по формату ФНС или банка). Перед выгрузкой важно понять, куда пойдёт файл: в другую базу 1С, в стороннюю систему или в контролирующий орган.

Определите, какой XML-файл вам нужен

Прежде чем выгружать, ответьте на два вопроса: кто будет читать файл и нужна ли точная копия данных. Если документ переносится в идентичную базу 1С той же конфигурации, подходит выгрузка «в нативном формате» — платформа сериализует объект со всеми реквизитами и ссылками. Такой файл корректно загрузится только в базу с той же структурой метаданных.

Если файл уходит в стороннюю систему, банк или контролирующий орган, нативная выгрузка не подойдёт: внешняя система ожидает конкретную схему (XSD). В этом случае нужны правила конвертации, формат обмена (например, EnterpriseData) или программная формировка XML по шаблону.

Маршрут решения

Как выбрать способ выгрузки

Нужно перенести документ в такую же базу 1СИспользуйте обработку «Выгрузка и загрузка данных XML»
Настроен регулярный обмен между базамиВыгружайте через узел плана обмена
Файл нужен для сторонней системы по заданной схемеИспользуйте «Универсальный обмен данными» с правилами или программную запись
Нужен разовый файл с произвольной структуройНапишите короткий код с объектом ЗаписьXML

Выгрузка через обработку «Выгрузка и загрузка данных XML»

Это стандартный способ переноса данных между идентичными конфигурациями. Обработка входит в состав большинства типовых решений, а также доступна на диске ИТС и в поставке платформы. В типовых конфигурациях на БСП её можно найти через «Администрирование» → «Сервис» либо запустить внешний файл обработки через «Файл» → «Открыть».

Порядок действий: откройте обработку, на закладке «Выгрузка» укажите имя файла, отметьте в дереве метаданных нужный вид документов. Чтобы выгрузить не все документы, а конкретные, задайте отбор по периоду и, при необходимости, дополнительные условия. Затем нажмите «Выгрузить данные».

Порядок выгрузки через типовую обработку
  1. 1
    Откройте обработку «Выгрузка и загрузка данных XML»
  2. 2
    Укажите путь и имя файла для сохранения
  3. 3
    В дереве объектов отметьте нужный вид документа
  4. 4
    Установите период выгрузки и отборы
  5. 5
    Нажмите «Выгрузить данные» и дождитесь сообщения о завершении
  6. 6
    Откройте файл в текстовом редакторе и проверьте содержимое

Обратите внимание на флажок выгрузки «при необходимости» связанных объектов: если он включён, в файл попадут и справочники, на которые ссылается документ (контрагенты, номенклатура, договоры). Это увеличивает размер файла, но гарантирует, что документ загрузится в пустую базу без битых ссылок.

Выгрузка через план обмена

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

Чтобы выгрузить конкретный документ вручную, откройте нужный узел плана обмена, используйте команду «Зарегистрировать изменения» (или «Зарегистрировать объект») и добавьте документ в список. Затем выполните «Записать изменения» — файл сообщения обмена будет сохранён по указанному пути.

Этот способ удобен, когда обмен уже настроен: не нужно отдельно отбирать объекты и заботиться о ссылочной целостности — платформа включает в сообщение всё необходимое согласно составу плана обмена.

Универсальный обмен данными по правилам

Обработка «Универсальный обмен данными в формате XML» (обработка с ИТС, часто называется по имени файла вида UniversalDataExchangeXML) позволяет выгружать данные по правилам конвертации, созданным в «Конвертации данных». Это основной инструмент, когда конфигурации источника и приёмника различаются.

В обработке укажите файл правил, имя файла выгрузки и настройте отборы: по виду документа, периоду, организации. Правила определяют, как реквизиты документа преобразуются в элементы XML и какие объекты выгружаются вместе с ним.

Если типовых правил для вашей пары конфигураций нет, их придётся создать в конфигурации «Конвертация данных» или заказать у специалиста. Это отдельная работа, которая требует понимания структуры обеих баз.

Программная выгрузка документа в XML

Когда нужен файл произвольной структуры — например, по схеме внешней системы — документ выгружают кодом на встроенном языке. Базовый приём: создать объект ЗаписьXML, открыть файл и последовательно записать элементы с реквизитами документа и строками табличной части.

bsl
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\Документ.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Документ");
Запись.ЗаписатьАтрибут("Номер", Строка(Док.Номер));
Запись.ЗаписатьАтрибут("Дата", XMLСтрока(Док.Дата));
Для Каждого СтрокаТЧ Из Док.Товары Цикл
    Запись.ЗаписатьНачалоЭлемента("Строка");
    Запись.ЗаписатьАтрибут("Номенклатура", Строка(СтрокаТЧ.Номенклатура));
    Запись.ЗаписатьАтрибут("Количество", XMLСтрока(СтрокаТЧ.Количество));
    Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();

Для выгрузки в нативном формате платформы из кода есть более короткий путь — метод ЗаписатьXML глобального контекста, который сериализует объект целиком. Такой файл аналогичен результату типовой обработки и загружается методом ПрочитатьXML в базе с идентичной структурой.

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

Проверка результата и типичные ошибки

После выгрузки откройте XML-файл в браузере или текстовом редакторе с поддержкой XML. Файл должен начинаться с объявления <?xml version="1.0" encoding="UTF-8"?> и содержать читаемые элементы с данными документа. Если вместо текста видны иероглифы — проблема в кодировке: проверьте, что файл сохранён в UTF-8.

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

Контрольные точки

Как проверить результат

Открытие файла в редакторе
Норма

Читаемый XML с объявлением и корневым элементом

Тревожный признак

Кракозябры, пустой файл, обрыв структуры

Тестовая загрузка в копию базы
Норма

Документ загружается, ссылки заполнены

Тревожный признак

Ошибки загрузки, незаполненные реквизиты-ссылки

Размер файла
Норма

Соразмерен количеству выгруженных объектов

Тревожный признак

Файл в несколько килобайт при выгрузке тысяч документов

Кодировка
Норма

UTF-8, кириллица отображается корректно

Тревожный признак

Кириллица не читается в сторонней системе

Типичные ошибки
01
Выгрузка нативным форматом для сторонней системы — внешняя система не распознает структуру платформы
02
Выгрузка без связанных объектов — в базе-приёмнике появляются битые ссылки на справочники
03
Загрузка в базу с другой версией конфигурации — реквизиты не совпадают, данные теряются
04
Запись чисел и дат без XMLСтрока() — ошибки формата при разборе файла
05
Работа в рабочей базе без копии — при ошибке код или обработка портят реальные данные

Ограничения и альтернативы

XML — не единственный вариант сохранения документа. Если нужна печатная форма для человека, а не данные для системы, используйте «Файл» → «Сохранить как» из печатной формы (PDF, Excel, HTML). Если цель — передача в банк или ФНС, чаще применяются специализированные форматы выгрузки, встроенные в конфигурацию («1С-Отчётность», обмен с банками).

Учитывайте и ограничения объёма: выгрузка сотен тысяч документов одним XML-файлом может занять много времени и памяти. В таких случаях данные делят на порции по периодам или организациям либо используют потоковые механизмы обмена.

Сравнение способов выгрузки

Обработка «Выгрузка и загрузка данных XML»

Быстро и без программирования; подходит только для идентичных конфигураций

План обмена

Надёжен для регулярного обмена; требует предварительной настройки узлов

Универсальный обмен по правилам

Гибкий перенос между разными конфигурациями; нужны готовые правила конвертации

Программная запись XML

Полный контроль над структурой файла; требует навыков разработки и тестирования

Часто задаваемые вопросы

Можно ли сохранить документ в XML прямо из формы документа?

В типовых конфигурациях прямой кнопки «Сохранить в XML» в форме документа обычно нет. Из формы доступно сохранение печатной формы (PDF, Excel). Для выгрузки данных документа в XML используют обработки выгрузки, планы обмена или программный код.

Чем отличается XML-выгрузка от сохранения печатной формы?

XML содержит данные документа в машиночитаемом виде — реквизиты, ссылки, табличные части — и предназначен для загрузки в другую систему. Печатная форма — это визуальное представление для человека; восстановить из неё данные документа автоматически нельзя.

Загрузится ли XML-файл в базу с другой конфигурацией?

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

Что делать, если файл выгрузился, но кириллица не читается?

Проверьте кодировку файла: стандартом является UTF-8. Откройте файл в редакторе, который позволяет явно выбрать кодировку, и при необходимости пересохраните. При программной выгрузке указывайте кодировку в параметрах метода открытия файла.

Как выгрузить не один документ, а все за период?

В обработке «Выгрузка и загрузка данных XML» установите период выгрузки и отметьте нужный вид документов — выгрузятся все документы за указанный интервал. Для больших объёмов разбивайте выгрузку на несколько файлов по месяцам или кварталам.

Итог

Что важно запомнить

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