Разработка и Конфигурация · 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. Эти механизмы уже содержат согласованную структуру файла и обработку ссылок.
Какой способ выбрать
Подходит для разовых тестовых файлов и простых структур. Не масштабируется и не защищён от опечаток.
Подходит для регулярных выгрузок произвольной структуры. Требует программирования и самостоятельного контроля формата.
Подходит, когда есть XSD-схема принимающей системы. Гарантирует соответствие структуры, но требует понимания фабрики XDTO.
Подходят для обмена между конфигурациями 1С. Минимум кода, но ограничены предопределёнными форматами.
Проверка файла перед загрузкой
Проверка идёт в три этапа. Сначала синтаксис: откройте файл в браузере или редакторе с подсветкой XML — любая непарность тегов будет видна сразу. Затем кодировка: убедитесь, что кириллица читается, а объявление encoding совпадает с фактической кодировкой файла.
Далее — соответствие формату. Если у принимающей системы есть XSD-схема, проверьте файл валидатором (онлайн-сервисы проверки XML по XSD или встроенные средства 1С через ЧтениеXML с проверкой). Наконец, сделайте пробную загрузку на копии базы или тестовом контуре и сверьте итоговые данные с источником: количество записей, ключевые суммы, даты.
Как проверить результат
Дерево элементов отображается без сообщений об ошибке
Браузер показывает ошибку разбора с номером строки
Кириллица читается, в объявлении указан UTF-8
Крякозябры или вопросительные знаки вместо русских букв
Все записи загружены, суммы и даты совпадают с источником
Часть записей пропущена, даты смещены или пустые
Валидатор подтверждает соответствие XSD
Ошибки обязательных элементов или неверных типов
Типичные ошибки и как их избежать
Самая частая проблема — кодировка. Файл сохранён в Windows-1251, а в объявлении написано UTF-8: при загрузке русские наименования превращаются в мусор или файл вообще не читается. Второе место занимают незакрытые теги и опечатки в именах элементов — XML чувствителен к регистру, <ИНН> и <Инн> — разные элементы.
Третья группа ошибок — смысловые: даты в российском формате, запятые в числах, неэкранированные амперсанды в наименованиях компаний («Иванов & Партнёры» при ручной сборке строкой, а не через ЗаписьXML). Наконец, при загрузке справочников в 1С часто забывают про уникальность: без ИНН, кода или GUID принимающая база создаст дубли контрагентов при повторной загрузке.
Что важно запомнить
Корректный 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-файл в рабочую базу?
Да. Файл из непроверенного источника может содержать некорректные данные, которые создадут дубли справочников или испортят документы. Всегда делайте резервную копию базы и сначала выполняйте пробную загрузку на копии, сверяя результат с ожидаемым.