Выгрузка данных о реализации товаров и услуг из 1С:Предприятие в формат XML — стандартная задача для интеграции с внешними системами: маркетплейсами (Ozon, Wildberries), бухгалтерскими сервисами или корпоративными порталами. Без правильной настройки экспорта бизнес рискует получить разногласия в отчётности, ошибки при загрузке на платформы или потерю времени на ручную обработку данных.
В этой статье разберём 5 рабочих способов выгрузки реализации в XML — от встроенных инструментов 1С до программного кода на 1С:Предприятие 8.3. Особое внимание уделим типичным ошибкам (например, неверная кодировка или отсутствие обязательных реквизитов), которые блокируют загрузку файлов на маркетплейсах. Также приведём актуальные примеры структуры XML для Ozon и Wildberries — их можно использовать как шаблоны.
Если вам нужно срочно передать данные контрагенту или загрузить продажи в другую систему — начинайте с раздела «Быстрая выгрузка через универсальный обмен». Для регулярного автоматического экспорта читайте про настройку регламентных заданий или внешние обработки.
1. Подготовка данных перед выгрузкой
Перед тем как формировать XML, проверьте качество исходных данных в 1С. Ошибки в справочниках или документах приводят к тому, что файл либо не формируется, либо содержит некорректную информацию. Например, если в документе РеализацияТоваровУслуг не заполнено поле Контрагент, многие внешние системы отвергнут такой файл.
Что обязательно проверить:
- 📌 Реквизиты контрагентов: ИНН, КПП, адрес — они должны совпадать с данными в ЕГРЮЛ/ЕГРИП. На Wildberries и Ozon при несовпадении ИНН реализация может не пройти модерацию.
- 📦 Номенклатура: все товары должны иметь заполненные артикулы, штрихкоды (если требуется) и корректные единицы измерения. Например, для Ozon обязателен атрибут
barcode. - 💰 Цены и скидки: в документе реализации должны быть указаны конечные цены с учётом всех скидок. Некоторые системы (например, МойСклад) требуют разделённого указания базовой цены и скидки.
- 📅 Даты: документ реализации должен иметь корректную дату — внешние системы часто блокируют файлы с будущими датами.
Проверить заполненность реквизитов контрагентов (ИНН, КПП, адрес)
Убедиться, что у всей номенклатуры есть артикулы и штрихкоды
Проверить конечные цены в документе (с учётом скидок)
Сверить даты документов (не должно быть будущих дат)
Сохранить резервную копию базы (на случай ошибок при выгрузке)-->
Если выгружаете данные для маркетплейсов, сверьтесь с их техническими требованиями. Например, Ozon в 2026 году требует обязательное указание warehouseId (идентификатор склада), а Wildberries — атрибута supplierArticle. Эти поля должны быть заполнены в 1С до формирования XML.
⚠️ Внимание: Если вы используете нетиповую конфигурацию 1С (например, сильно доработанную 1С:УТ 11 или КА 2.5), структура документов может отличаться. Перед выгрузкой проверьте, какие реквизиты доступны в вашей версии, через Конфигуратор → Документы → РеализацияТоваровУслуг.
2. Быстрая выгрузка через универсальный обмен данными
Самый простой способ экспортировать реализацию в XML — использовать встроенный механизм универсального обмена данными. Он доступен в большинстве типовых конфигураций (1С:УТ, 1С:БП, 1С:КА) и не требует программирования.
Пошаговая инструкция:
- Откройте документ
РеализацияТоваровУслуг, который нужно выгрузить. - Нажмите
Ещё → Выгрузить данные(илиФайл → Сохранить какв старых версиях). - В окне выгрузки выберите формат
XML. - Укажите путь для сохранения файла и нажмите
Сохранить.
Если опция Выгрузить данные отсутствует:
- 🔧 Перейдите в
Администрирование → Настройки программы → Обмен данными. - 📋 Включите флаг
Разрешить выгрузку документов в XML. - 🔄 Перезапустите 1С в режиме предприятия.
Преимущества этого метода:
- ✅ Не требует знаний программирования.
- ✅ Подходит для разовых выгрузок.
- ✅ Сохраняет структуру документа 1С в XML.
Недостатки:
- ❌ Формат XML может не подходить для внешних систем (например, маркетплейсов) — потребуется дополнительная обработка.
- ❌ Нет возможности настроить структуру выгружаемых данных (например, исключить ненужные реквизиты).
Универсальный обмен данными
Внешние обработки
Регламентные задания
Самописные скрипты
Ещё не выгружал данные-->
3. Выгрузка через внешние обработки (для типовых конфигураций)
Если универсальный обмен не подходит (например, нужно выгрузить данные в специфичном формате для Ozon или МойСклад), используйте внешние обработки. Многие разработчики публикуют готовые решения на портале 1С:ИТС или Infostart.
Пример популярных обработок:
| Название обработки | Назначение | Совместимость |
|---|---|---|
| Выгрузка реализации в XML для Ozon | Формирует файл по требованиям Ozon Seller (включает артикулы, штрихкоды, цены) | 1С:УТ 11.4, 1С:КА 2.5 |
| Универсальный экспорт в XML/Excel | Гибкая настройка структуры выгружаемых данных (подходит для интеграции с 1С:Документооборот) | 1С:Предприятие 8.3 (любая конфигурация) |
| Выгрузка для Wildberries (FBS/FBO) | Поддерживает формат WB с учетом особенностей схем FBS и FBO |
1С:УТ 11.5, 1С:ERP 2.5 |
Как установить и использовать внешнюю обработку:
- Скачайте файл обработки (обычно имеет расширение
.epfили.erf). - В 1С перейдите в
Файл → Открыть → Выбрать файл обработки. - Запустите обработку и укажите параметры выгрузки:
- 📅 Период документов (например, реализации за последний месяц).
- 📌 Реквизиты для экспорта (контрагенты, номенклатура, цены).
- 📁 Путь сохранения файла.
Выгрузить и дождитесь завершения процесса.⚠️ Внимание: Перед использованием внешней обработки проверьте её совместимость с вашей версией 1С. Некоторые решения написаны для конкретных релизов (например, 1С:УТ 11.4.10.126) и могут не работать в более новых или старых версиях. Если обработка выдаёт ошибку, сверьтесь с её описанием на сайте разработчика.
Пример кода из типовой обработки для выгрузки реализации в XML:
Процедура ВыгрузитьВXML(Документ, ПутьКФайлу)
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ПутьКФайлу);
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");
ЗаписьXML.ЗаписатьАтрибут("Тип", "РеализацияТоваровУслуг");
ЗаписьXML.ЗаписатьАтрибут("Дата", Формат(Документ.Дата, "ДЛФ=DT"));
ЗаписьXML.ЗаписатьАтрибут("Номер", Документ.Номер);
// Выгрузка табличной части
ЗаписьXML.ЗаписатьНачалоЭлемента("Товары");
Для Каждого СтрокаТоваров Из Документ.Товары Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("Товар");
ЗаписьXML.ЗаписатьАтрибут("Артикул", СтрокаТоваров.Номенклатура.Артикул);
ЗаписьXML.ЗаписатьАтрибут("Количество", СтрокаТоваров.Количество);
ЗаписьXML.ЗаписатьАтрибут("Цена", СтрокаТоваров.Цена);
ЗаписьXML.ЗаписатьКонецЭлемента(); // Товар
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); // Товары
ЗаписьXML.ЗаписатьКонецЭлемента(); // Документ
ЗаписьXML.Закрыть();
КонецПроцедуры
4. Автоматическая выгрузка через регламентные задания
Если реализации нужно выгружать регулярно (например, ежедневно в 23:00), настройте регламентное задание. Это избавит от ручного экспорта и снизит риск ошибок из-за человеческого фактора.
Инструкция по настройке:
- Перейдите в
Администрирование → Поддержка и обслуживание → Регламентные задания. - Нажмите
Создатьи выберите тип заданияВыгрузка данных в XML(илиВыполнение обработки, если используете внешнюю обработку). - Укажите параметры:
- 📅 Расписание: ежедневно, еженедельно или по конкретным дням.
- ⏰ Время выполнения: выберите период минимальной нагрузки на базу (например, ночью).
- 📌 Параметры выгрузки: период документов, путь сохранения файла, формат XML.
- Сохраните задание и включите его выполнение.
- 📅 Повторять: Ежедневно.
- ⏰ Время: 01:00 (ночь).
- 🔄 Параметры:
- Период документов:
НачалоДня(ТекущаяДата()) - 1(вчера). - Тип документов:
РеализацияТоваровУслуг. - Формат:
XML. - Путь:
\\Server\Shared\Realization_#Дата#.xml(где#Дата#— маска для подстановки текущей даты).
- Период документов:
- 🔤 Кодировка: всегда указывайте
utf-8в настройках XML, иначе кириллические символы отобразятся некорректно. - 📌 Структура данных: сверяйтесь с XSD-схемой внешней системы (например, Ozon публикует актуальные схемы в личном кабинете продавца).
- 🔄 Обработка ошибок: добавьте проверки на пустые значения (например, если у номенклатуры нет артикула).
- Откройте файл в текстовом редакторе (например, Notepad++) и проверьте:
- 🔤 Все открывающие теги (
<offer>) имеют закрывающие (</offer>). - 📌 Атрибуты указаны в кавычках (
id="123", а неid=123). - 🔢 Числовые значения (цена, количество) записаны через точку (
100.50), а не запятую.
- 🔤 Все открывающие теги (
- Проверьте файл через валидатор (например, XML Validation).
- Если ошибка повторяется — сверьте структуру вашего XML с примером из документации внешней системы.
- 📊 Выгружайте данные порциями: разбейте период на недели или дни. Например, вместо выгрузки реализаций за год экспортируйте их помесячно.
- 🔄 Используйте фоновые задания: в 1С:Предприятие 8.3.20+ доступны механизмы асинхронного выполнения кода, которые не блокируют интерфейс.
- 🗃️ Архивируйте старые документы: перенесите реализации старше 2 лет в отдельную базу — это ускорит работу текущей.
- 💾 Выгружайте только изменённые данные: если интеграция настроена регулярно, экспортируйте только новые или изменённые документы (используйте реквизит
ПометкаУдаленияилиДатаИзменения). - 🔧 Используйте потоковую запись (
ЗаписьXML), а не формирование строки в памяти. - 🗜️ Сжимайте файл на лету с помощью
ZipАрхиватор(встроен в 1С 8.3.18+). - 📡 Если выгружаете на FTP, используйте многопоточную отправку (например, через внешнюю компоненту CURL).
- Восстановите резервную копию архивной базы на тестовом сервере.
- Подключитесь к ней через 1С:Предприятие и выполните выгрузку.
- Если нужно объединить данные с текущей базой, используйте универсальный обмен данными или CONNECT (для 1С:ERP).
- В настройках выгрузки проверьте флаг
Включать НДС в цену(если он есть). - Если цена в 1С указана без НДС, добавьте в код выгрузки расчёт:
ЦенаСНДС = Строка.Цена * (1 + Строка.СтавкаНДС / 100); - Для Ozon и Wildberries часто требуется указывать цену с НДС в теге
<price>, даже если в личном кабинете настроена работа без НДС. - Настройте регламентное задание (см. раздел 4), которое будет:
- Формировать XML.
- Архивировать его в
ZIP(если требуется). - Отправлять по
FTP/SFTPна сервер маркетплейса
Пример настройки расписания для выгрузки реализаций за прошлый день:
⚠️ Внимание: Если регламентное задание выполняется на сервере 1С:Предприятие, убедитесь, что у пользователя, от имени которого оно запускается, есть права на выгрузку данных и доступ к сетевой папке (если путь сохранения — сетевой ресурс). Иначе задание завершится с ошибкой.
Если выгружаемые файлы нужны для загрузки на маркетплейс, настройте автоматическую отправку по FTP. Для этого в регламентном задании укажите дополнительный шаг с вызовом обработки, которая отправляет файл на сервер Ozon или Wildberries по протоколу SFTP.
5. Программная выгрузка на языке 1С (для разработчиков)
Если ни один из стандартных методов не подходит (например, нужно выгрузить данные в нетиповом формате или с дополнительной логикой), напишите собственный код на встроенном языке 1С. Этот способ требует знаний программирования, но даёт максимальную гибкость.
Пример кода для выгрузки реализации в XML с учётом специфики Ozon:
Функция ВыгрузитьРеализациюВXML_Ozon(Документ, ПутьКФайлу)
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ПутьКФайлу);
ЗаписьXML.УстановитьСтрокуЗначенияXML("utf-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("offers");
ЗаписьXML.ЗаписатьАтрибут("xmlns", "http://ozon.ru/schema/offers");
Для Каждого Строка Из Документ.Товары Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("offer");
ЗаписьXML.ЗаписатьАтрибут("id", Строка.Номенклатура.Артикул);
ЗаписьXML.ЗаписатьАтрибут("available", "true");
ЗаписьXML.ЗаписатьНачалоЭлемента("price");
ЗаписьXML.ЗаписатьТекст(Формат(Строка.Цена, "ЧГ=0;ЧДЦ=."));
ЗаписьXML.ЗаписатьКонецЭлемента(); // price
ЗаписьXML.ЗаписатьНачалоЭлемента("quantity");
ЗаписьXML.ЗаписатьТекст(Строка.Количество);
ЗаписьXML.ЗаписатьКонецЭлемента(); // quantity
ЗаписьXML.ЗаписатьКонецЭлемента(); // offer
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); // offers
ЗаписьXML.Закрыть();
Возврат Истина;
КонецФункции
Ключевые моменты при программной выгрузке:
Пример обработки ошибок:
Если НЕ ЗначениеЗаполнено(Строка.Номенклатура.Артикул) Тогда
ЗаписатьЖурналРегистрации(НСтр("ru = 'Ошибка выгрузки: у номенклатуры ""' + Строка.Номенклатура.Наименование + """ не указан артикул'"));
Продолжить;
КонецЕсли;
Как проверить корректность сформированного XML?
Для проверки структуры XML используйте онлайн-валидаторы (например, XML Validation от W3Schools) или специализированные инструменты вроде XML Spy. Также можно загрузить файл в тестовую среду маркетплейса (например, песочницу Ozon) — система укажет на ошибки в структуре или данных.
6. Типовые ошибки и их решение
При выгрузке реализации в XML часто возникают ошибки, которые блокируют загрузку файла во внешние системы. Рассмотрим самые распространённые проблемы и способы их исправления.
| Ошибка | Причина | Решение |
|---|---|---|
Ошибка разбора XML: неверная кодировка |
Файл сохранён в кодировке windows-1251 вместо utf-8 |
В коде выгрузки явно укажите ЗаписьXML.УстановитьСтрокуЗначенияXML("utf-8") |
Отсутствует обязательный элемент "barcode" (для Wildberries) |
В 1С не заполнен штрихкод у номенклатуры | Добавьте штрихкоды в справочник Номенклатура или настройте автоматическое заполнение |
Некорректный формат даты |
Дата в XML указана в формате ДД.ММ.ГГГГ, а система ожидает ГГГГ-ММ-ДД |
Используйте функцию Формат(Дата, "ДЛФ=DT") для приведения к стандарту ISO 8601 |
Файл слишком большой (более 50 МБ) |
Выгружается слишком большой период или много документов | Разбейте выгрузку на части (например, по дням) или архивируйте файл перед отправкой |
Если внешняя система (например, Ozon или Wildberries) отвергает файл с ошибкой Невалидная структура XML, сделайте следующее:
⚠️ Внимание: Некоторые маркетплейсы (например, Ozon) меняют требования к формату XML без предварительного уведомления. Если выгрузка перестала работать, проверьте раздел «Документация» в личном кабинете продавца — там публикуются актуальные схемы.
7. Оптимизация выгрузки для крупных баз
Если в базе тысячи документов реализации, стандартные методы выгрузки могут работать медленно или приводить к зависанию 1С. В таких случаях используйте следующие приёмы:
Пример кода для выгрузки реализаций за конкретный день (оптимизирован для больших объёмов):
Процедура ВыгрузитьРеализацииЗаДень(ДатаВыгрузки, ПутьКФайлу)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата = &Дата";
Запрос.УстановитьПараметр("Дата", ДатаВыгрузки);
Результат = Запрос.Выполнить();
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ПутьКФайлу);
ЗаписьXML.ЗаписатьОбъявлениеXML();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Документ = Выборка.Ссылка.ПолучитьОбъект();
// Логика выгрузки документа в XML
ВыгрузитьДокументВXML(Документ, ЗаписьXML);
КонецЦикла;
ЗаписьXML.Закрыть();
КонецПроцедуры
Для ускорения работы с большими файлами XML:
FAQ: Частые вопросы по выгрузке реализации в XML
Можно ли выгрузить реализации за прошлый год, если база уже архивирована?
Да, но для этого нужно временно подключить архивную базу. Сделайте следующее:
⚠️ Не работайте с архивной базой в рабочем режиме — это может привести к расхождению данных.
Как выгрузить реализации с учётом возвратов?
Чтобы в XML попали только чистые продажи (без возвратов), модифицируйте запрос выгрузки:
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И НЕ РеализацияТоваровУслуг.ПометкаУдаления
| И НЕ СУЩЕСТВУЕТ (
| ВЫБРАТЬ 1
| ИЗ Документ.ВозвратТоваровОтПокупателя КАК Возврат
| ГДЕ Возврат.Основание = РеализацияТоваровУслуг.Ссылка
| )";
Если нужно выгрузить возвраты отдельно, сформируйте второй файл с документами типа ВозвратТоваровОтПокупателя.
Почему в XML не попадают цены с НДС?
Это типичная проблема при выгрузке для маркетплейсов. Решения:
Как автоматизировать отправку XML на маркетплейс?
Для автоматической отправки файла на Ozon, Wildberries или Яндекс.Маркет: