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

Мы рассмотрим не только базовые способы экспорта через типовой функционал , но и продвинутые методы для программистов — включая работу с XDTO, настройку обменов данными и обработку специфических форматов (например, для ЭДО или Маркировки товаров). Особое внимание уделим нюансам, которые редко упоминают в документации: как сохранить иерархию документов, почему могут теряться реквизиты и как проверить валидность полученного XML.

Если вы бухгалтер, который впервые сталкивается с выгрузкой, или разработчик, которому нужно автоматизировать процесс — здесь найдёте ответы на ключевые вопросы. А для тех, кто уже пробовал экспортировать данные, но получал ошибки, мы подготовили раздел с разбором самых распространённых проблем и их решений.

Зачем выгружать документы из 1С в XML?

Формат XML (eXtensible Markup Language) стал де-факто стандартом для обмена структурированными данными между информационными системами. В контексте 1С:Предприятие он используется для:

  • 📄 Сдачи отчётности в ФНС, ПФР, Росстат и другие госорганы (например, декларации, расчёты по страховым взносам).
  • 🔄 Интеграции с внешними сервисами: банками (выписки, платежки), маркетплейсами (Ozon, Wildberries), системами ЭДО (Диадок, СБИС).
  • 📦 Обмена данными между разными базами 1С (например, между 1С:Бухгалтерия и 1С:УТ).
  • 🏷️ Участия в системе маркировки (товары подлежат обязательной маркировке: лекарства, обувь, табак и др.).
  • 🔧 Резервного копирования отдельных документов или справочников в удобном для восстановления формате.

Главное преимущество XML перед другими форматами (например, DBF или Excel) — это сохранение иерархической структуры данных и поддержка метаинформации (атрибутов, пространств имён). Например, в одном файле можно передать не только сам документ "Реализация товаров", но и связанные с ним справочники (контрагенты, номенклатура), а также служебную информацию о версии формата или дате создания.

Однако у формата есть и минусы: файлы XML часто получаются объёмными, а их обработка требует больше ресурсов, чем у бинарных форматов. Кроме того, не все внешние системы корректно работают с русскими названиями тегов или специальными символами — это нужно учитывать при настройке выгрузки.

📊 Для чего вам чаще всего нужна выгрузка XML из 1С?
Отчётность в госорганы
Интеграция с банками/маркетплейсами
Обмен между базами 1С
Маркировка товаров
Другое

Способы выгрузки документов в XML: от простого к сложному

В 1С:Предприятие есть несколько способов экспорта документов в XML, отличающихся сложностью настройки и гибкостью. Выбор метода зависит от задачи:

  • 🛠️ Типовые обработки — подходят для разовых выгрузок (например, отправка декларации в ФНС). Не требуют программирования, но ограничены стандартными форматами.
  • 📝 Универсальный обмен данными — встроенный механизм для настройки обменов между базами. Позволяет гибко настроить структуру XML, но требует предварительной подготовки.
  • 💻 Программная выгрузка (через XDTO, ЗаписьXML) — для разработчиков. Даёт полный контроль над структурой файла, но требует знания языка .
  • 🔌 Внешние обработки и расширения — готовые решения от партнёров (например, для маркировки или ЭДО). Упрощают работу, но могут быть платными.

Рассмотрим каждый способ подробнее.

1. Типовые обработки выгрузки

Самый простой способ — использовать встроенные обработки, которые есть в большинстве конфигураций . Например, в 1С:Бухгалтерия 8 для выгрузки отчётности в XML:

  1. Перейдите в раздел Отчёты → Регламентированные отчёты.
  2. Выберите нужный отчёт (например, "Декларация по НДС").
  3. Нажмите Выгрузить и укажите путь для сохранения файла.

Файл будет сформирован в формате, соответствующем требованиям госоргана (например, для ФНС это формат .xml с подписью .sig). Аналогично работают обработки для выгрузки платежных поручений в банк или документов для ЭДО.

⚠️ Внимание: Типовые обработки часто обновляются вместе с релизами 1С. Если выгрузка внезапно перестала работать, проверьте актуальность версии конфигурации в Справка → О программе.

2. Универсальный обмен данными

Если нужно настроить регулярный обмен данными между базами или внешними системами, используйте механизм Универсальный обмен данными (Панель управления → Обмен данными). Он позволяет:

  • 📌 Настроить правила обмена (какие документы и справочники выгружать).
  • 🔄 Задать формат XML (включая пространства имён и атрибуты).
  • 📅 Автоматизировать выгрузку по расписанию.

