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

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

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

Как выгрузить базу 1С в XML через обработку «Выгрузка и загрузка данных XML», конвертацию данных и встроенные механизмы. Риски, проверка результата, FAQ.

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

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

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

Когда XML-выгрузка подходит, а когда нет

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

XML не подходит для полного резервного копирования: в файл не попадают настройки пользователей, часть служебных данных, а сам процесс выгрузки большой базы занимает значительно время и создаёт нагрузку. Для резервных копий используйте конфигуратор (Администрирование → Выгрузить информационную базу) или штатные средства MS SQL / PostgreSQL.

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

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

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

Подготовка перед выгрузкой

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

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

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

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

Это самый распространённый способ. Обработка входит в поставку многих типовых конфигураций и доступна на диске ИТС; также она есть в составе подсистемы «Инструменты разработчика» и публикуется в типовых дистрибутивах. Работает она в режиме толстого клиента, что важно учитывать: через веб-клиент или тонкий клиент без соответствующих настроек обработка может не запуститься.

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

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

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

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

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

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

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

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

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

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

bsl
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Exchange\output.xml");
Запись.ЗаписатьОбъявлениеXML();
// далее запись объектов через СериализаторXDTO или план обмена
Запись.Закрыть();

Программный способ требует аккуратности: некорректно закрытый файл или прерванная запись дают невалидный XML. Всегда оборачивайте запись в попытку/исключение и проверяйте результат чтением файла обратно.

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

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

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

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

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

Целостность файла
Норма

Файл открывается, есть закрывающий корневой тег

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

Файл обрывается на середине, парсер выдаёт ошибку

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

Число справочников и документов совпадает с источником

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

Часть объектов отсутствует в приёмнике

Движения документов
Норма

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

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

Документы загружены без движений, отчёты пустые

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

Ограничения и безопасная работа

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

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

Итог

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

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

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

Можно ли выгрузить всю базу 1С в один XML-файл?

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

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

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

Обработка не открывается в тонком клиенте. Что делать?

Классическая обработка «Выгрузка и загрузка данных XML» рассчитана на толстый клиент. Запустите базу в режиме толстого клиента либо используйте альтернативные инструменты: планы обмена или встроенные механизмы синхронизации конфигурации.

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

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

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

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

Как проверить XML-файл перед загрузкой в рабочую базу?

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