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

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

Как вытащить XML из 1С: рабочие способы выгрузки данных

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

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

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

Прежде чем начинать, уточните, какой именно XML нужен на приёмной стороне: файл в формате EnterpriseData, стандартный формат обмена 1С через правила конвертации, произвольная структура или строго регламентированный XSD-схемой документ. От этого зависит, хватит ли типовых средств или потребуется доработка.

Определяем, какой XML вам нужен

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

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

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

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

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

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

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

Универсальный обмен данными по правилам конвертации

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

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

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

Выгрузка регламентных XML для налоговой, банка и контрагентов

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

Для обмена с банками (платёжные поручения, выписки) используется раздел «Обмен с банком» или DirectBank: файл выгружается через команду «Отправить в банк» с сохранением на диск. Для электронных документов контрагентам — счетов-фактур, УПД, актов — применяется подсистема ЭДО: там XML формируется автоматически по формату, согласованному с оператором ЭДО.

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

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

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

Запись = Новый ЗаписьXML;

Запись.ОткрытьФайл("C:\Export\nomenclature.xml");

Запись.ЗаписатьОбъявлениеXML();

Запись.ЗаписатьНачалоЭлемента("Номенклатура");

Выборка = Справочники.Номенклатура.Выбрать();

Пока Выборка.Следующий() Цикл

Запись.ЗаписатьНачалоЭлемента("Товар");

Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код));

Запись.ЗаписатьАтрибут("Наименование", Выборка.Наименование);

Запись.ЗаписатьКонецЭлемента();

КонецЦикла;

Запись.ЗаписатьКонецЭлемента();

Запись.Закрыть();

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

При программной выгрузке всегда явно указывайте кодировку файла. Большинство внешних систем ожидают UTF-8, а запись в ANSI приводит к «кракозябрам» в кириллице на приёмной стороне. Проверяйте первые строки файла после выгрузки.
ПЗ
Практическое замечание

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

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

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

Признак правильно настроенного обмена: в базе-приёмнике появляются только новые и изменённые объекты, номер принятого сообщения в плане обмена растёт, а в журнале регистрации нет ошибок загрузки.

Сравнение вариантов

Выгрузка и загрузка данных XML

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

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

Для переноса между разными конфигурациями. Ограничение: нестандартные реквизиты требуют доработки правил.

Регламентные формы выгрузки

Для отчётности, банка, ЭДО. Ограничение: формат фиксирован, изменить структуру нельзя.

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

Для любых нестандартных форматов и автоматизации. Ограничение: требует навыков программирования на встроенном языке.

Планы обмена / EnterpriseData

Для регулярной синхронизации и интеграций. Ограничение: требует первоначальной настройки узлов обмена.

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

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

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

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

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

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

Структура XML отображается без ошибок парсинга

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

Ошибка «invalid token» или пустой файл — выгрузка оборвалась

Кириллица в файле
Норма

Наименования читаются корректно

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

Символы вида «РќРѕРјРµРЅРєР» — неверная кодировка

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

Совпадает с числом записей в базе по отбору

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

Объектов меньше — проверяйте отборы и права доступа

Протокол загрузки в приёмнике
Норма

Все объекты загружены, ошибок нет

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

Есть отказы — смотрите причину по каждому объекту

Часто задаваемые вопросы

Как выгрузить один конкретный документ в XML, а не всю базу?

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

Чем открыть и посмотреть выгруженный XML-файл?

Любой браузер (Chrome, Edge) отобразит структуру файла с подсветкой. Для больших файлов удобнее Notepad++ или Visual Studio Code. Если файл не открывается с ошибкой парсинга — выгрузка, скорее всего, оборвалась, и файл нужно формировать заново.

Почему XML-файл из 1С не загружается в другую базу 1С?

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

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

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

Как выгрузить XML для сайта на 1С-Битрикс?

Используйте типовой модуль обмена с сайтом: в «Управлении торговлей» и «УНФ» это узел обмена «Обмен с сайтом», который формирует файлы в формате CommerceML (XML). Выгрузка запускается вручную или по расписанию, на стороне сайта файлы принимает штатный компонент Битрикса.

Опасно ли выгружать XML из рабочей базы?

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

Итог

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

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