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

Документы и Печать · 11 мин

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

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

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

Выбор способа зависит от задачи. Для разового переноса документа в идентичную базу подходит обработка «Выгрузка и загрузка данных XML». Для регулярного обмена между разными конфигурациями (например, «Управление торговлей» и «Бухгалтерия») используются правила обмена «Конвертации данных». Для интеграции со сторонними системами чаще всего пишут выгрузку кодом с помощью объекта ЗаписьXML.

Важно понимать ограничение: XML-файл, выгруженный одним способом, не всегда можно загрузить другим. Файл обработки «Выгрузка и загрузка данных XML» имеет собственную структуру и читается только этой же обработкой, а файл по правилам «Конвертации данных» — только универсальным обменом данными. Ниже разобраны все рабочие варианты с проверкой результата.

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

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

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

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

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

Как выбрать действие

База-приёмник идентична вашей (та же конфигурация и релиз)Используйте обработку «Выгрузка и загрузка данных XML»
Конфигурации разные, обмен регулярныйНастройте обмен по правилам конвертации данных
Файл нужен сторонней системе по её форматуФормируйте XML программно через ЗаписьXML
Нужно отправить отчётность или ЭДО-документИспользуйте штатные кнопки выгрузки в самой конфигурации

Способ 1. Обработка «Выгрузка и загрузка данных XML»

Это стандартный инструмент переноса данных между идентичными базами. Обработка входит в состав дистрибутива платформы и многих конфигураций, также её можно найти на диске ИТС. Файл обработки обычно называется ВыгрузкаЗагрузкаДанныхXML.epf.

Порядок действий: откройте обработку через меню «Файл → Открыть», перейдите на закладку «Выгрузка», установите флажки напротив нужных типов объектов или используйте отбор. Чтобы выгрузить конкретный документ, включите режим отбора и укажите документ по ссылке — тогда в файл попадёт только он и связанные объекты, отмеченные для выгрузки по ссылкам.

Укажите имя файла выгрузки и нажмите «Выгрузить данные». По завершении обработка сообщит количество выгруженных объектов. Загрузка в базу-приёмник выполняется той же обработкой на закладке «Загрузка».

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

Способ 2. Типовой обмен между конфигурациями

Многие конфигурации содержат встроенные планы обмена и помощники настройки синхронизации. Например, обмен «Управление торговлей — Бухгалтерия» формирует XML-файл по правилам конвертации и передаёт его через каталог, почту или прямое подключение.

Чтобы использовать этот путь, откройте раздел настройки синхронизации данных (в типовых конфигурациях это обычно «Администрирование → Синхронизация данных»), создайте настройку обмена, укажите префикс базы и состав отправляемых данных. При выполнении обмена программа сформирует файл Message_*.xml — это и есть документы в формате XML, упакованные по стандарту EnterpriseData или правилам конвертации.

Ограничение способа: файл привязан к механизму обмена и не предназначен для ручного редактирования или загрузки «чем попало». Но для регулярной передачи документов между базами это самый устойчивый вариант — правила уже проверены разработчиком конфигурации.

Способ 3. Программная выгрузка через ЗаписьXML

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

Типовой приём: создать объект ЗаписьXML, открыть файл методом ОткрытьФайл(), записать объявление XML, корневой элемент, затем пройти по реквизитам документа и табличной части, записывая каждое поле отдельным элементом. Даты и числа приводят к строковому виду, согласованному с приёмником.

bsl
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\Документ.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Документ");
Запись.ЗаписатьНачалоЭлемента("Номер");
Запись.ЗаписатьТекст(Строка(ДокОбъект.Номер));
Запись.ЗаписатьКонецЭлемента();
Запись.ЗаписатьНачалоЭлемента("Дата");
Запись.ЗаписатьТекст(Формат(ДокОбъект.Дата, "ДФ=yyyy-MM-dd"));
Запись.ЗаписатьКонецЭлемента();
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();

