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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если в конфигурации настроена подсистема обмена электронными документами (БЭД), выгрузить XML электронного документа можно прямо из карточки документа. Откройте документ, перейдите по ссылке «ЭДО» (или «Электронные документы») в командной панели, найдите нужный электронный документ и используйте команду «Выгрузить в файл» / «Сохранить на диск».

Файл будет сформирован в утверждённом ФНС формате — например, для УПД это XML по приказу ФНС с установленной структурой и именем файла, включающим ИНН участников и идентификатор документа. Такой файл принимают операторы ЭДО и налоговые органы.

Если подсистема ЭДО не используется, счёт-фактуру в XML можно сформировать из печатной формы: откройте печатную форму документа и проверьте наличие кнопки «Выгрузить» — в типовых решениях для счетов-фактур и УПД она формирует файл в формате, утверждённом для представления в налоговые органы.

Сохранение печатной формы документа в XML

Табличный документ (печатную форму) 1С умеет сохранять в нескольких форматах, включая XML. Откройте печатную форму документа, затем выполните «Файл → Сохранить копию» (в некоторых версиях платформы — «Сохранить как») и в поле «Тип файла» выберите формат XML-документа.

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

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

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

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

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

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

Разовый перенос между базами 1С. Требует файла правил обмена; не подходит для передачи контрагентам.

Выгрузка из подсистемы ЭДО

Юридически значимые документы в формате ФНС. Работает только при настроенном обмене электронными документами.

Сохранение печатной формы в XML

Быстро и без настройки, но содержит только внешний вид документа, а не объект базы.

План обмена / синхронизация

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

Программная выгрузка

Произвольная структура XML для интеграций. Требует навыков программирования на встроенном языке 1С.

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

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

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

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

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

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

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

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

Файл открывается без ошибок парсинга
Норма

Браузер показывает дерево элементов XML

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

Сообщение об ошибке разбора — файл обрезан или повреждён

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

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

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

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

Полнота данных
Норма

В файле есть шапка, табличные части и суммы документа

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

Отсутствуют строки или итоговые суммы

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

Документ создаётся и проводится в копии базы

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

Ошибки «объект не найден», дубли контрагентов

Типичные ошибки
01
Выгрузка без правил обмена между разными конфигурациями — файл создаётся, но не загружается в приёмник.
02
Забытая догрузка связанных объектов — в приёмнике появляются битые ссылки на контрагентов и номенклатуру.
03
Редактирование XML в Word или Excel — файл ломается из-за изменения кодировки и служебных символов.
04
Выгрузка печатной формы вместо объекта — контрагент получает «картинку», а не машиночитаемый документ.
05
Передача XML электронного документа без файла подписи — документ не имеет юридической силы.

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

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

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

Итог

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

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

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

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

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

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

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

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

Документ ссылается на элементы справочников (контрагентов, договоры, номенклатуру), которых нет в базе-приёмнике. Включите режим «выгружать при необходимости» или заранее перенесите связанные справочники.

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

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

Подойдёт ли XML из 1С для сдачи отчётности в ФНС?

Только если файл сформирован в утверждённом ФНС формате — например, выгрузка счёта-фактуры или УПД через штатную кнопку «Выгрузить» или из подсистемы ЭДО. Произвольный XML из универсальной обработки налоговая не примет.

Что делать, если XML-файл не открывается или содержит кракозябры?

Проверьте кодировку: файл должен быть в UTF-8. Откройте его в Notepad++ или браузере, а не в Word. Если файл повреждён при передаче (например, обрезан почтой), повторите выгрузку и передачу архивом.