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

Разработка и Конфигурация · 10 мин

Как создать XML-файл для 1С

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

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

Создать файл можно тремя путями: вручную в текстовом редакторе (подходит для простых структур и тестов), средствами платформы 1С (объекты ЗаписьXML, XDTO, универсальная выгрузка) или через типовые механизмы обмена (EnterpriseData, правила конвертации). Выбор зависит от того, кто будет читать файл: другая база 1С, сторонняя программа или контролирующий орган с жёсткой XSD-схемой.

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

Что должно быть внутри XML-файла для 1С

Любой XML-документ начинается с объявления версии и кодировки, за которым следует единственный корневой элемент. Внутри него располагаются вложенные элементы с данными. Для 1С критичны три вещи: кодировка UTF-8 (иногда UTF-16 для старых механизмов), строгое соблюдение вложенности тегов и корректное экранирование спецсимволов (&, <, >, кавычки).

Минимальный пример файла с одним контрагентом:

<?xml version="1.0" encoding="UTF-8"?>

<Данные>

<Контрагент>

<Наименование>ООО Ромашка</Наименование>

<ИНН>7701234567</ИНН>

<КПП>770101001</КПП>

</Контрагент>

</Данные>

Обратите внимание: русские имена тегов допустимы, но работают только если принимающая сторона их понимает. Для обмена с внешними системами чаще используют латинские имена элементов и пространства имён (атрибут xmlns), а формат файла строго описан XSD-схемой.

Способ 1. Создать XML вручную в текстовом редакторе

Ручное создание оправдано для тестовых файлов, небольших прайсов или когда нужно один раз сформировать файл по образцу. Подойдёт любой редактор, сохраняющий в UTF-8: Notepad++, Visual Studio Code, встроенный текстовый редактор 1С. Обычный Блокнот Windows тоже справится, но в нём легко случайно сохранить файл в ANSI — и кириллица при загрузке превратится в нечитаемые символы.

Порядок действий простой: создайте новый файл, впишите объявление <?xml version="1.0" encoding="UTF-8"?>, добавьте корневой элемент и заполните данные по образцу принимающей системы. Сохраните файл с расширением .xml, явно выбрав кодировку UTF-8 в диалоге сохранения.

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

Способ 2. Программная выгрузка через ЗаписьXML

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

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

Запись.ОткрытьФайл("C:\Обмен\контрагенты.xml", "UTF-8");

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

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

Выборка = Справочники.Контрагенты.Выбрать();

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

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

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

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

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

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

Запись.ЗаписатьТекст(Выборка.ИНН);

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

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

КонецЦикла;

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

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

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

Способ 3. XDTO и типовые механизмы обмена

Для обмена между двумя базами 1С или с системами, где есть XSD-схема, удобнее механизм XDTO: данные сериализуются по модели, и платформа сама следит за типами, порядком элементов и обязательностью полей. Это исключает целый класс ошибок ручной записи.

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

Какой способ выбрать

Ручное создание в редакторе

Подходит для разовых тестовых файлов и простых структур. Не масштабируется и не защищён от опечаток.

ЗаписьXML во встроенном языке

Подходит для регулярных выгрузок произвольной структуры. Требует программирования и самостоятельного контроля формата.

XDTO по схеме

Подходит, когда есть XSD-схема принимающей системы. Гарантирует соответствие структуры, но требует понимания фабрики XDTO.

Типовые механизмы обмена

Подходят для обмена между конфигурациями 1С. Минимум кода, но ограничены предопределёнными форматами.

Проверка файла перед загрузкой

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

Далее — соответствие формату. Если у принимающей системы есть XSD-схема, проверьте файл валидатором (онлайн-сервисы проверки XML по XSD или встроенные средства 1С через ЧтениеXML с проверкой). Наконец, сделайте пробную загрузку на копии базы или тестовом контуре и сверьте итоговые данные с источником: количество записей, ключевые суммы, даты.

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

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

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

Дерево элементов отображается без сообщений об ошибке

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

Браузер показывает ошибку разбора с номером строки

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

Кириллица читается, в объявлении указан UTF-8

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

Крякозябры или вопросительные знаки вместо русских букв

Пробная загрузка
Норма

Все записи загружены, суммы и даты совпадают с источником

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

Часть записей пропущена, даты смещены или пустые

Соответствие схеме
Норма

Валидатор подтверждает соответствие XSD

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

Ошибки обязательных элементов или неверных типов

Типичные ошибки и как их избежать

Самая частая проблема — кодировка. Файл сохранён в Windows-1251, а в объявлении написано UTF-8: при загрузке русские наименования превращаются в мусор или файл вообще не читается. Второе место занимают незакрытые теги и опечатки в именах элементов — XML чувствителен к регистру, <ИНН> и <Инн> — разные элементы.

Третья группа ошибок — смысловые: даты в российском формате, запятые в числах, неэкранированные амперсанды в наименованиях компаний («Иванов & Партнёры» при ручной сборке строкой, а не через ЗаписьXML). Наконец, при загрузке справочников в 1С часто забывают про уникальность: без ИНН, кода или GUID принимающая база создаст дубли контрагентов при повторной загрузке.

Типичные ошибки
01
Сохранение файла в ANSI вместо UTF-8 — кириллица портится при загрузке
02
Формирование XML склейкой строк вместо ЗаписьXML — спецсимволы не экранируются, файл ломается на первом амперсанде
03
Даты в формате ДД.ММ.ГГГГ — принимающая система не распознаёт значения
04
Отсутствие уникального ключа у записей — повторная загрузка создаёт дубли в справочниках
05
Загрузка сразу в рабочую базу без теста — ошибки приходится исправлять вручную по живым данным
Итог

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

Корректный XML для 1С — это UTF-8, закрытые теги, стандартные форматы дат и чисел, а также соответствие ожиданиям принимающей системы. Для разовых файлов достаточно редактора, для регулярных выгрузок — ЗаписьXML или XDTO, для обмена между типовыми конфигурациями — штатные механизмы. Всегда проверяйте файл на тестовой базе перед рабочей загрузкой.

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

В какой кодировке сохранять XML для 1С?

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

Можно ли создать XML для 1С в Excel?

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

Чем открыть и проверить XML-файл без 1С?

Достаточно браузера: Chrome или Edge покажут дерево элементов и укажут строку с синтаксической ошибкой. Для проверки по XSD-схеме используются онлайн-валидаторы или редакторы с поддержкой схем, например Visual Studio Code с расширениями для XML.

Почему 1С не загружает мой файл, хотя он открывается в браузере?

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

Как выгрузить данные из 1С в XML без программирования?

В типовых конфигурациях есть встроенные механизмы: синхронизация данных, обработка «Универсальный обмен данными в формате XML», выгрузка отчётности. Многие списки и отчёты также можно сохранить в файл штатной командой сохранения, хотя формат при этом будет табличным, а не обменным.

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

Да. Файл из непроверенного источника может содержать некорректные данные, которые создадут дубли справочников или испортят документы. Всегда делайте резервную копию базы и сначала выполняйте пробную загрузку на копии, сверяя результат с ожидаемым.