Выгрузка документов из 1С в формат XML: 6 рабочих способов

· 12 мин

Содержание

Единой кнопки «Сохранить в XML» в 1С нет. Чтобы сохранить документ в формате XML, выбирают один из шести механизмов, и выбор зависит от того, кто потом будет читать файл: для ИФНС — выгрузка регламентированного отчёта, для контрагента — XML из ЭДО, для переноса в другую базу — обработка «Выгрузка и загрузка данных XML», для своей интеграции — несколько строк кода на СериализаторXDTO.

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

Ниже — все способы выгрузки в XML из 1С 8.3 с точными путями меню для «Бухгалтерии» 3.0, ЗУП 3.1, УТ 11 и ERP, примерами кода, проверкой готового файла и разбором ошибок, на которых обычно теряют полдня.

Какой XML вам нужен: сравнение способов выгрузки из 1С

Сначала определитесь с получателем файла. От этого зависит и структура XML, и кодировка, и то, можно ли вообще вмешиваться в содержимое.

СпособЧто получитсяКому подходитНужен программист
Регламентированный отчёт → «Выгрузить»XML по формату ФНС/СФР/РосстатаДекларации, РСВ, 6-НДФЛ, ЕФС-1Нет
Выгрузка файла из ЭДОXML счёта-фактуры, УПД, акта по формату ФНСКонтрагент, запрос ИФНС, судНет
Обработка «Выгрузка и загрузка данных XML»XML с объектами базы «как есть»Перенос документов между базами 1СНет (но нужны права)
План обмена + правила конвертацииXML по заданным правилам, регулярноПостоянный обмен между системамиДа
Код: СериализаторXDTO, ЗаписьXMLЛюбая структура XML под чужое ТЗИнтеграция с сайтом, WMS, банкомДа
Выгрузка конфигурации в файлыXML метаданных, не данныхРазработка, Git, сравнение версийДа
Для кого готовите XML-файл?

Если контрагент просит «просто XML», уточните формат: 90% запросов закрывает либо XML-файл ЭДО по приказу ФНС, либо выгрузка в CommerceML (обмен с сайтом).

Способ 1. Как в 1С сохранить документ в формате XML для ФНС и СФР

Отчётность — единственный случай, где XML формируется кнопкой и без обработок. Структура файла жёстко задана приказом ведомства, 1С собирает его сама.

Пошагово в «Бухгалтерии» 3.0

  1. Откройте Отчёты → Регламентированные отчёты (в базе с 1С-Отчётностью раздел называется Отчёты → 1С-Отчётность → Регламентированные отчёты).
  2. Найдите нужный отчёт в списке и откройте его. Отчёт должен быть заполнен и проверен.
  3. Нажмите Проверка → Проверить выгрузку. 1С прогонит контроль формата и покажет ошибки списком.
  4. Нажмите Выгрузить → Файл для передачи в ИФНС.
  5. Укажите каталог. Имя файла 1С придумает сама — примерно такого вида: NO_NDS_7712_7712_7712345678771201001_20260406_a1b2c3.xml.

Не переименовывайте выгруженный файл и не правьте его в блокноте. Имя файла — часть формата: по нему приёмный комплекс определяет вид отчёта, период и получателя. После ручной правки файл слетает с проверки и отчёт считается непредставленным.

Особенности выгрузки отчётов в XML

  • 📄 Кодировка файлов ФНС — windows-1251. Первая строка выглядит так: <?xml version="1.0" encoding="windows-1251"?>. Если сохранить файл заново в UTF-8, приёмка его отбракует.
  • 🔢 Версия формата зависит от релиза. Старый релиз выгрузит XML по устаревшему формату — обновите конфигурацию перед сдачей отчётности.
  • 📦 Один отчёт — один файл. Корректировка выгружается отдельным файлом с номером корректировки внутри.
  • 🏦 Отчёты в СФР и статистику выгружаются той же кнопкой Выгрузить, но файл дополнительно шифруется и подписывается уже в программе отправки.

Способ 2. Как из 1С сохранить документ в XML через ЭДО

