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