Документы и Печать · 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Откройте обработку «Универсальный обмен данными в формате XML» через «Файл → Открыть».
- 2На закладке «Выгружаемые данные» укажите файл правил обмена и загрузите правила.
- 3Отметьте нужные типы объектов и задайте отбор: период, организацию, конкретный документ.
- 4Укажите имя файла данных (куда сохранить XML).
- 5Нажмите «Выполнить» и дождитесь окончания выгрузки.
- 6Откройте полученный файл и убедитесь, что он содержит данные документа.
На закладке «Дополнительно» можно включить выгрузку движений документа вместе с самим документом — это важно, если в базе-приёмнике нужны проводки и записи регистров. Без этой опции перенесётся только шапка и табличные части, а движения сформируются при перепроведении в приёмнике.
Выгрузка электронного документа (УПД, счёт-фактура, акт) в XML
Если в конфигурации настроена подсистема обмена электронными документами (БЭД), выгрузить XML электронного документа можно прямо из карточки документа. Откройте документ, перейдите по ссылке «ЭДО» (или «Электронные документы») в командной панели, найдите нужный электронный документ и используйте команду «Выгрузить в файл» / «Сохранить на диск».
Файл будет сформирован в утверждённом ФНС формате — например, для УПД это XML по приказу ФНС с установленной структурой и именем файла, включающим ИНН участников и идентификатор документа. Такой файл принимают операторы ЭДО и налоговые органы.
Если подсистема ЭДО не используется, счёт-фактуру в XML можно сформировать из печатной формы: откройте печатную форму документа и проверьте наличие кнопки «Выгрузить» — в типовых решениях для счетов-фактур и УПД она формирует файл в формате, утверждённом для представления в налоговые органы.
Сохранение печатной формы документа в XML
Табличный документ (печатную форму) 1С умеет сохранять в нескольких форматах, включая XML. Откройте печатную форму документа, затем выполните «Файл → Сохранить копию» (в некоторых версиях платформы — «Сохранить как») и в поле «Тип файла» выберите формат XML-документа.
Учтите ограничение: такой XML содержит оформление и данные табличного документа, а не структуру объекта базы. Он подходит для передачи «картинки» документа или импорта в программы, понимающие этот формат, но не для загрузки в другую базу 1С как полноценного документа.
Выгрузка через типовые обмены и планы обмена
Если обмен между базами выполняется регулярно, разовая выгрузка обработкой неудобна — настройте типовой обмен через план обмена. В разделе «Администрирование → Синхронизация данных» создайте настройку синхронизации с другой программой, укажите правила и отборы. Документы будут выгружаться в XML автоматически по расписанию или по событию записи.
При настройке обратите внимание на режим выгрузки: «выгружать по условию» отправляет только объекты, прошедшие отбор, а «выгружать при необходимости» догружает связанные объекты (контрагентов, договоры, номенклатуру), на которые ссылается документ. Без догрузки ссылок в базе-приёмнике появятся «битые» ссылки вида «<Объект не найден>».
Сравнение способов выгрузки
Разовый перенос между базами 1С. Требует файла правил обмена; не подходит для передачи контрагентам.
Юридически значимые документы в формате ФНС. Работает только при настроенном обмене электронными документами.
Быстро и без настройки, но содержит только внешний вид документа, а не объект базы.
Регулярный автоматический обмен между базами. Требует первоначальной настройки и прав согласования.
Произвольная структура XML для интеграций. Требует навыков программирования на встроенном языке 1С.
Программная выгрузка документа в XML
Когда штатных средств не хватает — нужен свой формат тегов или выгрузка по событию — используют встроенный язык. Простейший вариант для обмена между одинаковыми конфигурациями — сериализация объекта через ЗаписатьXML из глобального контекста с использованием СериализаторXDTO или записи через план обмена. Для произвольной структуры применяют объект ЗаписьXML.
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\Документ.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Документ");
Запись.ЗаписатьАтрибут("Номер", Строка(Док.Номер));
Запись.ЗаписатьАтрибут("Дата", XMLСтрока(Док.Дата));
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();При программной выгрузке внимательно следите за типами данных: даты выгружайте через функцию XMLСтрока(), ссылки на объекты — через уникальные идентификаторы (XMLСтрока(Ссылка)), иначе приёмник не сможет корректно распарсить файл. Для контроля структуры полезно описать схему данных (XSD) и проверять файл через пакет XDTO.
Проверка результата и типичные ошибки
После выгрузки обязательно откройте полученный файл. Минимальная проверка — файл открывается в браузере или текстовом редакторе, начинается с объявления <?xml version="1.0" encoding="UTF-8"?> и содержит ожидаемые данные документа. Для файлов обмена между базами проверка надёжнее всего выполняется пробной загрузкой в копию базы-приёмника.
Как проверить результат
Браузер показывает дерево элементов XML
Сообщение об ошибке разбора — файл обрезан или повреждён
UTF-8, кириллица читается корректно
Кракозябры вместо русских букв
В файле есть шапка, табличные части и суммы документа
Отсутствуют строки или итоговые суммы
Документ создаётся и проводится в копии базы
Ошибки «объект не найден», дубли контрагентов
Ограничения и меры предосторожности
Выгрузка больших объёмов (тысячи документов за длительный период) может занять значительное время и создать файл большого размера. В таких случаях разбивайте выгрузку по периодам или организациям. В клиент-серверном варианте убедитесь, что путь сохранения файла доступен с той стороны (клиент или сервер), где выполняется обработка.
Перед любой загрузкой данных в другую базу сделайте резервную копию приёмника. Помните, что в XML-файле содержатся персональные и коммерческие данные: храните и передавайте файлы по защищённым каналам, а после использования удаляйте лишние копии.
Что важно запомнить
Способ выгрузки выбирается под задачу: универсальная обработка — для переноса между базами, подсистема ЭДО — для юридически значимых документов, сохранение печатной формы — для внешнего вида, программная запись — для интеграций. Результат всегда проверяйте открытием файла и пробной загрузкой в копию базы.
Частые вопросы
Можно ли выгрузить документ в XML без конфигуратора и программирования?
Да. Для переноса между базами достаточно внешней обработки «Универсальный обмен данными в формате XML», для электронных документов — штатной команды выгрузки из подсистемы ЭДО, для печатной формы — команды «Сохранить копию». Прав администратора при этом может не потребоваться, но нужны права на обмен данными.
Чем выгрузка в XML отличается от выгрузки в Excel?
Excel-файл содержит только визуальное представление табличного документа и плохо подходит для машинной обработки. XML сохраняет структуру и типы данных, поэтому его могут читать другие базы 1С, операторы ЭДО и сторонние системы.
Почему при загрузке XML в другую базу появляются «объекты не найдены»?
Документ ссылается на элементы справочников (контрагентов, договоры, номенклатуру), которых нет в базе-приёмнике. Включите режим «выгружать при необходимости» или заранее перенесите связанные справочники.
Как выгрузить сразу много документов за период?
В универсальной обработке задайте отбор по периоду и организации на закладке «Выгружаемые данные» — будут выгружены все документы, попадающие под отбор. Для регулярной массовой выгрузки удобнее настроить план обмена с расписанием.
Подойдёт ли XML из 1С для сдачи отчётности в ФНС?
Только если файл сформирован в утверждённом ФНС формате — например, выгрузка счёта-фактуры или УПД через штатную кнопку «Выгрузить» или из подсистемы ЭДО. Произвольный XML из универсальной обработки налоговая не примет.
Что делать, если XML-файл не открывается или содержит кракозябры?
Проверьте кодировку: файл должен быть в UTF-8. Откройте его в Notepad++ или браузере, а не в Word. Если файл повреждён при передаче (например, обрезан почтой), повторите выгрузку и передачу архивом.