Когда ИФНС запрашивает счёт-фактуру в электронном виде или контрагент потерял документ, нужен не скан и не PDF, а исходный XML с подписью. Он лежит в архиве ЭДО.

  1. Откройте документ — например, Продажи → Реализация (акты, накладные, УПД) → нужную реализацию.
  2. В верхней панели нажмите ЭДО → Просмотреть электронный документ.
  3. В открывшейся форме нажмите Ещё → Сохранить в файл (в части релизов кнопка подписана Сохранить XML).
  4. Выберите каталог. Рядом с XML 1С выгрузит файлы подписей с расширением .sgn или .p7s.

Второй путь — через журнал: Продажи → Архив ЭДО, отбор по контрагенту и дате, затем та же команда сохранения. В «Бухгалтерии» 3.0 архив доступен и из раздела Компания → Обмен электронными документами.

Для ИФНС отправляйте XML вместе с файлами подписей. XML без подписи — это просто текст, он не подтверждает ни дату, ни подписанта.

Полезно знать, что внутри. XML счёта-фактуры и УПД строится по приказу ФНС от 19.12.2018 № ММВ-7-15/820@: корневой элемент Файл, внутри Документ с реквизитами продавца, покупателя и таблицей товаров. Поэтому «красиво» такой файл не откроется — его читают приёмные комплексы, а человеку удобнее смотреть печатное представление из той же формы.

Способ 3. Как выгружать в XML из 1С целыми пачками: универсальная обработка

Классический инструмент для переноса документов между базами — внешняя обработка «Выгрузка и загрузка данных XML» (файл вида ВыгрузкаЗагрузкаДанныхXML83.epf из комплекта поддержки). Она умеет забрать любые объекты: документы, справочники, регистры.

Как подключить и выгрузить

  1. Войдите в базу под пользователем с полными правами.
  2. Файл → Открыть и выберите файл обработки .epf.
  3. На закладке Выгрузка раскройте дерево метаданных и отметьте галочками нужное — например, Документы → РеализацияТоваровУслуг.
  4. В поле Период задайте интервал. Без периода выгрузятся все документы за всю историю базы.
  5. При необходимости задайте отбор по организации или контрагенту в правой части формы.
  6. Укажите имя файла выгрузки, например C:\Exchange\realizacii.xml.
  7. Нажмите Выгрузить данные и дождитесь протокола.
Проверьте перед переносом документов через XML
Выполнено: 0 / 7

Ограничения, о которых молчат инструкции

  • Обработка переносит объекты «как есть», ссылка в ссылку. Если в базе-приёмнике нет справочника с теми же реквизитами, загрузка упадёт.
  • Разные релизы конфигураций = разный состав реквизитов. Выгрузка из «Бухгалтерии» 3.0.160 в 3.0.140 почти наверняка даст ошибку.
  • Между разными конфигурациями (например, из УТ 11 в «Бухгалтерию» 3.0) обработка не работает . Там нужны правила конвертации — способ 4.
  • Регистры накопления по документам не переносятся автоматически: либо выгружайте их отдельно, либо перепроводите документы в приёмнике.

Никогда не загружайте XML в рабочую базу без резервной копии. Откатить частично загруженные данные штатными средствами невозможно.

Способ 4. Планы обмена и правила конвертации: регулярная выгрузка в XML

Когда файл нужен не один раз, а каждый день, разовые выгрузки не подходят. Здесь работают две технологии.

Правила конвертации (КД 2.0 / КД 3.0). В отдельной конфигурации «Конвертация данных » описывается соответствие объектов источника и приёмника, выгружается файл правил .xml, затем обработка УниверсальныйОбменДаннымиXML.epf по этим правилам формирует XML с данными. Так переносят документы между разными конфигурациями.

Синхронизация данных. Готовый механизм в типовых базах: Администрирование → Синхронизация данных. Включите флаг, создайте настройку, выберите вариант обмена и каталог. 1С будет складывать XML-пакеты в этот каталог по расписанию.

Поле в XML получателяРеквизит в 1С
INNКонтрагенты.ИНН
DocNumberДокумент.Номер
DocDateДокумент.Дата
ItemCodeНоменклатура.Артикул
VatRateСтавка НДС в строке документа
TotalSumСумма документа

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