Для выгрузки «как есть» без ручного описания полей есть функция ЗаписатьXML(), которая сериализует объект целиком вместе со всеми реквизитами в формате XDTO платформы. Такой файл компактен в создании, но читается только механизмами 1С (ЧтениеXML с возможностью чтения объектов), сторонние системы его обычно не принимают.

Особенности для управляемого и обычного приложения

В конфигурациях на управляемых формах (Бухгалтерия 3.0, УТ 11, ERP) часть обработок и кнопок выгрузки встроена в интерфейс: например, выгрузка счетов-фактур, УПД и других документов для ЭДО выполняется кнопками «Выгрузить» или через подсистему обмена электронными документами. Такие файлы формируются по утверждённым форматам и подходят для отправки оператору.

В обычном приложении (старшее поколение конфигураций на платформе 8.2/8.3 в режиме обычных форм) внешние обработки открываются напрямую через «Файл → Открыть», а в управляемом — могут потребовать подключения через механизм «Дополнительные отчеты и обработки», если запуск внешних файлов ограничен настройками безопасности.

Если при открытии обработки появляется сообщение о запрете интерактивных операций или недостатке прав, потребуются права администратора или роль с доступом к выгрузке данных. В файловой базе это решается настройкой ролей пользователя, в клиент-серверной — дополнительно проверьте права на каталог, куда пишется файл.

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

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

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

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

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

Открытие файла в браузере
Норма

Дерево элементов отображается без ошибок разбора

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

Сообщение об ошибке XML на конкретной строке

Содержимое файла
Норма

Видны номер, дата, суммы и строки документа

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

Файл пустой или содержит только служебные теги

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

Документ появился, проводится, суммы совпадают

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

Ошибки загрузки, дубли объектов, битые ссылки

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

Кириллица читается корректно

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

Крокозябры или знаки вопроса вместо текста

Ограничения и вопросы безопасности

XML-файл с документами содержит коммерчески чувствительные данные: контрагентов, цены, суммы, иногда персональные данные сотрудников. Передавайте файл по защищённым каналам и не выкладывайте в общие папки без контроля доступа.

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

Объёмные выгрузки (десятки тысяч документов) в файловой базе могут занять продолжительное время и заметно нагрузить диск. Для больших переносов разбивайте выгрузку по периодам или используйте клиент-серверный режим и регламентные задания.

Итог

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

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

Частые вопросы

Можно ли открыть XML из 1С в Excel?

Да, если файл имеет плоскую табличную структуру, Excel откроет его как XML-таблицу. Но файл обработки «Выгрузка и загрузка данных XML» имеет сложную вложенную структуру и в Excel читается плохо. Для анализа в Excel лучше формировать отдельную выгрузку кодом или сохранять табличный документ в Excel напрямую.

Чем отличается выгрузка в XML от выгрузки в формате EnterpriseData?

EnterpriseData — это стандартизованный XML-формат фирмы «1С» для обмена между прикладными решениями и сторонними системами. Технически это тоже XML, но с фиксированной структурой тегов. Обычная выгрузка обработкой сохраняет данные во внутреннем формате платформы, понятном только 1С.

Почему при загрузке XML появляется ошибка «Ошибка формата потока»?

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

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

Для открытия внешней обработки обычно достаточно прав на интерактивное открытие внешних отчётов и обработок, но в некоторых конфигурациях этот режим отключён профилем безопасности. Если кнопки выгрузки встроены в конфигурацию (например, выгрузка для ЭДО), они доступны с обычными правами пользователя на документ.

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

В обработке «Выгрузка и загрузка данных XML» отметьте нужный вид документов и задайте отбор по периоду или организации — все отобранные документы попадут в один файл. При программной выгрузке организуйте цикл по выборке документов и записывайте каждый отдельным элементом внутри общего корневого узла.

Сохранятся ли движения документа по регистрам при выгрузке?

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