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

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

Как сохранить данные из 1С в XML

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

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

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

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

Какие задачи решает выгрузка в XML и какой способ выбрать

Прежде чем выгружать, определите назначение файла. Для переноса данных между одинаковыми конфигурациями подходит универсальная обработка выгрузки/загрузки XML — она сохраняет объекты со всеми ссылками. Для обмена между разными конфигурациями (например, из УТ в Бухгалтерию) используются правила конвертации и обработка «Универсальный обмен данными в формате XML».

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

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

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

Нужно перенести данные между базами одной конфигурацииИспользуйте обработку «Выгрузка и загрузка данных XML»
Базы разных конфигураций (УТ → БП и т.п.)Применяйте «Универсальный обмен данными в формате XML» с правилами конвертации
Нужен файл для налоговой, ПФР или ЭДОВыгружайте штатной кнопкой из отчёта или документа
Файл нужен для сайта или внешней системыПишите выгрузку кодом через ЗаписьXML или XDTO

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

Это стандартный инструмент для переноса данных между информационными базами с идентичной структурой. В типовых конфигурациях на управляемых формах обработка находится в разделе «Администрирование» → «Обмен данными» → «Выгрузка и загрузка данных». Если её нет в интерфейсе, файл обработки можно открыть через «Файл» → «Открыть» — она входит в поставку конфигурации и доступна на диске ИТС.

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

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

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

Выгрузка документов и отчётов штатными средствами

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

Файл такого типа нельзя формировать универсальной обработкой: у него строгая структура, обязательные реквизиты и контрольные суммы. Если при выгрузке появляются ошибки форматно-логического контроля, сначала исправьте данные в самом документе (ИНН, КПП, коды), а затем выгружайте повторно.

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

Выгрузка всей базы через конфигуратор

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

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

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

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

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

Для сериализации объектов целиком удобнее глобальный контекст: функция ЗаписатьXML(Запись, Объект) сохраняет любой объект базы (элемент справочника, документ) со всеми реквизитами и табличными частями в формате, который потом читается функцией ПрочитатьXML. Это быстрый способ сделать собственную выгрузку без описания структуры.

Для обмена со сторонними системами по согласованной схеме применяют механизм XDTO: структура файла описывается схемой (пакетом XDTO), а платформа сама контролирует типы и обязательность полей. Это снижает риск сформировать файл, который приёмная сторона не сможет разобрать.

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

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

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

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

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

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

Данные отображаются деревом элементов

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

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

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

UTF-8, русский текст читается

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

Крякозябры — файл открыт не в той кодировке или записан неверно

Пробная загрузка в копию базы
Норма

Объекты загружены, ссылки не битые

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

«Объект не найден» — не выгружены связанные справочники

Размер файла
Норма

Соизмерим с объёмом выгружаемых данных

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

Пустой или подозрительно маленький файл при большом отборе

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

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

XML — не единственный и не всегда оптимальный формат. Для обмена с веб-сервисами и сайтами чаще удобнее JSON: в платформе есть объекты ЗаписьJSON/ЧтениеJSON, а файл получается компактнее. Для выгрузки табличных данных в Excel подходит CSV или сохранение табличного документа в xlsx. Для регулярного обмена между базами 1С эффективнее настроить план обмена или EnterpriseData вместо ручных выгрузок.

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

Сравнение вариантов выгрузки

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

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

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

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

Штатная выгрузка из отчёта/документа

Отчётность и ЭДО в регламентированном формате; не годится для переноса данных

Файл .dt через конфигуратор

Полная копия базы; требует монопольного режима, загрузка стирает текущие данные

Программная выгрузка (ЗаписьXML, XDTO)

Любой формат и расписание; требует навыков разработки

Итог

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

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

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

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

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

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

Штатные кнопки выгрузки отчётов и документов доступны обычным пользователям. Универсальные обработки обмена и выгрузка .dt требуют права администрирования и, в случае .dt, монопольного доступа к базе.

Почему загруженный XML-файл даёт ошибку «Объект не найден»?

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

Как выгрузить в XML по расписанию?

Создайте регламентное задание, которое вызывает процедуру программной выгрузки через ЗаписьXML, и настройте расписание в разделе «Администрирование» → «Регламентные и фоновые задания». В файловой базе фоновые задания выполняются только при запущенном сеансе с соответствующей настройкой.

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

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

Какой формат выбрать для обмена с сайтом — XML или JSON?

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