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

Администрирование · 12 мин

Как в 1С сделать выгрузку в XML

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

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

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

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

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

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

Планы обмена используются для регулярного обмена: они отслеживают изменённые объекты и формируют XML-сообщения автоматически. Механизм EnterpriseData применяется для обмена с внешними системами (сайты, CRM, WMS) по стандартизированному формату. Программная выгрузка через «ЗаписьXML» и XDTO нужна, когда требуется нестандартная структура файла — например, для загрузки в стороннюю систему с собственной схемой.

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

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

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

Планы обмена

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

EnterpriseData

Обмен с внешними системами по типовому формату. Работает не во всех конфигурациях.

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

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

Выгрузка через типовую обработку «Выгрузка и загрузка данных XML»

Это самый распространённый сценарий. В типовых конфигурациях на управляемых формах (1С:Бухгалтерия, Управление торговлей, ERP) обработка встроена: откройте раздел «Администрирование» → «Обслуживание» → «Выгрузка и загрузка данных» или «Перенос данных». В некоторых конфигурациях путь отличается — ищите пункт «Выгрузка данных» в разделе «Администрирование».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для сериализации объектов 1С «как есть» применяется функция «ЗаписатьJSON»/XDTO-сериализация или объект «СериализаторXDTO»: он преобразует объект конфигурации в XML с сохранением типов платформы. Такой файл читается обратно через «ПрочитатьXML» только в 1С — для сторонних систем он не подходит из-за специфических пространств имён.

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

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

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

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

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

Открытие файла в браузере
Норма

Дерево элементов отображается без ошибок парсинга

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

Сообщение об ошибке XML, обрыв структуры

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

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

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

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

Загрузка в тестовую базу
Норма

Объекты создаются, ссылки не битые

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

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

Количество объектов
Норма

Совпадает с числом выгруженных по протоколу обработки

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

Часть объектов отсутствует без сообщений об ошибках

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

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

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

Ограничения и альтернативы

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

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

Итог

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

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

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

Можно ли выгрузить в XML данные из базы с одной конфигурацией и загрузить в другую?

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

Почему файл выгрузки получился пустым или очень маленьким?

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

Чем открыть и проверить XML-файл из 1С?

Файл открывается любым браузером или текстовым редактором: браузер покажет структуру дерева и сразу сообщит об ошибке парсинга, если XML повреждён. Для проверки содержимого удобны редакторы с подсветкой XML, а полноценная проверка — тестовая загрузка в копию базы.

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

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

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

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

Что делать, если при загрузке XML возникает ошибка формата?

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