Пример настройки:

  1. Создайте новый обмен в Администрирование → Обмен данными → Универсальный обмен.
  2. Укажите формат сообщения (например, XML).
  3. Настройте правила конвертации для документов (какие реквизиты включать в выгрузку).
  4. Запустите тестовую выгрузку и проверьте полученный файл.

Этот способ подходит для интеграции с 1С:УТ, 1С:ERP или внешними системами, где требуется гибкая настройка структуры XML.

☑️ Подготовка к настройке универсального обмена

Выполнено: 0 / 4

3. Программная выгрузка (для разработчиков)

Если типовые методы не подходят, можно написать собственную обработку на встроенном языке . Например, для выгрузки документа "РеализацияТоваровУслуг" в XML:

Процедура ВыгрузитьВXML(Документ, ПутьКФайлу)

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

ЗаписьXML.ОткрытьФайл(ПутьКФайлу);

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

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

ЗаписьXML.ЗаписатьАтрибут("Дата", Документ.Дата);

ЗаписьXML.ЗаписатьАтрибут("Номер", Документ.Номер);

// Выгрузка табличной части

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

Для Каждого Строка Из Документ.Товары Цикл

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

ЗаписьXML.ЗаписатьАтрибут("Наименование", Строка.Номенклатура);

ЗаписьXML.ЗаписатьАтрибут("Количество", Строка.Количество);

ЗаписьXML.ЗаписатьКонецЭлемента(); // Товар

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // Товары

ЗаписьXML.ЗаписатьКонецЭлемента(); // Документ

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

КонецПроцедуры

Для работы с XDTO (если требуется валидация по XSD-схеме) используйте объект ФабрикаXDTO:

ФабрикаXDTO = Новый ФабрикаXDTO();

ПакетXDTO = ФабрикаXDTO.Пакеты().Добавить("http://example.com/schema");

ТипОбъектаXDTO = ПакетXDTO.Типы().Получить("ДокументType");

ОбъектXDTO = ФабрикаXDTO.Sоздать(ТипОбъектаXDTO);

ОбъектXDTO.Дата = Документ.Дата;

// ... заполнение других свойств

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

ЗаписьXML.ОткрытьФайл(ПутьКФайлу);

ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO);

⚠️ Внимание: При программной выгрузке обязательно обрабатывайте специальные символы (например, &, <, >), иначе XML будет невалидным. Используйте функцию СтрЗначениеВXML().

Настройка структуры XML: что должно быть в файле?

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

Элемент XML Описание Пример
<Документ> Корневой элемент, содержит метаданные документа (тип, дата, номер). <Документ Тип="РеализацияТоваровУслуг" Дата="2026-05-20" Номер="РТ-000123">
<Контрагент> Информация о партнёре (ИНН, КПП, наименование). <Контрагент ИНН="1234567890" Наименование="ООО Ромашка">
<Товары> Табличная часть с перечнем товаров/услуг. <Товар Артикул="ABC123" Количество="5" Цена="1000.00"/>
<Сумма> Итоговые суммы (включая НДС). <Сумма Всего="5000.00" НДС="18%">
xmlns Пространство имён (обязательно для некоторых форматов, например, для ЭДО). <Документ xmlns="http://v8.1c.ru/edi/edi_stnd">

Для отчётности в госорганы структура жёстко регламентирована. Например, декларация по НДС должна соответствовать схеме NDS_6_05_04.xsd. Если выгружаемый файл не проходит валидацию, проверьте:

  • 🔍 Наличие всех обязательных тегов (например, <СвНП> для налогоплательщика).
  • 📏 Формат данных (даты должны быть в виде ГГГГ-ММ-ДД, суммы — с двумя знаками после запятой).
  • 🔠 Кодировку (обычно требуется UTF-8 или windows-1251).

Для проверки структуры можно использовать инструменты вроде XML Validator или встроенную валидацию в (если используется XDTO).

Пример XSD-схемы для декларации по НДС

Схема определяет строгие правила для тегов, атрибутов и типов данных. Например, элемент <Декларация> должен содержать обязательный атрибут "КНД" (код налоговой декларации), а суммы должны быть указаны с точностью до копеек. Полные схемы публикует ФНС на своём сайте.

Типичные ошибки при выгрузке XML и как их исправить

Даже при правильной настройке выгрузки могут возникать ошибки. Вот самые распространённые проблемы и способы их решения:

1. Ошибки валидации XML

