Выгрузка документов из 1С в формат XML: 6 рабочих способов
Содержание
Единой кнопки «Сохранить в 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», уточните формат: 90% запросов закрывает либо XML-файл ЭДО по приказу ФНС, либо выгрузка в CommerceML (обмен с сайтом).
Способ 1. Как в 1С сохранить документ в формате XML для ФНС и СФР
Отчётность — единственный случай, где XML формируется кнопкой и без обработок. Структура файла жёстко задана приказом ведомства, 1С собирает его сама.
Пошагово в «Бухгалтерии» 3.0
- Откройте
Отчёты→Регламентированные отчёты(в базе с 1С-Отчётностью раздел называетсяОтчёты→1С-Отчётность→Регламентированные отчёты). - Найдите нужный отчёт в списке и откройте его. Отчёт должен быть заполнен и проверен.
- Нажмите
Проверка→Проверить выгрузку. 1С прогонит контроль формата и покажет ошибки списком. - Нажмите
Выгрузить→Файл для передачи в ИФНС. - Укажите каталог. Имя файла 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 с подписью. Он лежит в архиве ЭДО.
- Откройте документ — например,
Продажи→Реализация (акты, накладные, УПД)→ нужную реализацию. - В верхней панели нажмите
ЭДО→Просмотреть электронный документ. - В открывшейся форме нажмите
Ещё→Сохранить в файл(в части релизов кнопка подписанаСохранить XML). - Выберите каталог. Рядом с XML 1С выгрузит файлы подписей с расширением
.sgnили.p7s.
Второй путь — через журнал: Продажи → Архив ЭДО, отбор по контрагенту и дате, затем та же команда сохранения. В «Бухгалтерии» 3.0 архив доступен и из раздела Компания → Обмен электронными документами.
Для ИФНС отправляйте XML вместе с файлами подписей. XML без подписи — это просто текст, он не подтверждает ни дату, ни подписанта.
Полезно знать, что внутри. XML счёта-фактуры и УПД строится по приказу ФНС от 19.12.2018 № ММВ-7-15/820@: корневой элемент Файл, внутри Документ с реквизитами продавца, покупателя и таблицей товаров. Поэтому «красиво» такой файл не откроется — его читают приёмные комплексы, а человеку удобнее смотреть печатное представление из той же формы.
Способ 3. Как выгружать в XML из 1С целыми пачками: универсальная обработка
Классический инструмент для переноса документов между базами — внешняя обработка «Выгрузка и загрузка данных XML» (файл вида ВыгрузкаЗагрузкаДанныхXML83.epf из комплекта поддержки). Она умеет забрать любые объекты: документы, справочники, регистры.
Как подключить и выгрузить
- Войдите в базу под пользователем с полными правами.
Файл→Открытьи выберите файл обработки.epf.- На закладке
Выгрузкараскройте дерево метаданных и отметьте галочками нужное — например,Документы→РеализацияТоваровУслуг. - В поле
Периодзадайте интервал. Без периода выгрузятся все документы за всю историю базы. - При необходимости задайте отбор по организации или контрагенту в правой части формы.
- Укажите имя файла выгрузки, например
C:\Exchange\realizacii.xml. - Нажмите
Выгрузить данныеи дождитесь протокола.
Ограничения, о которых молчат инструкции
- Обработка переносит объекты «как есть», ссылка в ссылку. Если в базе-приёмнике нет справочника с теми же реквизитами, загрузка упадёт.
- Разные релизы конфигураций = разный состав реквизитов. Выгрузка из «Бухгалтерии» 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 всё-таки требуют:
- Через Excel. Сохраните печатную форму в
.xlsx, откройте в Excel и выберитеФайл→Сохранить как→ типXML-таблица 2003 (*.xml). Получится XML с разметкой таблицы — для анализа сгодится, для обмена данными нет. - Через HTML. Сохранение в
.htmlдаёт тегированный текст, который парсится почти так же легко, как XML. Иногда этого достаточно. - Правильный путь. Если файл нужен программе, а не человеку, выгружайте данные документа способами 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-файл
Проверить файл стоит до того, как он уйдёт в инспекцию или партнёру. Минимум три шага:
- Откройте в браузере. Перетащите
.xmlв окно Chrome или Firefox. Корректный файл раскроется деревом. Если браузер ругается на ошибку разбора — файл битый, в нём незакрытый тег или лишний символ. - Посмотрите кодировку и первую строку. Она должна совпадать с заявленной в объявлении XML. Правьте только редактором, который не ломает кодировку — например, Notepad++ с меню
Кодировки. - Прогоните штатную проверку. Для отчётности это
Проверка→Проверить выгрузкув самом отчёте, для файлов ЭДО — повторная загрузка XML в тестовую базу.
Для сверки сумм после переноса документов между базами удобно сравнить две оборотно-сальдовые ведомости за один период: Отчёты → Оборотно-сальдовая ведомость в источнике и приёмнике. Расхождение по счёту сразу покажет, какие документы не доехали.
Типичные ошибки при выгрузке документов в XML
&, <, кавычка) или текст в другой кодировке. Почистите наименование контрагента или комментарий и выгрузите повторно.Формат(Сумма, "ЧРД=.; ЧГ=0").Администрирование → Обмен электронными документами → флаг Электронные документы.Ещё одна ловушка — права. Внешние обработки открываются только при включённом праве «Открытие внешних отчётов и обработок»: Администрирование → Настройки пользователей и прав → профиль пользователя. На практике эту галочку оставляют администратору и снимают у бухгалтеров.
Частые вопросы
Как в 1С сохранить документ в XML, если кнопки «Выгрузить» нет?
Как сохранить документ в хмл формате из 1С без программиста?
Выгрузить в регламентированном отчёте. Для счёта-фактуры и УПД — через ЭДО → Просмотреть электронный документ → Сохранить в файл. Оба способа не требуют доработок.Можно ли открыть и отредактировать выгруженный XML в блокноте?
Чем XML отличается от mxl и xlsx при сохранении документа?
mxl и xlsx хранят внешний вид таблицы, XML — структуру данных в полях. Человеку удобнее первое, программе-получателю нужно второе.Как выгружать в XML из 1С автоматически по расписанию?
Администрирование → Синхронизация данных) или оформите код выгрузки регламентным заданием. На файловой базе задания работают только при открытом сеансе.Почему XML-файл для ИФНС в кодировке windows-1251, а не UTF-8?
Источники
- НК РФ, ст. 169 — счёт-фактура, в том числе составленный в электронной форме
- Приказ ФНС России от 19.12.2018 № ММВ-7-15/820@ — формат счёта-фактуры и УПД в электронном виде
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»