Выгрузка накладной из 1С в формат XML: рабочие способы
Содержание
Товарную накладную из 1С в XML выгружают тремя разными путями, и выбор зависит от того, куда файл поедет. Для контрагента — через ЭДО в формате ФНС. Для переноса в другую свою базу — универсальным обменом в формате EnterpriseData. Для внешней программы или разового сценария — программно через XDTO или COM.
Самый частый случай — электронный документ контрагенту. В «1С:Бухгалтерии 8» (ред. 3.0) откройте раздел Продажи → Реализация (акты, накладные, УПД), выберите нужный документ и работайте с ним через команды подменю ЭДО. Ниже — каждый способ по порядку, с путями меню, форматами и проверкой готового XML.
Какой XML нужен именно вам
XML — это текстовый формат с жёсткой структурой тегов. Но «накладная в XML» означает три несовместимых между собой файла, и подмена одного другим — главная причина, почему потом «ничего не грузится».
- 📄 Формат ФНС — для юридически значимого обмена с контрагентом через оператора ЭДО. Структура тегов задана приказом налоговой, менять её нельзя.
- 🔁 Формат EnterpriseData — для синхронизации между конфигурациями 1С (например, из УТ в Бухгалтерию). Универсальный формат обмена, который понимают типовые решения.
- 🧱 Внутренний формат выгрузки XML — технический дамп объекта для переноса между копиями одной и той же конфигурации.
Прежде чем жать кнопки, ответьте на один вопрос: кто откроет этот файл. Человек у контрагента, другая база 1С или ваш собственный скрипт — для каждого адресата свой способ.
Что заполнить до выгрузки
Формат ФНС и универсальный обмен отвергают документ, если в нём не хватает обязательных реквизитов. Потратить две минуты на проверку дешевле, чем ловить отказ оператора задним числом.
- 🏢 Реквизиты организации. В
Главное → Организациидолжны быть заполнены ИНН, КПП и адрес. Для электронного документа это обязательные поля отправителя. - 👤 Карточка контрагента. ИНН и КПП покупателя — ключ, по которому файл адресуется и по которому приёмник ищет контрагента при обмене между базами. Пустой КПП у юрлица — частая причина отказа.
- 📦 Номенклатура и единицы измерения. У позиций должны стоять единицы измерения; в формате ФНС код единицы берётся из классификатора ОКЕИ. Если единица не заполнена, тег уйдёт пустым.
- 🔢 Номер и дата документа. Реализация должна быть проведена. Выгружать черновик без номера бессмысленно — приёмник не примет документ без идентификатора.
Если накладных много и реквизиты «разъехались» исторически, перед первой выгрузкой прогоните список реализаций и отсортируйте по контрагенту — пустые ИНН/КПП видно сразу.
Выгрузка накладной через ЭДО в формате ФНС
Это основной способ, когда накладную нужно передать покупателю. Товарная накладная и универсальный передаточный документ (УПД) имеют утверждённые ФНС XML-форматы, и 1С формирует файл по действующей версии автоматически.
Порядок в «1С:Бухгалтерии 8» (ред. 3.0):
- Откройте
Администрирование → Обмен электронными документамии убедитесь, что настроен обмен с контрагентами и подключена электронная подпись. - Перейдите в
Продажи → Реализация (акты, накладные, УПД)и откройте нужный документ. - В карточке документа нажмите
ЭДО → Просмотреть электронный документ. 1С сформирует файл в формате ФНС. - Чтобы сохранить XML на диск, в окне просмотра электронного документа используйте команду сохранения (
Ещё → Сохранитьили кнопку выгрузки файла).
Если контрагент тоже в системе ЭДО, файл обычно не сохраняют вручную — его отправляет оператор. Ручная выгрузка нужна, когда контрагент работает через другого оператора без роуминга или просит файл «на флешке».
Товарная накладная ТОРГ-12 и счёт-фактура в электронном виде подписываются квалифицированной электронной подписью — это требование для счёта-фактуры и основание юридической значимости по 63-ФЗ. Первичку по соглашению сторон можно подписывать и неквалифицированной подписью, но для обмена через оператора почти всегда используют КЭП.
Версия формата зашита в сам файл (в корневом теге). Если контрагент жалуется, что файл «старого образца», обновите конфигурацию — форматы ФНС меняются, и типовые решения подтягивают новую версию вместе с релизом.
Универсальный обмен: формат EnterpriseData
Когда накладную нужно перенести из одной базы 1С в другую (из «Управления торговлей» в «Бухгалтерию», между распределёнными узлами), используют универсальный обмен в формате EnterpriseData. Это не файл для контрагента, а пакет синхронизации.
Настройка в типовых конфигурациях:
- Зайдите в
Администрирование → Синхронизация данныхи включите саму возможность синхронизации. - Создайте настройку обмена, выбрав вариант через универсальный формат (EnterpriseData).
- Укажите каталог или ресурс, куда 1С будет класть XML-файлы выгрузки.
- Запустите синхронизацию — программа сформирует XML-пакет с документами реализации за выбранный период.
В формате EnterpriseData документ реализации выгружается как объект Документ.РеализацияТоваровУслуг со всеми табличными частями. Приёмник распознаёт его по правилам конвертации, встроенным в типовую конфигурацию
.
Сопоставление идёт по реквизитам, а не по внутренним идентификаторам. Если у контрагента в двух базах разные ИНН/КПП или номенклатура названа по-разному, объект в приёмнике либо задвоится, либо не найдётся. Выверьте справочники до первой выгрузки.
Главное отличие от ЭДО: EnterpriseData — это обмен «1С ↔ 1С», его не поймёт сторонняя бухгалтерская программа и не примет оператор ЭДО.
Стандартная обработка «Выгрузка и загрузка данных XML»
Для переноса документов между одинаковыми конфигурациями (например, из рабочей базы в тестовую копию) подходит типовая обработка выгрузки данных в XML. Она входит в комплект поставки и доступна на диске ИТС.
Как работать:
- Откройте обработку через
Файл → Открытьи выберите файл обработки (расширение.epf). - На закладке выгрузки отметьте объект — документ реализации — и задайте период или отбор по конкретным накладным.
- Укажите путь к файлу выгрузки и запустите формирование XML.
- В приёмной базе откройте ту же обработку в режиме загрузки и укажите полученный файл.
Этот формат работает только между идентичными конфигурациями одной версии. Выгрузить документ из УТ и загрузить в Бухгалтерию через неё не получится — структура метаданных должна совпадать до реквизита. Для разнородных баз используйте EnterpriseData из предыдущего раздела.
Обработка переносит объект «как есть», вместе со ссылками на номенклатуру и контрагентов, поэтому зависимые элементы справочников тоже должны попасть в выгрузку — иначе при загрузке получите «битые» ссылки.
Внешние обработки и расширения конфигурации
Когда нужен нестандартный XML — своя структура тегов под конкретную внешнюю систему, маркетплейс или учётный портал, — пишут внешнюю обработку либо расширение конфигурации.
- 🧩 Внешняя обработка (
.epf) — отдельный файл, который открывают черезФайл → Открыть. Удобна для разовых и переносимых сценариев: один файл работает в нескольких базах. - 🧩 Расширение конфигурации (
.cfe) — подключается к базе на постоянной основе черезАдминистрирование → Печатные формы, отчёты и обработки → Расширения. Удобно, когда выгрузку надо встроить в интерфейс (своя кнопка в документе).
Расширения конфигурации
появились на платформе 8.3.6 и позволяют добавить свой макет или команду выгрузки, не снимая типовую конфигурацию с поддержки. Загрузка .cfe и последующее «Обновить конфигурацию
базы данных» — два отдельных шага: пока не выполнена вторая команда, изменения не применятся.
Готовую обработку с неизвестного сайта не запускайте в рабочей базе без проверки кода — внешний модуль выполняется с правами запустившего пользователя и имеет полный доступ к данным.
Программная выгрузка: XDTO и COM-соединение
Если XML нужно формировать из кода — например, по расписанию или из внешней программы, — используют сериализацию XDTO внутри 1С или COM-соединение снаружи.
Сериализация объекта в XML средствами 1С. Самый короткий путь — глобальный сериализатор. Пример записывает документ реализации в файл целиком:
ДокОбъект = ДокументСсылка.ПолучитьОбъект();
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Обмен\nakladnaya.xml");
СериализаторXDTO.ЗаписатьXML(Запись, ДокОбъект);
Запись.Закрыть();
Так получится технический XML со всеми реквизитами объекта. Он не соответствует формату ФНС — это сериализация внутренней структуры, пригодная для своих интеграций.
Своя структура тегов. Если внешняя система ждёт конкретный формат, теги пишут вручную через ЗаписьXML: методами ЗаписатьНачалоЭлемента, ЗаписатьТекст, ЗаписатьКонецЭлемента. Так вы полностью контролируете имена тегов и порядок.
Строки в теги кладите без ручной склейки чисел и текста: число приводите к строке через Формат(Сумма, "ЧДЦ=2; ЧРД=."), иначе в XML попадёт разделитель разрядов или локальная запятая, и приёмник не разберёт сумму.
COM-соединение нужно, когда выгрузку инициирует внешняя программа (не 1С). Объект создаётся так:
Коннектор = Новый COMObject("V83.COMConnector");
Соединение = Коннектор.Connect("File=""C:\Base"";Usr=""Петров"";Pwd=""...""");
Дальше через Соединение обращаются к объектам базы и формируют XML уже описанными методами. COM-соединение требует установленной платформы и совпадения разрядности (32/64 бит) клиента и comcntr.
Если выгрузка должна идти по расписанию, не поднимайте COM без необходимости: внутри серверной базы проще повесить сериализацию на регламентное задание и складывать готовые XML в сетевой каталог. COM оставляют для случая, когда инициатор — именно внешняя программа, а не сама 1С.
Как проверить готовый XML-файл
Файл сформирован — но примет ли его получатель? Три уровня проверки, от быстрой к строгой:
- Корректность разметки. Откройте XML в браузере. Если страница отрисовалась деревом тегов без красной ошибки — файл well-formed. Если браузер ругается на строку — где-то незакрытый тег или битая кодировка.
- Кодировка. В заголовке файла должно стоять
<?xml version="1.0" encoding="UTF-8"?>(для форматов ФНС — UTF-8). «Кракозябры» в именах контрагентов — признак того, что файл сохранён в другой кодировке. - Соответствие схеме (XSD). Формат ФНС и EnterpriseData описаны XSD-схемами. Проверить можно во внешнем XML-редакторе, подключив схему, либо довериться оператору ЭДО — он валидирует файл при отправке и вернёт понятную ошибку.
Для обмена «1С ↔ 1С» лучшая проверка — загрузить файл в приёмную базу на тестовой копии. Если объект создался и провёлся без предупреждений, формат верный.
Новый ЗаписьXML с явной кодировкой UTF-8.&, <) в тексте реквизита. При ручном формировании экранируйте такие символы, при типовой выгрузке — проверьте, нет ли в наименовании номенклатуры «кривых» символов.Частые вопросы
Чем формат ФНС отличается от обычной выгрузки XML?
Можно ли выгрузить сразу пачку накладных одним файлом?
Нужна ли электронная подпись, чтобы просто сохранить XML?
Почему контрагент не может открыть мой XML в своей бухгалтерии?
Как выгрузить накладную, если контрагент работает у другого оператора?
ЭДО → Просмотреть электронный документ и передайте его контрагенту вручную, вместе с файлом подписи.Источники
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»