Если файл не проходит проверку (например, в Контур.Диадок или при загрузке в личный кабинет ФНС), причины могут быть следующими:

  • 🚫 Отсутствует обязательный тег — проверьте XSD-схему и добавьте пропущенные элементы.
  • 🔤 Неверный формат данных — например, дата в виде 20.05.2026 вместо 2026-05-20. Используйте функцию Формат(Дата, "ДФ=yyyy-MM-dd").
  • 🌍 Проблемы с кодировкой — если в XML появляются "кракозябры", укажите кодировку явно: ЗаписьXML.УстановитьКодировку(КодировкаТекста.UTF8).

Пример исправления ошибки с датой:

// Неправильно:

ЗаписьXML.ЗаписатьАтрибут("Дата", Документ.Дата); // Вернёт "20.05.2026"

// Правильно:

ДатаXML = Формат(Документ.Дата, "ДФ=yyyy-MM-dd");

ЗаписьXML.ЗаписатьАтрибут("Дата", ДатаXML); // Вернёт "2026-05-20"

2. Потеря данных при выгрузке

Иногда в XML не попадают некоторые реквизиты документов. Причины:

  • 📋 Не настроены правила обмена — проверьте, какие реквизиты включены в выгрузку (в Универсальном обмене данными).
  • 🔒 Ограничения прав доступа — пользователь, от имени которого выполняется выгрузка, может не иметь прав на чтение некоторых данных.
  • 🔄 Ошибки в программном коде — если выгрузка реализована через скрипт, убедитесь, что все нужные поля добавлены в XML.

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

3. Проблемы с подписью XML

Если файл требует электронной подписи (например, для ЭДО или отчётности), но подпись не проходит проверку:

  • 🔑 Неверный сертификат — проверьте, что сертификат действителен и принадлежит вашей организации.
  • 📜 Подпись добавлена не в тот тег — некоторые форматы требуют, чтобы подпись была вложена в конкретный элемент (например, <Подпись> внутри <Документ>).
  • ⚙️ Ошибки в алгоритме подписи — используйте стандартные методы для подписи, например, ПодписатьXML().

Пример кода для подписи XML:

Подпись = Новый ЭлектроннаяПодпись;

Подпись.УстановитьСертификат(Сертификат);

Подпись.ПодписатьФайл(ПутьКФайлуXML, ПутьКФайлуПодписи);

⚠️ Внимание: Если выгружаете данные для Маркировки товаров (например, через Честный ЗНАК), проверьте, что в XML включены все обязательные реквизиты маркированных товаров (GTIN, сериальные номера). Их отсутствие приведёт к отказу в регистрации.

Практические примеры выгрузки для разных задач

Разберём конкретные сценарии выгрузки XML из с пошаговыми инструкциями.

Пример 1: Выгрузка платежных поручений для банка

Многие банки (например, Сбербанк, Тинькофф) принимают платежки в формате XML. Чтобы выгрузить их из 1С:Бухгалтерия:

  1. Откройте журнал Банк и касса → Платежные поручения.
  2. Выделите нужные документы и нажмите Выгрузить → В файл обмена.
  3. Выберите формат XML для банка-клиента и укажите путь сохранения.
  4. Загрузите полученный файл в систему банка (например, через Сбербанк Бизнес Онлайн).

Если банк требует специфический формат, может потребоваться доработка. Например, для Тинькофф Бизнес нужно:

  • 📌 Убедиться, что в XML есть тег <БИК> с корректным значением.
  • 💰 Проверить, что сумма указана в рублях без копеек (если банк этого требует).

Пример 2: Выгрузка реализаций для маркировки товаров

Для участия в системе Честный ЗНАК нужно выгружать документы реализации в специальном формате. Используйте обработку Выгрузка данных для маркировки (доступна в 1С:УТ или 1С:ERP):

  1. Установите обработку из каталога 1С:ИТС (если её нет в базе).
  2. Запустите её через Файл → Открыть → Выгрузка для маркировки.
  3. Укажите период и типы документов (например, "Реализация товаров").
  4. Выгрузите файл и проверьте его через Личный кабинет Честного ЗНАКа.

В XML должны быть:

  • 🏷️ GTIN (глобальный номер товара).
  • 🔢 Серийные номера (если товар маркированный).
  • 📦 Коды упаковок (для групповой упаковки).
⚠️ Внимание: С 2026 года правила маркировки ужесточились. Если в XML отсутствует хотя бы один обязательный реквизит (например, код продукции), документ не будет зарегистрирован в системе. Проверяйте выгрузку через тестовый контур Честного ЗНАКа перед отправкой в продакшн.

Пример 3: Выгрузка справочников для интеграции с сайтом

