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

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

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

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

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

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

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

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

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

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

Способ 1. Штатная выгрузка из типовой конфигурации

В типовых решениях на «Библиотеке стандартных подсистем» (БСП) есть встроенная команда выгрузки документов. В «1С:Бухгалтерии 8» и «Управлении торговлей» откройте раздел «Администрирование» и найдите пункт, связанный с обменом данными — обычно это «Синхронизация данных» или «Обмен электронными документами». Если настроен план обмена с другой базой, выгрузка выполняется через сценарий синхронизации: программа сама формирует XML-файл сообщения обмена.

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

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

Выгрузка документа через ЭДО
  1. 1
    Откройте документ и перейдите по ссылке на электронный документ (панель ЭДО).
  2. 2
    В карточке электронного документа выберите команду сохранения файла на диск.
  3. 3
    Укажите папку и сохраните XML-файл.
  4. 4
    Откройте файл в браузере или текстовом редакторе и убедитесь, что реквизиты заполнены.

Способ 2. Универсальный обмен данными в формате XML

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

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

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

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

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

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

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

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

Выгрузка печатных форм и электронных документов

Не путайте выгрузку данных документа с выгрузкой печатной формы. Печатная форма — это табличный документ (накладная, счёт), и её типовые форматы сохранения — PDF, Excel, MXL. XML здесь появляется только в контексте электронного документооборота: когда документ отправляется контрагенту через оператора ЭДО, платформа формирует XML по утверждённому формату (например, универсальный передаточный документ).

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

Какой способ выбрать

Штатная команда / ЭДО

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

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

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

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

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

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

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

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

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

Как проверить выгруженный файл

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

Дерево тегов отображается без ошибок разбора

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

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

Кодировка и спецсимволы
Норма

Русский текст читаем, символы & и < экранированы

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

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

Загрузка в копию базы
Норма

Количество объектов совпадает, ссылки заполнены

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

Битые ссылки, часть документов не загрузилась

Типичные ошибки при выгрузке
01
Выгрузка без связанных справочников — в целевой базе документы загружаются с пустыми контрагентами и номенклатурой.
02
Выгрузка за весь период работы без отборов — файл получается огромным, обработка зависает или падает по памяти.
03
Использование формата обмена 1С для передачи в стороннюю систему — принимающая сторона не может его прочитать.
04
Проверка только факта создания файла без открытия — обрыв выгрузки замечают уже у получателя.

Ограничения и когда привлекать специалиста

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

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

Итог

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

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

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

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

Выгрузка через ЭДО и сохранение электронного документа обычно доступна обычным пользователям с правами на документ. Универсальная обработка и планы обмена требуют расширенных прав — обратитесь к администратору базы, чтобы он выдал роль или выполнил выгрузку.

Чем открыть и посмотреть выгруженный XML-файл?

Для визуального просмотра подойдёт любой браузер или текстовый редактор с подсветкой (Notepad++, Visual Studio Code). Для проверки структуры на соответствие формату используют XSD-схему формата, если она есть, или специализированные программы проверки для отчётных форматов ФНС.

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

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

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

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

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

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

Что делать, если файл получился слишком большим и не загружается?

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