Как выгрузить УПД в формате XML из 1С без подключения к ЭДО

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В современной практике часто возникает ситуация, когда организация не использует прямой обмен электронными документами через 1С, предпочитая загружать файлы вручную через веб-интерфейсы операторов (СБИС, Контур.Диадок). Однако для этого необходимо получить корректный XML-файл, соответствующий формату УПД 2019 (ММВ-7-15/820@). В типовых конфигурациях, использующих Библиотеку электронных документов (БЭД), такая возможность заложена штатно, даже если у вас не настроено ни одно соглашение с оператором.

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

Способ 1. Активация штатного функционала через настройки

Прежде всего, разберем ситуацию, когда нужная команда просто скрыта в интерфейсе. В типовых решениях (например, 1С:Бухгалтерия 3.0, УНФ, ERP) кнопка выгрузки находится в подменю ЭДО. Если её нет, выполним следующие шаги:

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

Если вы работаете в отраслевых решениях, таких как Альфа-Авто, проверьте наличие ролей у пользователя. Потребуется роль Использование электронных документов или аналогичная, дающая право на работу с объектами подсистемы БЭД.

Способ 2. Программный вызов окна выгрузки

Проанализируем ситуацию, когда интерфейсные механизмы конфигурации не позволяют вывести стандартную кнопку (например, из-за кастомизации форм). В этом случае мы можем воспользоваться программным интерфейсом БЭД. Рассмотрим, как работает обработка ИнтерфейсДокументовЭДО и её форма ВыгрузкаЭлектронныхДокументовВФайл.

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


// Пример вызова стандартного окна выгрузки БЭД
МассивСсылок = Новый Массив;
МассивСсылок.Добавить(Объект.Ссылка); // Ссылка на ваш документ реализации

// Используем процедуру из клиентского модуля БЭД
ЭлектронныеДокументыСлужебныйКлиент.ВыгрузитьДокументыВФайлы(МассивСсылок);

Этот метод инициирует стандартный процесс: система проанализирует документ, определит подходящий формат (в нашем случае 820@) и предложит сохранить XML-файл или архив на диск. Основное преимущество этого способа в том, что 1С сама заполнит все необходимые узлы XML согласно актуальным требованиям законодательства.

Проблема совместимости: разделители в ИНН и КПП

Выясним причину, по которой сторонние системы (например, Контур.Диадок) иногда отказываются принимать файлы, выгруженные из 1С. Часто при загрузке возникает ошибка валидации имени файла или структуры.

Проанализируем формат имени файла. Согласно требованиям ФНС, имя файла содержит идентификаторы отправителя и получателя. Если в настройках 1С не указан ваш ID ЭДО, система может сформировать техническое имя. Однако есть и более тонкий момент: разделители. В некоторых случаях 1С использует нижнее подчеркивание _ там, где парсер оператора ожидает дефис - (особенно в блоке ИНН-КПП).

Практический совет: если файл не загружается, попробуйте вручную переименовать файл, заменив _ на - в части идентификатора контрагента, или проверьте, чтобы в карточке организации и контрагента в 1С не было лишних пробелов в полях ИНН/КПП.

Настройка формата и статуса документа

Рассмотрим подробнее структуру самого XML. При выгрузке УПД критически важно, какой Статус будет присвоен документу в файле:

Если ваш контрагент требует УПД со статусом "1", а система выгружает "2", убедитесь, что в базе 1С создан и проведен документ счета-фактуры. Без него подсистема БЭД не сможет сформировать секцию с налогами и соответствующими реквизитами, необходимыми для полноценного УПД.

Использование внешних обработок как альтернатива

Если штатная подсистема БЭД в вашей конфигурации работает некорректно или сильно устарела, существует путь формирования XML "вручную" через текстовую запись. Это позволяет не зависеть от настроек прав и функциональных опций. Проанализируем пример логики формирования узла заголовка:


ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();

// Формируем корневой элемент согласно Приказу 820@
ЗаписьXML.ЗаписатьНачалоЭлемента("Файл");
ЗаписьXML.ЗаписатьАтрибут("ИдФайл", СформироватьИдентификаторФайла(ДокументСсылка));
ЗаписьXML.ЗаписатьАтрибут("ВерсПрог", "1С:Предприятие 8.3");
ЗаписьXML.ЗаписатьАтрибут("ВерсФорм", "5.01");

// Далее следует заполнение данных продавца, покупателя и табличной части
// ...

Однако создание такой обработки с нуля — трудоемкий процесс, требующий строгого соблюдения XSD-схемы ФНС. Поэтому рекомендуется в первую очередь настраивать штатную Библиотеку электронных документов, так как она регулярно обновляется фирмой "1С" вслед за изменениями в законодательстве (например, при введении маркировки или прослеживаемости товаров).

Итоги

Выгрузка УПД в XML без подключения к оператору возможна и реализована практически во всех современных конфигурациях 1С. Для успеха операции необходимо:

  1. Активировать базовые константы обмена электронными документами в настройках.
  2. Убедиться, что у пользователя достаточно прав на объекты БЭД.
  3. Проверить наличие связанных счетов-фактур для получения файла со "Статусом 1".
  4. При необходимости использовать программный вызов ЭлектронныеДокументыСлужебныйКлиент.ВыгрузитьДокументыВФайлы.
← На главную