Для обмена с интернет-магазином в УТ 11 и «Бухгалтерии» 3.0 используется стандарт CommerceML — тот же XML, но с заранее описанной структурой (import.xml с каталогом и offers.xml с ценами).

Способ 5. Программная выгрузка в XML: СериализаторXDTO и ЗаписьXML

Если принимающая сторона дала своё ТЗ на структуру файла, пишите выгрузку кодом. Два инструмента.

СериализаторXDTO выгружает объект 1С целиком, со всеми реквизитами и табличными частями:

// Выгрузка реализаций за период в один XML-файл
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Exchange\realizacii.xml", "UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Документы");

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг
    |ГДЕ Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |   И НЕ ПометкаУдаления";
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Выборка.Ссылка.ПолучитьОбъект());
КонецЦикла;

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

Минус подхода: в файл попадут внутренние идентификаторы 1С и все реквизиты без разбора. Чужой системе это обычно не нужно.

Когда структуру задаёт партнёр, собирайте XML вручную — поле за полем:

Док = ДокументСсылка.ПолучитьОбъект();

ЗаписьXML.ЗаписатьНачалоЭлемента("Invoice");
ЗаписьXML.ЗаписатьАтрибут("number", Док.Номер);
ЗаписьXML.ЗаписатьАтрибут("date", Формат(Док.Дата, "ДФ=yyyy-MM-dd"));

ЗаписьXML.ЗаписатьНачалоЭлемента("Partner");
ЗаписьXML.ЗаписатьАтрибут("inn", Док.Контрагент.ИНН);
ЗаписьXML.ЗаписатьТекст(Док.Контрагент.НаименованиеПолное);
ЗаписьXML.ЗаписатьКонецЭлемента();

Для Каждого Стр Из Док.Товары Цикл
    ЗаписьXML.ЗаписатьНачалоЭлемента("Line");
    ЗаписьXML.ЗаписатьАтрибут("code", Стр.Номенклатура.Код);
    ЗаписьXML.ЗаписатьАтрибут("qty", Формат(Стр.Количество, "ЧРД=.; ЧГ=0"));
    ЗаписьXML.ЗаписатьАтрибут("sum", Формат(Стр.Сумма, "ЧРД=.; ЧГ=0"));
    ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;

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

Числа в XML всегда выгружайте через Формат() с параметрами ЧРД=. и ЧГ=0. Иначе в файл уйдёт 1 250,50 вместо 1250.50, и парсер на другой стороне упадёт на первой же строке.

Чтобы выгрузка шла без участия человека, оберните код в регламентное задание: Администрирование → Обслуживание → Регламентные и фоновые задания. На файловой базе задания работают только при запущенном сеансе — для расписания нужен клиент-серверный вариант.

Способ 6. Как сохранить файл в XML формате из печатной формы

Запрос «сохранить печатную форму в хмл формате» встречается постоянно, поэтому разберём отдельно. Прямого сохранения табличного документа в XML в 1С нет: Печать → Сохранить предлагает .mxl, .xlsx, .xls, .ods, .pdf, .docx, .html, .txt.

Варианты, если XML всё-таки требуют:

  1. Через Excel. Сохраните печатную форму в .xlsx, откройте в Excel и выберите Файл → Сохранить как → тип XML-таблица 2003 (*.xml). Получится XML с разметкой таблицы — для анализа сгодится, для обмена данными нет.
  2. Через HTML. Сохранение в .html даёт тегированный текст, который парсится почти так же легко, как XML. Иногда этого достаточно.
  3. Правильный путь. Если файл нужен программе, а не человеку, выгружайте данные документа способами 2-5. Печатная форма для обмена не предназначена: в ней нет ни ИНН в отдельном поле, ни кодов номенклатуры.

XML, полученный из Excel, нельзя отправить ни в ИФНС, ни контрагенту по ЭДО. Это другой формат с другой схемой.

Выгрузка в XML по конфигурациям: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP

