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

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

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

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

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

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

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

Определите, что именно нужно сохранить в XML

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

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

Сохранение табличного документа или отчёта в XML

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

В диалоге сохранения укажите имя файла, папку и в поле «Тип файла» выберите вариант с XML. В зависимости от версии платформы доступны форматы «XML-документ» или «Документ XML». Подтвердите сохранение — файл появится в указанной папке.

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

Как сохранить отчёт в XML
  1. 1
    Сформируйте отчёт или откройте печатную форму документа
  2. 2
    Откройте меню «Файл» и выберите «Сохранить как»
  3. 3
    Укажите папку и имя файла
  4. 4
    В поле «Тип файла» выберите XML-формат
  5. 5
    Нажмите «Сохранить» и откройте файл для проверки

Выгрузка документов и справочников через штатные обработки

Для выгрузки объектов базы в типовых конфигурациях предусмотрены встроенные механизмы. В разделе «Администрирование» обычно находятся пункты «Обмен данными», «Выгрузка данных» или «Синхронизация данных». Через них настраивается выгрузка в файл по правилам обмена — на выходе получается XML, пригодный для загрузки в другую базу 1С.

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

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

Программное сохранение объекта в XML через встроенный язык

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

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

Запись = Новый ЗаписьXML;

Запись.ОткрытьФайл("C:\Обмен\Документ.xml");

Запись.ЗаписатьОбъявлениеXML();

ЗаписатьXML(Запись, ДокументСсылка.ПолучитьОбъект());

Запись.Закрыть();

Для произвольных структур данных (не объектов базы) XML формируют вручную: методами ЗаписатьНачалоЭлемента, ЗаписатьАтрибут, ЗаписатьТекст и ЗаписатьКонецЭлемента. Такой подход нужен, когда файл должен соответствовать внешней XSD-схеме с конкретными именами тегов.

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

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

Для регулярного обмена между базами правильнее использовать планы обмена. План обмена регистрирует изменённые объекты, а выгрузка формирует XML-сообщение по правилам конвертации данных. Правила создаются в конфигурации «Конвертация данных» и определяют, какие объекты и реквизиты попадут в файл.

Порядок действий: настройте узел плана обмена, зарегистрируйте нужные объекты (вручную или через отбор), затем выполните выгрузку данных — штатная команда сформирует XML-файл сообщения. Такой файл содержит служебную шапку с информацией об узлах и сами данные в формате правил обмена.

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

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

«Файл → Сохранить как»

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

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

Подходит для переноса объектов между базами с идентичной конфигурацией. Ограничение: структура метаданных баз должна совпадать.

План обмена с правилами конвертации

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

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

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

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

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

Если файл предназначен для загрузки в другую базу 1С, выполните тестовую загрузку на копии. Успешная загрузка без сообщений о несоответствии формата — главный признак корректной выгрузки. Для файлов по внешней схеме (отчётность, банковские форматы) используйте валидатор XSD, если он предоставлен принимающей стороной.

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

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

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

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

Начало файла
Норма

Есть объявление XML и указана кодировка UTF-8

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

Файл начинается с мусорных символов или пуст

Структура тегов
Норма

Браузер открывает файл в виде дерева элементов без ошибок

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

Браузер сообщает об ошибке разбора на конкретной строке

Тестовая загрузка
Норма

Файл загружается в копию базы без сообщений об ошибках

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

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

Кодировка текста
Норма

Кириллические значения читаемы

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

Кракозябры вместо русских букв

FAQ: частые вопросы о сохранении в XML

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

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

Чем отличается XML от формата mxls при сохранении отчёта?

MXL — внутренний формат табличных документов 1С, который сохраняет оформление и открывается только в 1С. XML — текстовый открытый формат, читаемый любыми программами, но при сохранении отчёта в XML структура данных представлена иначе и часть оформления может не переноситься.

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

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

Как сохранить в XML данные по строгой схеме для налоговой или банка?

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

Можно ли автоматизировать сохранение XML по расписанию?

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

Файл XML очень большой и не открывается. Что делать?

Большие выгрузки (сотни мегабайт) тяжело открываются браузерами и простыми редакторами. Используйте редакторы, работающие с большими файлами, или просматривайте файл фрагментами. Для передачи файл можно сжать в ZIP — XML хорошо сжимается, а многие механизмы обмена 1С умеют работать с архивами.

Итог

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

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