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