КонфигурацияЧто выгружают в XMLПуть
Бухгалтерия 3.0Декларации, РСВ, 6-НДФЛОтчёты → Регламентированные отчёты → Выгрузить
Бухгалтерия 3.0Счёт-фактура, УПД, актДокумент → ЭДО → Просмотреть электронный документ
ЗУП 3.1ЕФС-1, персонифицированные сведенияОтчётность, справки → 1С-Отчётность → Выгрузить
ЗУП 3.1Данные о трудовой деятельностиОтчётность, справки → Электронные трудовые книжки
УТ 11Каталог товаров и заказы для сайтаНСИ и администрирование → Обмен с сайтом
УТ 11 / ERPДокументы в «Бухгалтерию»Администрирование → Синхронизация данных
ERPПроизвольные структуры для MES, WMSПравила конвертации или код
ЛюбаяМетаданные для разработкиКонфигуратор → Конфигурация → Выгрузить конфигурацию в файлы

В разных редакциях названия разделов плавают: в УТ 11.5 пункт может лежать в НСИ и администрирование → Настройки интеграции. Если не нашли команду по пути из таблицы, ищите через Все функции или поиск по интерфейсу (Ctrl+Shift+F в режиме «Такси»).

Как проверить готовый XML-файл

Проверить файл стоит до того, как он уйдёт в инспекцию или партнёру. Минимум три шага:

  1. Откройте в браузере. Перетащите .xml в окно Chrome или Firefox. Корректный файл раскроется деревом. Если браузер ругается на ошибку разбора — файл битый, в нём незакрытый тег или лишний символ.
  2. Посмотрите кодировку и первую строку. Она должна совпадать с заявленной в объявлении XML. Правьте только редактором, который не ломает кодировку — например, Notepad++ с меню Кодировки.
  3. Прогоните штатную проверку. Для отчётности это Проверка → Проверить выгрузку в самом отчёте, для файлов ЭДО — повторная загрузка XML в тестовую базу.

Для сверки сумм после переноса документов между базами удобно сравнить две оборотно-сальдовые ведомости за один период: Отчёты → Оборотно-сальдовая ведомость в источнике и приёмнике. Расхождение по счёту сразу покажет, какие документы не доехали.

Типичные ошибки при выгрузке документов в XML

Диагностика: выберите симптом

Ещё одна ловушка — права. Внешние обработки открываются только при включённом праве «Открытие внешних отчётов и обработок»: Администрирование → Настройки пользователей и прав → профиль пользователя. На практике эту галочку оставляют администратору и снимают у бухгалтеров.

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

Как в 1С сохранить документ в XML, если кнопки «Выгрузить» нет?
Значит, у этого документа нет штатной выгрузки. Используйте обработку «Выгрузка и загрузка данных XML» для переноса в другую базу 1С или напишите выгрузку кодом под нужную структуру.
Как сохранить документ в хмл формате из 1С без программиста?
Для отчётности — кнопкой Выгрузить в регламентированном отчёте. Для счёта-фактуры и УПД — через ЭДО → Просмотреть электронный документ → Сохранить в файл. Оба способа не требуют доработок.
Можно ли открыть и отредактировать выгруженный XML в блокноте?
Технически да, практически — нельзя. Любая правка файла ФНС ломает контрольные суммы формата, а правка файла ЭДО делает недействительной подпись. Исправляйте данные в 1С и выгружайте заново.
Чем XML отличается от mxl и xlsx при сохранении документа?
mxl и xlsx хранят внешний вид таблицы, XML — структуру данных в полях. Человеку удобнее первое, программе-получателю нужно второе.
Как выгружать в XML из 1С автоматически по расписанию?
Настройте синхронизацию данных (Администрирование → Синхронизация данных) или оформите код выгрузки регламентным заданием. На файловой базе задания работают только при открытом сеансе.
Почему XML-файл для ИФНС в кодировке windows-1251, а не UTF-8?
Так задано форматом приёма отчётности. Если пересохранить файл в UTF-8, приёмный комплекс его отклонит ещё на входном контроле.

Источники

  • НК РФ, ст. 169 — счёт-фактура, в том числе составленный в электронной форме
  • Приказ ФНС России от 19.12.2018 № ММВ-7-15/820@ — формат счёта-фактуры и УПД в электронном виде
  • Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»