Если нужно передать на сайт (например, на 1С-Битрикс или WordPress) данные о номенклатуре или контрагентах, используйте универсальный обмен:

  1. Настройте обмен в Администрирование → Обмен данными.
  2. Добавьте правила для справочников Номенклатура и Контрагенты.
  3. Укажите формат XML и настройте структуру (например, включите поля "Артикул", "Цена", "Остаток").
  4. Запустите выгрузку и проверьте, что все данные на месте.

Пример структуры XML для номенклатуры:

<Номенклатура>

<Элемент Артикул="ABC123" Наименование="Стул офисный">

<Цена>2500.00</Цена>

<Остаток>15</Остаток>

</Элемент>

<Элемент Артикул="XYZ456" Наименование="Стол письменный">

<Цена>5000.00</Цена>

<Остаток>8</Остаток>

</Элемент>

</Номенклатура>

💡

Если интегрируетесь с сайтом, договоритесь с разработчиками о формате XML заранее. Часто требуется упрощённая структура без лишних атрибутов, чтобы ускорить обработку на стороне сайта.

Автоматизация выгрузки: расписания и внешние обработки

Ручная выгрузка XML утомительна, если документов много. Автоматизируйте процесс с помощью:

1. Расписаний в 1С

В 1С:Предприятие 8.3 можно настроить регламентные задания для регулярной выгрузки:

  1. Перейдите в Администрирование → Поддержка и обслуживание → Регламентные задания.
  2. Создайте новое задание типа Обмен данными.
  3. Укажите расписание (например, ежедневно в 23:00).
  4. Настройте действие — выгрузку XML в указанную папку.

Пример настройки расписания через код:

РегламентноеЗадание = РегламентныеЗадания.СоздатьЗадание();

РегламентноеЗадание.Имя = "ВыгрузкаXML_Ежедневно";

РегламентноеЗадание.Расписание.ЕжедневноВ(23, 0, 0);

РегламентноеЗадание.Действие = Новый ДействиеОбменаДанными(ПараметрыОбмена);

РегламентноеЗадание.Записать();

2. Внешние обработки и расширения

Если стандартных механизмов недостаточно, используйте готовые решения:

  • 📦 1С:Конвертация данных — для сложных обменов между базами.
  • 🔗 1С:Интеграция — для связи с внешними системами (например, CRM).
  • 📄 Обработки от партнёров — например, "Выгрузка в Честный ЗНАК" или "Обмен с Маркетплейсами".

Пример подключения внешней обработки:

  1. Скачайте файл обработки (например, ВыгрузкаДляWildberries.epf).
  2. Откройте его через Файл → Открыть.
  3. Следуйте инструкциям мастера настройки.

3. Интеграция через API

Для продвинутых сценариев (например, обмен с Ozon или Яндекс.Маркет) можно использовать REST API. В этом случае XML генерируется в 1С, а затем отправляется через HTTPЗапрос:

Запрос = Новый HTTPЗапрос();

Запрос.УстановитьТелоИзФайла(ПутьКФайлуXML);

Запрос.УстановитьЗаголовок("Content-Type", "application/xml");

Ответ = Новый HTTPСоединение("https://api.ozon.ru/v1/import").ОтправитьДляПолученияРезультата(Запрос);

⚠️ Внимание: При автоматизации учитывайте лимиты API внешних систем. Например, Ozon может ограничивать количество запросов в минуту. Настройте задержки между выгрузками, чтобы избежать блокировки.
💡

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

FAQ: Частые вопросы о выгрузке XML из 1С

Как проверить, что XML сформирован корректно?

Используйте валидаторы вроде XML Validation (онлайн-сервисы или плагины для Notepad++). Также в 1С можно проверить файл через XDTO:

ФабрикаXDTO = Новый ФабрикаXDTO();

Проверка = ФабрикаXDTO.ПрочитатьXML(Новый ЧтениеXML(ПутьКФайлу));

Если Проверка.Исключение <> Неопределено Тогда

Сообщить("Ошибка: " + Проверка.Исключение.Описание());

КонецЕсли;

Можно ли выгрузить XML без программирования?

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

Почему в XML не попадают некоторые реквизиты?

Причины:

  • В правилах обмена не указаны эти реквизиты.
  • Пользователь не имеет прав на чтение данных.
  • В программном коде не реализована выгрузка этих полей.

Проверьте настройки обмена или код обработки.

Как выгрузить XML с электронной подписью?

Используйте встроенные механизмы 1С:

Подпись = Новый ЭлектроннаяПодпись;

Подпись.УстановитьСертификат(Сертификат);

Подпись.ПодписатьФайл("путь/к/файлу.xml", "путь/к/под