Обмен данными в формате XML — неотъемлемая часть работы с 1С:Предприятие. Без корректно сформированных файлов невозможно наладить интеграцию с банками, маркетплейсами, сайтами на Bitrix или WordPress, а также автоматизировать обмен с контрагентами. Однако многие пользователи сталкиваются с проблемами: то структура файла не соответствует требованиям, то кодировка сбивается, то 1С выдаёт ошибку при загрузке. В этой статье разберём, как создать XML-файл для 1С с нуля, избежав типичных ошибок, и рассмотрим практические примеры для разных сценариев обмена.
Сразу отметим: универсального шаблона не существует. Формат файла зависит от версии 1С (8.3, 8.2), конфигурации (УТ 11, БП 3.0, ЗУП 3.1), а также от требований системы, с которой идёт обмен. Например, для Сбербанк Бизнес Онлайн нужна одна структура, а для Wildberries — совсем другая. Но базовые принципы формирования XML остаются неизменными. Далее — пошаговая инструкция с нюансами для разных случаев.
1. Что такое XML-файл для 1С и зачем он нужен
XML (eXtensible Markup Language) — это текстовый формат данных, который используется в 1С для обмена информацией между разными системами. В отличие от .xls или .csv, он позволяет хранить не только табличные данные, но и сложные иерархические структуры: справочники, документы, регистры сведений.
Основные задачи, которые решает XML-обмен в 1С:
- 📦 Импорт/экспорт справочников (номенклатура, контрагенты, сотрудники).
- 💰 Обмен банковскими выписками (1С ↔ Сбербанк, Тинькофф, Альфа-Банк).
- 🛒 Синхронизация с маркетплейсами (Ozon, Wildberries, Яндекс.Маркет).
- 📊 Выгрузка отчётности (ФНС, ПФР, Росстат).
- 🔄 Обмен между базами 1С (например, между УТ и БП).
Преимущество XML перед другими форматами — гибкость. Вы можете задать свою структуру тегов, добавить атрибуты, вложенные элементы. Но это же и минус: если структура файла не соответствует ожиданиям 1С, система откажется его обрабатывать. Например, при выгрузке номенклатуры в Wildberries обязательно наличие тегов <Номенклатура> и <Артикул>, а для Сбербанка — <Документ> с атрибутом Тип="Платёжное поручение".
2. Структура XML-файла для 1С: обязательные элементы
Любой XML-файл для 1С должен соответствовать двум ключевым требованиям:
- Корректный синтаксис: все теги должны быть закрыты, атрибуты — в кавычках, специальные символы — экранированы.
- Соответствие XSD-схеме (если она задана). Например, для обмена с ФНС используется схема
ОФД_1_03.xsd.
Базовая структура файла выглядит так:
<?xml version="1.0" encoding="windows-1251"?>
<КоммерческаяИнформация>
<Классификатор>
<Группы>
<Группа>
<Ид>123</Ид>
<Наименование>Обувь</Наименование>
</Группа>
</Группы>
</Классификатор>
<Каталог>
<Товары>
<Товар>
<Ид>456</Ид>
<Артикул>BOOT-001</Артикул>
<Наименование>Ботинки зимние</Наименование>
</Товар>
</Товары>
</Каталог>
</КоммерческаяИнформация>
Обратите внимание на ключевые моменты:
- 📌 Кодировка: чаще всего используется
windows-1251(для кириллицы), но некоторые системы требуютUTF-8. - 📌 Корневой элемент: обычно это
<КоммерческаяИнформация>(для CommerceML) или<Файл>(для банковских выписок). - 📌 Идентификаторы: каждый элемент должен иметь уникальный
<Ид>.
Перед созданием файла уточните у контрагента или в документации к API требуемую структуру. Например, для Ozon действует своя схема, отличная от Wildberries.
Таблица: Распространённые корневые элементы для разных типов обмена
| Тип обмена | Корневой элемент | Пример использования |
|---|---|---|
| CommerceML (обмен с сайтами) | <КоммерческаяИнформация> |
Выгрузка номенклатуры в Bitrix |
| Банковские выписки | <Файл> или <Документ> |
Импорт платежей из Сбербанк Бизнес Онлайн |
| Обмен с маркетплейсами | <Offer> или <Orders> |
Синхронизация остатков с Ozon |
| Обмен между базами 1С | <DataExchange> |
Перенос справочников из УТ 11 в БП 3.0 |
Если структура файла не соответствует ожидаемой схеме, 1С выдаст ошибку "Недопустимый формат файла" или "Ошибка загрузки XML".
3. Как создать XML-файл для 1С: пошаговая инструкция
Рассмотрим универсальный алгоритм создания файла на примере выгрузки справочника номенклатуры в формате CommerceML 2.0 (самый распространённый стандарт для обмена с сайтами).
Шаг 1. Подготовка данных
Соберите информацию, которую нужно выгрузить:
- 📋 Справочники: номенклатура, группы товаров, свойства.
- 📊 Документы: остатки, цены, заказы (если нужны).
- 🔖 Идентификаторы: уникальные коды для каждого элемента (например,
Ид="123").
Шаг 2. Формирование структуры файла
Используйте следующий шаблон (для CommerceML):
<?xml version="1.0" encoding="windows-1251"?>
<КоммерческаяИнформация ВерсияСхемы="2.08" ДатаФормирования="2026-10-15">
<Классификатор>
<Ид>ВашИдентификатор</Ид>
<Наименование>ВашаКомпания</Наименование>
<Группы>
<Группа>
<Ид>1</Ид>
<Наименование>Обувь</Наименование>
</Группа>
</Группы>
</Классификатор>
<Каталог>
<Товары>
<Товар>
<Ид>1001</Ид>
<Артикул>BOOT-001</Артикул>
<Наименование>Ботинки зимние</Наименование>
<Группы>
<Ид>1</Ид>
</Группы>
</Товар>
</Товары>
</Каталог>
</КоммерческаяИнформация>
Шаг 3. Проверка корректности
Перед загрузкой в 1С обязательно:
- Проверить файл на валидаторе XML.
- Убедиться, что кодировка совпадает с ожидаемой (обычно
windows-1251). - Проверить уникальность всех
<Ид>.
☑️ Проверка XML перед загрузкой в 1С
Шаг 4. Загрузка в 1С
В 1С:Предприятие 8.3 загрузка XML осуществляется через:
- 📂 Файл → Открыть (для ручной загрузки).
- ⚙️ Обработки обмена (например,
УниверсальныйОбменДаннымиXML.epf). - 🤖 Автоматические задачи (через
Регламентные задания).
⚠️ Внимание: Если при загрузке появляется ошибка"Недопустимый символ в кодировке", попробуйте сохранить файл вUTF-8или конвертировать через Notepad++.
4. Примеры XML-файлов для разных задач
Разберём реальные примеры файлов для типовых сценариев.
Пример 1: Выгрузка номенклатуры для сайта (CommerceML)
Файл включает группы товаров и сами товары с характеристиками:
<?xml version="1.0" encoding="windows-1251"?>
<КоммерческаяИнформация ВерсияСхемы="2.08">
<Классификатор>
<Группы>
<Группа>
<Ид>1</Ид>
<Наименование>Электроника</Наименование>
</Группа>
</Группы>
</Классификатор>
<Каталог>
<Товары>
<Товар>
<Ид>1001</Ид>
<Артикул>PHONE-X100</Артикул>
<Наименование>Смартфон X100 128GB</Наименование>
<БазоваяЕдиница>шт</БазоваяЕдиница>
<Группы><Ид>1</Ид></Группы>
</Товар>
</Товары>
</Каталог>
</КоммерческаяИнформация>
Пример 2: Импорт платежных поручений из банка
Структура для загрузки выписки из Сбербанк Бизнес Онлайн:
<?xml version="1.0" encoding="UTF-8"?>
<Файл>
<Документ Тип="Платёжное поручение">
<Номер>12345</Номер>
<Дата>2026-10-15</Дата>
<Сумма>10000.00</Сумма>
<Получатель>
<Наименование>ООО "Ромашка"</Наименование>
<ИНН>1234567890</ИНН>
<Счёт>40702810900000000001</Счёт>
</Получатель>
</Документ>
</Файл>
Пример 3: Обмен заказами с Ozon
Файл для синхронизации заказов с маркетплейсом:
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<Order>
<OrderID>12345678</OrderID>
<OrderDate>2026-10-15T10:00:00</OrderDate>
<Items>
<Item>
<OfferID>PHONE-X100</OfferID>
<Quantity>1</Quantity>
<Price>25000.00</Price>
</Item>
</Items>
</Order>
</Orders>
⚠️ Внимание: Структура файлов для маркетплейсов может меняться. Всегда сверяйтесь с актуальной документацией Ozon или Wildberries.
5. Типичные ошибки при создании XML для 1С и как их избежать
Даже опытные пользователи 1С сталкиваются с проблемами при работе с XML. Вот самые распространённые ошибки и способы их решения:
Ошибка 1: Неправильная кодировка
Симптомы: при открытии файла в 1С появляются ????? вместо кириллицы или ошибка "Недопустимый символ".
Решение:
- 🔄 Сохраните файл в кодировке
windows-1251(через Notepad++ или VS Code). - 📋 Убедитесь, что в первой строке файла указана правильная кодировка:
<?xml version="1.0" encoding="windows-1251"?>.
Ошибка 2: Несоответствие структуры XSD-схеме
Симптомы: 1С выдаёт ошибку "Ошибка проверки схемы XML".
Решение:
- 🔍 Проверьте файл на валидаторе с указанием XSD-схемы.
- 📖 Сверьте структуру с документацией 1С или требованиями контрагента.
Ошибка 3: Дублирование идентификаторов
Симптомы: при загрузке появляется ошибка "Элемент с таким Ид уже существует".
Решение:
- 🔢 Проверить уникальность всех
<Ид>в файле (можно через Excel или Notepad++). - 🔄 Если дубликаты неизбежны (например, при обмене между базами), используйте префиксы:
<Ид>BASE1_1001</Ид>.
Ошибка 4: Отсутствие обязательных тегов
Симптомы: 1С не загружает файл без объяснения причин.
Решение:
- 📋 Уточните у контрагента или в документации список обязательных полей.
- 🔍 Например, для CommerceML обязательны теги
<Ид>,<Наименование>, а для банковских выписок —<Сумма>и<Дата>.
Что делать, если 1С не видит XML-файл?
1. Проверьте расширение файла — оно должно быть именно .xml (иногда Windows скрывает расширения).
2. Убедитесь, что файл не пустой и весит больше 1 КБ.
3. Попробуйте открыть файл через меню "Файл → Открыть" в 1С, а не через обработку обмена.
4. Если используется обработка, проверьте её настройки — возможно, указан неверный путь к файлу.
6. Автоматизация создания XML в 1С
Ручное формирование XML-файлов утомительно и чревато ошибками. К счастью, в 1С есть инструменты для автоматизации:
Способ 1: Встроенные обработки обмена
В большинстве конфигураций (УТ 11, БП 3.0, КА 2.4) есть стандартные обработки:
- 📁 УниверсальныйОбменДаннымиXML.epf — для выгрузки/загрузки справочников и документов.
- 💼 ОбменССайтом.epf — для CommerceML.
- 🏦 ИмпортВыписки.epf — для банковских выписок.
Чтобы их найти:
- Откройте
Файл → Открыть. - Выберите тип файлов
Обработка (*.epf). - Перейдите в папку с шаблонами (обычно
C:\Program Files\1cv8\templates\).
Способ 2: Самостоятельная разработка обработки
Если стандартные обработки не подходят, можно написать свою на встроенном языке 1С. Пример кода для выгрузки справочника номенклатуры:
Процедура ВыгрузитьВXML()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Наименование КАК Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Результат = Запрос.Выполнить();
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\export.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("КоммерческаяИнформация");
ЗаписьXML.ЗаписатьАтрибут("ВерсияСхемы", "2.08");
Пока Результат.Следующий() Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("Товар");
ЗаписьXML.ЗаписатьЭлемент("Ид", Результат.Ссылка.УникальныйИдентификатор());
ЗаписьXML.ЗаписатьЭлемент("Артикул", Результат.Артикул);
ЗаписьXML.ЗаписатьЭлемент("Наименование", Результат.Наименование);
ЗаписьXML.ЗаписатьКонецЭлемента(); // Товар
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); // КоммерческаяИнформация
ЗаписьXML.Закрыть();
КонецПроцедуры
Способ 3: Использование внешних сервисов
Если нет времени разбираться в коде, можно воспользоваться сервисами:
- 🌐 1C-Exchange — облачный сервис для обмена данными.
- 📦 CommerceML Pro — плагин для выгрузки на сайты.
- 🏦 Банковские обработки от 1С-Битрикс — для работы с выписками.
⚠️ Внимание: При использовании сторонних обработок проверяйте их совместимость с вашей версией 1С. Некоторые решения работают только с 1С:Предприятие 8.3.20+.
Автоматизация выгрузки XML экономит время и снижает риск ошибок. Даже простая обработка на встроенном языке 1С может заменить часы ручной работы.
7. Проверка и валидация XML-файла перед загрузкой в 1С
Перед тем как загружать файл в 1С, его необходимо проверить. Вот чек-лист:
Шаг 1: Проверка синтаксиса
Используйте онлайн-валидаторы:
- 🌐 XML Validation — проверяет синтаксис и соответствие XSD.
- 🌐 Code Beautify — подсвечивает ошибки в структуре.
Шаг 2: Проверка кодировки
Откройте файл в Notepad++:
- Нажмите
Кодировки → Преобразовать в ANSI(дляwindows-1251). - Или
Кодировки → Преобразовать в UTF-8 без BOM.
Шаг 3: Проверка структуры
Сравните ваш файл с эталонным шаблоном: