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

· 9 мин

Содержание

Товарную накладную из 1С в XML выгружают тремя разными путями, и выбор зависит от того, куда файл поедет. Для контрагента — через ЭДО в формате ФНС. Для переноса в другую свою базу — универсальным обменом в формате EnterpriseData. Для внешней программы или разового сценария — программно через XDTO или COM.

Самый частый случай — электронный документ контрагенту. В «1С:Бухгалтерии 8» (ред. 3.0) откройте раздел Продажи → Реализация (акты, накладные, УПД), выберите нужный документ и работайте с ним через команды подменю ЭДО. Ниже — каждый способ по порядку, с путями меню, форматами и проверкой готового XML.

Какой XML нужен именно вам

XML — это текстовый формат с жёсткой структурой тегов. Но «накладная в XML» означает три несовместимых между собой файла, и подмена одного другим — главная причина, почему потом «ничего не грузится».

  • 📄 Формат ФНС — для юридически значимого обмена с контрагентом через оператора ЭДО. Структура тегов задана приказом налоговой, менять её нельзя.
  • 🔁 Формат EnterpriseData — для синхронизации между конфигурациями 1С (например, из УТ в Бухгалтерию). Универсальный формат обмена, который понимают типовые решения.
  • 🧱 Внутренний формат выгрузки XML — технический дамп объекта для переноса между копиями одной и той же конфигурации.

Прежде чем жать кнопки, ответьте на один вопрос: кто откроет этот файл. Человек у контрагента, другая база 1С или ваш собственный скрипт — для каждого адресата свой способ.

Куда отправляется накладная?

Что заполнить до выгрузки

Формат ФНС и универсальный обмен отвергают документ, если в нём не хватает обязательных реквизитов. Потратить две минуты на проверку дешевле, чем ловить отказ оператора задним числом.

  • 🏢 Реквизиты организации. В Главное → Организации должны быть заполнены ИНН, КПП и адрес. Для электронного документа это обязательные поля отправителя.
  • 👤 Карточка контрагента. ИНН и КПП покупателя — ключ, по которому файл адресуется и по которому приёмник ищет контрагента при обмене между базами. Пустой КПП у юрлица — частая причина отказа.
  • 📦 Номенклатура и единицы измерения. У позиций должны стоять единицы измерения; в формате ФНС код единицы берётся из классификатора ОКЕИ. Если единица не заполнена, тег уйдёт пустым.
  • 🔢 Номер и дата документа. Реализация должна быть проведена. Выгружать черновик без номера бессмысленно — приёмник не примет документ без идентификатора.

Если накладных много и реквизиты «разъехались» исторически, перед первой выгрузкой прогоните список реализаций и отсортируйте по контрагенту — пустые ИНН/КПП видно сразу.

Выгрузка накладной через ЭДО в формате ФНС

Это основной способ, когда накладную нужно передать покупателю. Товарная накладная и универсальный передаточный документ (УПД) имеют утверждённые ФНС XML-форматы, и 1С формирует файл по действующей версии автоматически.

Порядок в «1С:Бухгалтерии 8» (ред. 3.0):

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

Если контрагент тоже в системе ЭДО, файл обычно не сохраняют вручную — его отправляет оператор. Ручная выгрузка нужна, когда контрагент работает через другого оператора без роуминга или просит файл «на флешке».

Товарная накладная ТОРГ-12 и счёт-фактура в электронном виде подписываются квалифицированной электронной подписью — это требование для счёта-фактуры и основание юридической значимости по 63-ФЗ. Первичку по соглашению сторон можно подписывать и неквалифицированной подписью, но для обмена через оператора почти всегда используют КЭП.

Версия формата зашита в сам файл (в корневом теге). Если контрагент жалуется, что файл «старого образца», обновите конфигурацию — форматы ФНС меняются, и типовые решения подтягивают новую версию вместе с релизом.

Универсальный обмен: формат EnterpriseData

Когда накладную нужно перенести из одной базы 1С в другую (из «Управления торговлей» в «Бухгалтерию», между распределёнными узлами), используют универсальный обмен в формате EnterpriseData. Это не файл для контрагента, а пакет синхронизации.

Настройка в типовых конфигурациях:

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

В формате EnterpriseData документ реализации выгружается как объект Документ.РеализацияТоваровУслуг со всеми табличными частями. Приёмник распознаёт его по правилам конвертации, встроенным в типовую конфигурацию .

Сопоставление полей
Номенклатура (из реализации)→Справочник «Номенклатура» в приёмнике
Контрагент (ИНН/КПП)→Справочник «Контрагенты», поиск по ИНН+КПП
Ставка НДС→Перечисление ставок НДС
Склад→Справочник «Склады (места хранения)»

Сопоставление идёт по реквизитам, а не по внутренним идентификаторам. Если у контрагента в двух базах разные ИНН/КПП или номенклатура названа по-разному, объект в приёмнике либо задвоится, либо не найдётся. Выверьте справочники до первой выгрузки.

Главное отличие от ЭДО: EnterpriseData — это обмен «1С ↔ 1С», его не поймёт сторонняя бухгалтерская программа и не примет оператор ЭДО.

Стандартная обработка «Выгрузка и загрузка данных XML»

Для переноса документов между одинаковыми конфигурациями (например, из рабочей базы в тестовую копию) подходит типовая обработка выгрузки данных в XML. Она входит в комплект поставки и доступна на диске ИТС.

Как работать:

  1. Откройте обработку через Файл → Открыть и выберите файл обработки (расширение .epf).
  2. На закладке выгрузки отметьте объект — документ реализации — и задайте период или отбор по конкретным накладным.
  3. Укажите путь к файлу выгрузки и запустите формирование XML.
  4. В приёмной базе откройте ту же обработку в режиме загрузки и укажите полученный файл.

Этот формат работает только между идентичными конфигурациями одной версии. Выгрузить документ из УТ и загрузить в Бухгалтерию через неё не получится — структура метаданных должна совпадать до реквизита. Для разнородных баз используйте 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-файл

Файл сформирован — но примет ли его получатель? Три уровня проверки, от быстрой к строгой:

  1. Корректность разметки. Откройте XML в браузере. Если страница отрисовалась деревом тегов без красной ошибки — файл well-formed. Если браузер ругается на строку — где-то незакрытый тег или битая кодировка.
  2. Кодировка. В заголовке файла должно стоять <?xml version="1.0" encoding="UTF-8"?> (для форматов ФНС — UTF-8). «Кракозябры» в именах контрагентов — признак того, что файл сохранён в другой кодировке.
  3. Соответствие схеме (XSD). Формат ФНС и EnterpriseData описаны XSD-схемами. Проверить можно во внешнем XML-редакторе, подключив схему, либо довериться оператору ЭДО — он валидирует файл при отправке и вернёт понятную ошибку.

Для обмена «1С ↔ 1С» лучшая проверка — загрузить файл в приёмную базу на тестовой копии. Если объект создался и провёлся без предупреждений, формат верный.

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

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

Чем формат ФНС отличается от обычной выгрузки XML?
Формат ФНС имеет жёстко заданную структуру тегов, утверждённую налоговой, и годится для юридически значимого обмена. Обычная выгрузка XML (сериализация объекта) — это технический дамп внутренней структуры 1С, контрагент и налоговая его не примут.
Можно ли выгрузить сразу пачку накладных одним файлом?
Через ЭДО каждый документ выгружается отдельным файлом — это требование формата. Универсальный обмен и стандартная обработка XML умеют складывать в один пакет множество документов за период.
Нужна ли электронная подпись, чтобы просто сохранить XML?
Нет. Сформировать и сохранить файл можно без подписи. Подпись (как правило, квалифицированная) требуется для отправки документа контрагенту через оператора ЭДО, а не для самого факта выгрузки.
Почему контрагент не может открыть мой XML в своей бухгалтерии?
Скорее всего вы отправили технический XML (сериализацию объекта) вместо файла в формате ФНС. Сторонняя программа понимает только утверждённый формат. Сформируйте документ через команды ЭДО.
Как выгрузить накладную, если контрагент работает у другого оператора?
Если между операторами настроен роуминг, обмен идёт автоматически. Если роуминга нет — сохраните файл формата ФНС через ЭДО → Просмотреть электронный документ и передайте его контрагенту вручную, вместе с файлом подписи.

Источники

  • Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»