Администрирование · 11 мин
Как сохранить данные из 1С в XML
Как сохранить данные из 1С в XML: выгрузка документов, справочников и базы через стандартную обработку, конфигуратор и код. Ошибки, проверка результата, FAQ.
Формат XML в 1С используется повсеместно: для обмена между базами, переноса данных в другие программы, отправки отчётности в контролирующие органы и резервного копирования отдельных объектов. Способ сохранения зависит от задачи — разово выгрузить документ, перенести справочник между базами или получить файл в строго заданном формате для внешней системы.
В типовых конфигурациях (Бухгалтерия, Управление торговлей, ЗУП) большинство сценариев решается штатными средствами без программирования: универсальная обработка выгрузки, встроенные команды обмена и печатные формы с выгрузкой в XML. Для нестандартных задач потребуется конфигуратор или внешняя обработка.
Ниже разобраны основные способы: от простой выгрузки документа до выгрузки всей информационной базы, а также проверка результата и типичные ошибки, из-за которых файл не открывается или не загружается обратно.
Какие задачи решает выгрузка в XML и какой способ выбрать
Прежде чем выгружать, определите назначение файла. Для переноса данных между одинаковыми конфигурациями подходит универсальная обработка выгрузки/загрузки XML — она сохраняет объекты со всеми ссылками. Для обмена между разными конфигурациями (например, из УТ в Бухгалтерию) используются правила конвертации и обработка «Универсальный обмен данными в формате XML».
Для отчётности и взаимодействия с госорганами формат файла жёстко регламентирован — такие XML формируются только штатными кнопками выгрузки в отчётах и документах, а не универсальными обработками. Для интеграции со сторонними системами (сайт, CRM) обычно пишут собственную выгрузку через объекты XDTO или потоковую запись XML.
Как выбрать способ выгрузки
Выгрузка данных обработкой «Выгрузка и загрузка данных XML»
Это стандартный инструмент для переноса данных между информационными базами с идентичной структурой. В типовых конфигурациях на управляемых формах обработка находится в разделе «Администрирование» → «Обмен данными» → «Выгрузка и загрузка данных». Если её нет в интерфейсе, файл обработки можно открыть через «Файл» → «Открыть» — она входит в поставку конфигурации и доступна на диске ИТС.
Порядок работы: отметьте в дереве метаданных нужные объекты (справочники, документы, регистры), при необходимости настройте отбор по периоду или организации, укажите имя файла и нажмите «Выгрузить данные». Обработка сохраняет объекты вместе со ссылками, поэтому при загрузке в пустую базу связи между элементами восстановятся корректно.
Важная особенность: выгружать стоит не только сами документы, но и все связанные справочники — контрагентов, номенклатуру, договоры. Иначе при загрузке в другую базу ссылки превратятся в «битые» (объект не найден). В обработке есть опция автоматической выгрузки связанных объектов — включите её, если не уверены в полноте отбора.
- 1Откройте «Администрирование» → «Обмен данными» → «Выгрузка и загрузка данных»
- 2Отметьте нужные объекты метаданных в дереве
- 3Настройте отбор: период, организация, конкретные элементы
- 4Включите выгрузку связанных объектов при необходимости
- 5Укажите путь и имя файла, нажмите «Выгрузить данные»
- 6Откройте полученный файл в браузере или редакторе и убедитесь, что он не пустой
Выгрузка документов и отчётов штатными средствами
Многие документы и отчёты в типовых конфигурациях имеют собственную команду выгрузки в XML. Например, регламентированные отчёты в 1С:Бухгалтерии выгружаются кнопкой «Выгрузить» прямо из формы отчёта — программа сформирует файл в формате, утверждённом ФНС, с проверкой по контрольным соотношениям. Счета-фактуры и УПД выгружаются в формате электронного документа через подсистему ЭДО.
Файл такого типа нельзя формировать универсальной обработкой: у него строгая структура, обязательные реквизиты и контрольные суммы. Если при выгрузке появляются ошибки форматно-логического контроля, сначала исправьте данные в самом документе (ИНН, КПП, коды), а затем выгружайте повторно.
Для печатных форм доступен другой вариант: «Файл» → «Сохранить как» из табличного документа позволяет сохранить результат в XML-формате табличного документа, но такой файл пригоден только для открытия в самой 1С, а не для обмена с внешними системами.
Выгрузка всей базы через конфигуратор
Если нужно сохранить базу целиком — для архива, переноса на другой сервер или перед опасным обновлением — используется выгрузка в файл .dt через конфигуратор: меню «Администрирование» → «Выгрузить информационную базу». Внутри файла .dt данные хранятся в структуре, основанной на XML, и загружаются обратно командой «Загрузить информационную базу».
Выгрузка .dt выполняется в монопольном режиме: все пользователи должны выйти из базы. Для файловых баз достаточно закрыть сеансы, для клиент-серверных — завершить соединения через консоль кластера или дождаться, пока администратор установит блокировку. Процесс для больших баз может занять значительное время, а файл получится заметно меньше исходной базы за счёт сжатия.
Программная выгрузка в XML через код
Когда штатных средств не хватает — нужен свой формат, выгрузка по расписанию или передача на сайт — файл формируют кодом на встроенном языке. Базовый инструмент — объект ЗаписьXML: он последовательно пишет элементы и атрибуты в файл или строку.
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\номенклатура.xml", "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Номенклатура");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Запись.ЗаписатьНачалоЭлемента("Товар");
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код));
Запись.ЗаписатьТекст(Выборка.Наименование);
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();Для сериализации объектов целиком удобнее глобальный контекст: функция ЗаписатьXML(Запись, Объект) сохраняет любой объект базы (элемент справочника, документ) со всеми реквизитами и табличными частями в формате, который потом читается функцией ПрочитатьXML. Это быстрый способ сделать собственную выгрузку без описания структуры.
Для обмена со сторонними системами по согласованной схеме применяют механизм XDTO: структура файла описывается схемой (пакетом XDTO), а платформа сама контролирует типы и обязательность полей. Это снижает риск сформировать файл, который приёмная сторона не сможет разобрать.
При выгрузке больших объёмов кодом не собирайте XML в одну строку в памяти — пишите сразу в файл через ЗаписьXML. Иначе на сотнях тысяч объектов сеанс может завершиться по нехватке памяти, а файл окажется обрезанным.
Проверка результата и типичные ошибки
После выгрузки обязательно проверьте файл до его передачи или загрузки. Минимальная проверка: файл не нулевого размера, открывается в браузере или текстовом редакторе без ошибки разбора, начинается с объявления XML и корневого элемента. Пробная загрузка в копию базы — самый надёжный способ убедиться, что данные переносятся корректно.
Как проверить результат
Данные отображаются деревом элементов
Ошибка разбора XML — файл обрезан или повреждён
UTF-8, русский текст читается
Крякозябры — файл открыт не в той кодировке или записан неверно
Объекты загружены, ссылки не битые
«Объект не найден» — не выгружены связанные справочники
Соизмерим с объёмом выгружаемых данных
Пустой или подозрительно маленький файл при большом отборе
Ограничения и альтернативы XML
XML — не единственный и не всегда оптимальный формат. Для обмена с веб-сервисами и сайтами чаще удобнее JSON: в платформе есть объекты ЗаписьJSON/ЧтениеJSON, а файл получается компактнее. Для выгрузки табличных данных в Excel подходит CSV или сохранение табличного документа в xlsx. Для регулярного обмена между базами 1С эффективнее настроить план обмена или EnterpriseData вместо ручных выгрузок.
У XML-выгрузки есть и практические ограничения: файлы большого объёма медленно формируются и разбираются, а универсальная обработка не переносит данные между конфигурациями с разной структурой метаданных. Если базы различаются, без правил конвертации данных не обойтись.
Сравнение вариантов выгрузки
Перенос между одинаковыми конфигурациями; не подходит для разных баз
Обмен между разными конфигурациями по правилам; требует настройки правил конвертации
Отчётность и ЭДО в регламентированном формате; не годится для переноса данных
Полная копия базы; требует монопольного режима, загрузка стирает текущие данные
Любой формат и расписание; требует навыков разработки
Что важно запомнить
Способ выгрузки выбирается под задачу: обработка обмена — для переноса между одинаковыми базами, штатные кнопки — для отчётности, .dt — для полной копии, код — для произвольных форматов. Всегда проверяйте файл пробной загрузкой в копию и делайте резервную копию перед любой загрузкой в рабочую базу.
Частые вопросы
Чем отличается выгрузка в XML от выгрузки в DT?
XML-обработка выгружает выбранные объекты (справочники, документы) и позволяет переносить часть данных, а файл .dt содержит базу целиком вместе с пользователями и настройками. Загрузка .dt полностью замещает базу, загрузка XML лишь добавляет или обновляет объекты.
Можно ли выгрузить в XML без прав администратора?
Штатные кнопки выгрузки отчётов и документов доступны обычным пользователям. Универсальные обработки обмена и выгрузка .dt требуют права администрирования и, в случае .dt, монопольного доступа к базе.
Почему загруженный XML-файл даёт ошибку «Объект не найден»?
В выгрузку не попали объекты, на которые ссылаются переносимые данные — например, контрагенты или договоры при выгрузке документов. Повторите выгрузку, включив связанные объекты, или выгрузите недостающие справочники отдельно и загрузите их первыми.
Как выгрузить в XML по расписанию?
Создайте регламентное задание, которое вызывает процедуру программной выгрузки через ЗаписьXML, и настройте расписание в разделе «Администрирование» → «Регламентные и фоновые задания». В файловой базе фоновые задания выполняются только при запущенном сеансе с соответствующей настройкой.
Можно ли отредактировать XML-файл вручную перед загрузкой?
Технически да, но рискованно: нарушение структуры, кодировки или ссылок приведёт к ошибке загрузки или к некорректным данным. Если правка необходима, используйте редактор с проверкой синтаксиса XML, сохраняйте файл в UTF-8 и сначала загружайте его в копию базы.
Какой формат выбрать для обмена с сайтом — XML или JSON?
Оба поддерживаются платформой. JSON компактнее и привычнее для веб-разработчиков, XML удобнее, когда структура строго описывается схемой XDTO и требуется валидация типов. Выбор обычно диктуется требованиями принимающей стороны.