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

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

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

Способы выгрузки документа из 1С 8 в XML: стандартная обработка, универсальный обмен данными, выгрузка по правилам и через код. Ошибки, проверка результата, FAQ.

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

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

Какие способы выгрузки XML существуют в 1С 8

Платформа 1С:Предприятие 8 предоставляет несколько независимых механизмов формирования XML-файлов. Первый — универсальный обмен данными по правилам конвертации, который сохраняет объект вместе со ссылочной структурой и подходит для переноса между базами. Второй — выгрузка электронных документов (счета-фактуры, УПД, накладные) по утверждённым форматам через подсистему обмена электронными документами. Третий — программная сериализация объекта средствами встроенного языка.

Сравнение вариантов

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

Подходит для переноса документов между базами 1С. Требует файл правил обмена, не формирует XML по внешним форматам (ФНС, банки).

Выгрузка электронного документа (ЭДО)

Даёт XML по утверждённому формату для счетов-фактур, УПД, актов. Работает только для документов, поддерживаемых подсистемой ЭДО в конфигурации.

Программная выгрузка (ЗаписьXML)

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

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

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

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

Порядок действий
  1. 1
    Откройте обработку «Универсальный обмен данными в формате XML» и перейдите на закладку «Выгрузка данных».
  2. 2
    Укажите файл правил обмена (для обмена между одинаковыми конфигурациями подойдут правила, сформированные конвертацией данных; для идентичных баз часто используют выгрузку без конвертации).
  3. 3
    Задайте имя и путь файла выгрузки, например C:\Exchange\document.xml.
  4. 4
    На закладке «Выгружаемые данные» отметьте нужный вид документа и установите отбор по конкретному документу (по ссылке, номеру и дате).
  5. 5
    Нажмите «Выгрузить данные» и дождитесь сообщения об окончании выгрузки.
  6. 6
    Откройте полученный файл в текстовом редакторе и убедитесь, что в нём присутствуют данные документа.

При выгрузке обратите внимание на флажок «Выгружать при необходимости» для связанных объектов: он подтягивает в файл справочники, на которые ссылается документ (контрагента, договор, номенклатуру). Без этих данных документ в базе-приёмнике может загрузиться с пустыми или битными ссылками. Однако чем шире состав выгружаемых по ссылкам объектов, тем больше размер файла и время выгрузки.

Выгрузка электронного документа по формату (УПД, счёт-фактура, накладная)

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

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

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

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

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

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

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

Проверка результата выгрузки

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

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

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

Файл открывается в браузере
Норма

Структура отображается деревом без сообщений об ошибке синтаксиса

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

Браузер сообщает об ошибке разбора XML — файл повреждён или не дописан

Наличие данных документа
Норма

В файле видны номер, дата, реквизиты и строки табличной части

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

Файл есть, но данных документа нет — неверно настроен отбор

Загрузка в базу-приёмник
Норма

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

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

Пустые или битые ссылки — не выгружены связанные объекты

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

Кириллица читается корректно, заявлена UTF-8 или UTF-16

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

Иероглифы вместо русского текста — несовпадение кодировки

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

Типичные ошибки и ограничения

Типичные ошибки
01
Отбор не сработал: выгружается пустой файл или все документы вида вместо одного. Проверяйте настройки отбора перед запуском.
02
Не выгружены связанные справочники: в приёмнике документ загружается с пустыми реквизитами. Включайте выгрузку объектов по ссылкам.
03
Попытка передать XML универсального обмена во внешнюю систему: формат несовместим, файл отклоняется. Используйте ЭДО или программную выгрузку по нужной схеме.
04
Недостаток прав: пользователю недоступны документ или обработка, выгрузка завершается ошибкой. Выполняйте выгрузку под учётной записью с достаточными правами.
05
Правка XML вручную в редакторе без проверки кодировки: файл становится нечитаемым для приёмной стороны.

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

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

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

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

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

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

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

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

Да, если у пользователя есть права на чтение документа и на запуск используемой обработки. Для универсального обмена обычно требуется доступ к внешним обработкам или встроенному инструменту обмена. Если команда недоступна, уточните настройку ролей у администратора базы.

Чем отличается XML универсального обмена от XML электронного документа?

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

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

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

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

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

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

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