УНФ 3.0/УТ11.5: ошибка формирования Электронное поручение экспедитору с иностранным грузоотправителем. СвИнНеУч, ИдСтат, КодСтр и исправление типового механизма

29.09.26

Интеграция - ЭДО и ОФД

Разбор ошибки формирования электронного поручения экспедитору в УНФ 3.0.14.140, когда иностранный грузоотправитель ошибочно определяется как российское юридическое лицо либо в сформированном ЭД отсутствуют обязательные реквизиты СвИнНеУч: статус иностранного лица, код страны, наименование и идентификатор. В статье подробно разобран типовой механизм получения реквизитов участника, причина потери страны регистрации, дальнейшая проблема сопоставления реквизитов формы и XML, а также вариант исправления через расширение без изменения основной конфигурации. Готовое расширение с исправлением приложено к публикации за символическую стоимость для тех, кому не требуется повторять разработку вручную.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Исправление ЭПЭ с иностранным грузоотправителем для УТ 11.5.27.88
.cfe 9,65Kb
11 3 800 руб. Купить
Исправление ЭПЭ с иностранным грузоотправителем для УНФ 3.0.14.140
.cfe 10,70Kb
5 3 400 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Предыстория

При внедрении электронных перевозочных документов столкнулся с довольно неприятным сценарием в 1С:Управление нашей фирмой 3.0.14.140.

Необходимо было сформировать электронное поручение экспедитору, ЭПЭ, где грузоотправителем выступает иностранная организация.

В рассматриваемом случае это была китайская компания:

SMARTGEN (ZHENGZHOU) TECHNOLOGY CO., LTD

В карточке контрагента были заполнены:

Страна регистрации: КИТАЙ
Код страны: 156
Регистрационный номер: 9141010074923612XG
ИНН РФ: не заполнен

То есть это обычный иностранный контрагент, не состоящий на учете в российских налоговых органах.

При попытке сформировать электронный документ возникала ошибка проверки обязательных реквизитов.

Первоначально система требовала:

//Файл/Документ/СодИнфКлнт/СвГруз/СвГО/ИдСв/СвЮЛУч/ИННЮЛ

Что уже само по себе выглядело подозрительно.

Для иностранной организации должен использоваться не узел российского юридического лица:

СвЮЛУч

а структура:

СвИнНеУч

После исправления определения страны последовательно проявились следующие ошибки:

//Файл/Документ/СодИнфКлнт/СвГруз/СвГО/ИдСв/СвИнНеУч/Наим

а затем:

//Файл/Документ/СодИнфКлнт/СвГруз/СвГО/ИдСв/СвИнНеУч/ИдСтат

Именно после этого пришлось разбирать цепочку формирования ЭПЭ практически до XDTO.


Где находится проблема

Основной интерес представляет общий модуль:

ОбменСГИСЭПД

и функция:

ПолучитьРеквизитыУчастника

Типовая логика примерно следующая.

Сначала создается структура сведений об участнике:

СведенияОбУчастнике = ЭлектронноеВзаимодействие.СтруктураДанныхЮрФизЛица();

Затем вызывается:

ЭлектронноеВзаимодействиеПереопределяемый.ПолучитьДанныеЮрФизЛица(
    Участник,
    СведенияОбУчастнике);

После этого конфигурация пытается определить страну регистрации:

СтранаРегистрации = Неопределено;
СведенияОбУчастнике.Свойство(
    "СтранаРегистрации",
    СтранаРегистрации);

И далее принимает принципиальное решение.

Если страна заполнена и отличается от России, участник считается иностранным:

ИнострЛицоБезУчета...

В противном случае он попадает в российскую ветку:

ЮЛНаименование
ЮЛ_ИНН
ЮЛ_КПП
ЮЛ_ОГРН

И именно здесь обнаружилась первая проблема.


Ошибка №1. Теряется СтранаРегистрации

Отладчиком было установлено следующее.

После выполнения:

ЭлектронноеВзаимодействиеПереопределяемый.ПолучитьДанныеЮрФизЛица(...)

переменная:

СтранаРегистрации

оставалась:

Неопределено

Хотя прямое чтение реквизита контрагента:

ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
    Участник,
    "СтранаРегистрации")

возвращало:

КИТАЙ

Причина оказалась в структуре данных.

ПолучитьДанныеЮрФизЛица() получает сведения о контрагенте и затем переносит их в переданную структуру через механизм наподобие:

ЗаполнитьЗначенияСвойств(...)

Но если соответствующее свойство отсутствует в целевой структуре, оно туда не попадает.

В результате страна присутствует в карточке контрагента, но до ПолучитьРеквизитыУчастника() фактически не доходит.

Из-за этого условие:

Если ЗначениеЗаполнено(СтранаРегистрации)
    И СтранаРегистрации <> Россия Тогда

не выполняется.

Иностранная компания уходит в российскую ветку, после чего XML закономерно требует российский ИНН.


Исправление определения иностранного участника

Самый простой вариант исправления состоит в том, чтобы после штатной попытки получить страну из СведенияОбУчастнике добавить резервное чтение непосредственно из объекта контрагента.

Логика:

Если СтранаРегистрации не заполнена
    И участник является контрагентом Тогда

    СтранаРегистрации =
        значение реквизита Контрагент.СтранаРегистрации;

КонецЕсли;

После этого типовая ветка начинает работать правильно.

В нашем случае система перестала формировать:

СвЮЛУч

и начала формировать:

СвИнНеУч

Это уже принципиально важный результат.


Ошибка №2. Для СвИнНеУч недостаточно двух реквизитов

Штатный код иностранной ветки в рассматриваемом релизе фактически формировал только часть данных:

ИнострЛицоБезУчетаСтрана
ИнострЛицоБезУчетаИдентификатор

Но для формирования XML ЭПЭ этого оказалось недостаточно.

Понадобились также:

ИнострЛицоБезУчетаНаименование
ИнострЛицоБезУчетаКодСтраны
ИнострЛицоБезУчетаСтатусИО_ИГ

Наименование можно получить из:

СведенияОбУчастнике.ПолноеНаименование

Код страны:

ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
    СтранаРегистрации,
    "Код")

Для Китая это:

156

Статус определяется по типу иностранного лица.

Для иностранной организации:

ИО

Для иностранного гражданина:

ИГ

После этого структура участника уже содержит полный набор данных иностранного лица.

Казалось бы, на этом проблема должна закончиться.

Но нет. Здесь начинается самая интересная часть.


Ошибка №3. Данные сформированы, но ИдСтат все равно отсутствует

После заполнения:

ИнострЛицоБезУчетаСтатусИО_ИГ = ИО

ошибка:

СвИнНеУч/ИдСтат

не исчезла.

Поэтому пришлось разбирать следующий этап.

В ЭПЭ данные грузов хранятся внутри структуры:

ТитулЗаказчикаГрузы

У строки груза существует поле:

ГрузоотправительИнострЛицоБезУчетаИдентификацияСтатуса

Однако макет соответствия XML ожидает другое имя:

ГрузоотправительИнострЛицоБезУчетаСтатусИО_ИГ

То есть фактически имеем рассинхронизацию двух частей механизма.

Форма и структура данных работают с:

...ИдентификацияСтатуса

а XML-сопоставление ожидает:

...СтатусИО_ИГ

Поэтому значение существует логически, но до узла:

СвИнНеУч/ИдСтат

не доходит.

Это удалось подтвердить отладчиком непосредственно при обходе структуры строки груза.


Как строится итоговый XML

Еще одна важная функция:

ДанныеРеквизитовЭПД

Она читает сохраненные значения ЭПД из регистра:

РегистрСведений.ЗначенияРеквизитовДокументовЭПД

и формирует структуру данных примерно следующего вида:

ТитулЗаказчикаГрузы
    Строка 1
        СсылкаГрузоотправитель
        Грузоотправитель...
        ...

После этого:

ДвоичныеДанныеДокументаЭПД

берет эту структуру и сопоставляет каждый реквизит с XML-узлом через макет:

СоответствиеИменРеквизитов

Ключевой момент здесь следующий.

Если имя реквизита строки груза отсутствует в макете или отличается от ожидаемого, значение просто не участвует в построении XDTO.

Поэтому проблема ИдСтат находилась уже не в карточке контрагента и даже не в функции получения сведений об участнике.

Она находилась на стыке:

структура формы
        U95;
ДанныеРеквизитовЭПД
        U95;
СоответствиеИменРеквизитов
        U95;
XDTO
        U95;
XML ЭПЭ

Вариант исправления без изменения типовой конфигурации

Я реализовал исправление расширением.

Концептуально оно состоит из двух частей.

Первая часть дополняет штатную ПолучитьРеквизитыУчастника.

После получения страны добавляется резервное чтение:

Контрагент.СтранаРегистрации

Если страна иностранная, дополнительно заполняются:

ИнострЛицоБезУчетаНаименование
ИнострЛицоБезУчетаКодСтраны
ИнострЛицоБезУчетаСтатусИО_ИГ

Идентификатор берется из регистрационного номера, который типовой механизм уже передает через ОГРН.

Вторая часть работает уже перед формированием XML.

Перехватывается:

ДанныеРеквизитовЭПД

через механизм:

&Вместо("ДанныеРеквизитовЭПД")

Сначала обязательно выполняется штатная функция:

Результат = ПродолжитьВызов(...);

То есть штатное получение данных не переписывается.

После этого дополнительно анализируется:

ТитулЗаказчикаГрузы

Для каждой строки определяется:

СсылкаГрузоотправитель

Если грузоотправитель иностранный, повторно получаются его сведения.

Далее в структуру строки добавляются значения под именами, которые ожидает XML-макет:

ГрузоотправительИнострЛицоБезУчетаИдентификатор

ГрузоотправительИнострЛицоБезУчетаНаименование

ГрузоотправительИнострЛицоБезУчетаСтрана

ГрузоотправительИнострЛицоБезУчетаКодСтраны

ГрузоотправительИнострЛицоБезУчетаСтатусИО_ИГ

Дополнительно можно заполнить и фактическое поле формы:

ГрузоотправительИнострЛицоБезУчетаИдентификацияСтатуса

После этого дальнейший механизм остается полностью типовым.

То есть мы не создаем XML самостоятельно, не работаем вручную с XDTO и не подменяем схемы.

Схема остается такой:

штатные данные ЭПЭ
        U95;
точечное дополнение структуры
        U95;
штатный макет СоответствиеИменРеквизитов
        U95;
штатный XDTO
        U95;
штатный XML

На мой взгляд, для расширения это наиболее безопасный вариант.


Почему в исправлении есть повторное получение данных контрагента

В тестовой копии оказалось достаточно дополнить ПолучитьРеквизитыУчастника.

Но на рабочем сервере была обнаружена интересная особенность.

Через журнал регистрации было видно:

Страна=КИТАЙ
Идентификатор=9141010074923612XG
Код=
Статус=
Наименование=

То есть часть реквизитов до следующего этапа не дошла.

Чтобы окончательное формирование XML не зависело от промежуточной структуры, в финальном варианте был добавлен fallback непосредственно перед формированием ЭД.

Если какое-либо значение отсутствует, оно восстанавливается заново.

Страна:

Контрагент.СтранаРегистрации

Код:

СтраныМира.Код

Наименование:

ПолноеНаименование

Идентификатор:

ОГРН / регистрационный номер

Статус:

ИО либо ИГ

Получается небольшой слой нормализации данных перед передачей их штатному XML-генератору.


Что получилось после исправления

После установки расширения тот же иностранный грузоотправитель формируется в ЭПЭ следующим образом:

Сведения об иностранной организации,
не состоящей на учете в налоговом органе

Идентификация статуса:
ИО

Код страны:
156

Наименование страны:
КИТАЙ

Наименование:
SMARTGEN (ZHENGZHOU) TECHNOLOGY CO., LTD

Идентификатор:
9141010074923612XG

Также корректно сформировались:

Страна происхождения груза: 156 / КИТАЙ

Адрес приема груза:
156 / КИТАЙ / Чжэнчжоу

После исправления документ успешно прошел внутреннюю проверку заполнения и открылся как сформированный электронный документ без ошибок ИННЮЛ, Наим, ИдСтат и КодСтр.


Что проверялось

Исправление проверялось на:

1С:Управление нашей фирмой
редакция 3.0
релиз 3.0.14.140

Проверялись два окружения:

копия рабочей базы
рабочая серверная база

 


Важный момент по совместимости

Это не тот случай, где я бы обещал работу расширения на всех будущих релизах УНФ.

В решении используется:

&ИзменениеИКонтроль("ПолучитьРеквизитыУчастника")

Следовательно, если 1С изменит текст типовой функции, платформа может потребовать восстановить соответствие метода.

Кроме того, исправление использует текущие внутренние имена:

ТитулЗаказчикаГрузы
СсылкаГрузоотправитель
СоответствиеИменРеквизитов

Если в следующих версиях Библиотеки интеграции ГосИС механизм будет переработан, расширение необходимо перепроверить.

Поэтому корректная формулировка совместимости:

Разработано и протестировано на УНФ 3.0.14.140. На других релизах необходимо выполнить проверку применимости расширения и соответствия изменяемых методов.


Можно ли реализовать исправление самостоятельно

Да.

Для программиста, знакомого с расширениями 1С, после приведенного выше разбора достаточно:

  1. Расширить общий модуль ОбменСГИСЭПД.
  2. В ПолучитьРеквизитыУчастника восстановить СтранаРегистрации непосредственно из контрагента.
  3. Для иностранного лица дополнить структуру наименованием, кодом страны и статусом ИО/ИГ.
  4. Перехватить ДанныеРеквизитовЭПД.
  5. После ПродолжитьВызов() обработать массив ТитулЗаказчикаГрузы.
  6. По СсылкаГрузоотправитель получить иностранного контрагента.
  7. Добавить в строку груза алиасы, соответствующие макету СоответствиеИменРеквизитов.
  8. Передать структуру дальше штатному генератору XML.

Сам XML формировать вручную не требуется.


Зачем тогда приложено расширение

Статья содержит весь технический разбор, достаточный для самостоятельной реализации.

Готовое расширение приложено скорее как вариант:

«Не хочу тратить час на создание расширения, перенос типового метода, #Вставка, проверку ИзменениеИКонтроль и тестирование».

В расширении нет привязки к конкретной организации и контрагента.

Данные берутся непосредственно из карточки грузоотправителя.

То есть для иностранной организации другого государства будет использована ее собственная страна, код, наименование и регистрационный идентификатор.

При этом фактически протестирован сценарий именно иностранной организации со статусом ИО.

Логика ИГ для иностранного гражданина предусмотрена, но отдельный реальный кейс с иностранным физическим лицом мной не проверялся.


Итог

Проблема оказалась составной.

Сначала УНФ теряла:

СтранаРегистрации

из-за чего иностранная организация ошибочно попадала в ветку российского юридического лица.

После исправления страны проявилось отсутствие обязательных реквизитов иностранного участника.

А после их заполнения обнаружилась еще одна проблема: имя поля формы:

ИдентификацияСтатуса

не совпадало с именем, которое использовал макет формирования XML:

СтатусИО_ИГ

В итоге решение пришлось сделать на двух уровнях:

получение реквизитов участника

+

нормализация структуры строки груза перед формированием XML

После этого штатный XDTO формирует корректный блок:

СвИнНеУч

со статусом, страной, наименованием и идентификатором иностранной организации.

И это тот редкий случай, когда одна маленькая ошибка ИдСтат оказалась верхушкой вполне приличного айсберга 

Проверено на следующих конфигурациях и релизах:

  • Управление нашей фирмой, редакция 3.0, релизы 3.0.14.140
  • Управление торговлей, редакция 11, релизы 11.5.27.88

Вступайте в нашу телеграмм-группу Инфостарт

УНФ УНФ 3.0 ЭПЭ электронное поручение экспедитору ЭПД электронные перевозочные документы иностранный контрагент иностранный грузоотправитель СвИнНеУч ИдСтат КодСтр ИННЮЛ ОбменСГИСЭПД ДанныеРеквизитовЭПД ПолучитьРеквизитыУчастника БИГИС ГосИС ЭПД электронный документооборот расширение 1С 1С ЭДО

См. также

Бюджетный учет ЭДО и ОФД Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Расширение для автоматизации процесса подписания электронных документов в мобильном приложении "Госключ" с видом подписи УКЭП/УНЭП, которое подходит для электронного подписания бухгалтерских документов, список которых утвержден в приказе Минфина №61н «Об утверждении унифицированных форм электронных документов бухгалтерского учета…»

325000 руб.

06.11.2024    22735    8    0    

7

ЭДО и ОФД 1С:Предприятие 8 1С:Документооборот Платные (руб)

Расширение позволяет отправлять документы из 1С Документооборот редакции в Saby в двух вариантах: 1) С подписанием. 2) Без подписание Загружать входящие документы из Saby Получать идентификаторы контрагентов.

115900 руб.

09.12.2025    2795    6    0    

5

Кассовые операции Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД НДС 22% Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Специализированные обработки для загрузки кассовых чеков в локальных базах: 1С:БП 3.0, 1С:УНФ 3.0, 1С:Розница 3.0, 1С:КА. 2.5, 1С:ERP Управление предприятием 2.5 и 1С:УТ 11.5. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС или сканера штрихкодов и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах', 'Поступление денежных документов' и 'Реестры выплат самозанятым'. Обработка будет работать на любой версии конфигурации управляемые формы: базовой, ПРОФ или КОРП. Для загрузки чеков самозанятых достаточно только ссылки на чек.

6990 руб.

19.08.2020    83828    383    93    

269

ЭДО и ОФД Мастера заполнения 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение добавляет возможность создавать ЭТрН и электронный заказ (заявку) на основании документа «Реализация товаров и услуг». При создании документа автоматически заполняются основные данные: участники перевозки, адреса, транспорт, водитель и сведения о грузе. Работает как расширение, не требует изменения типовой конфигурации и быстро подключается.

6000 руб.

13.05.2026    3808    35    7    

39

Регламентированный учет и отчетность Обмен с ГосИС ЭДО и ОФД Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам загружать контракты напрямую с 1с одной кнопкой, оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта, отправлять документы по контракту напрямую сайта госзакупок (ЕИС) по 44-ФЗ из 1с.

73200 руб.

19.12.2022    18457    43    30    

25

ЭДО и ОФД Учет документов 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

ПОДПИСЫВАЙТЕ ДОКУМЕНТЫ С ФИЗЛИЦАМИ ПО СМС. Ваши клиенты и сотрудники смогут подписывать документы простой электронной подписью (ПЭП) без визита к вам в офис. С телефона или компьютера без установки приложений и регистраций.

30490 руб.

28.05.2024    6456    22    2    

15

Кассовые операции ЭДО и ОФД Бухгалтер 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Платные (руб)

Согласно 54-ФЗ по правилам ведения кассовых операций необходимо оформлять приходные кассовые ордера (ПКО) и расходные кассовые ордера (РКО) на основании чеков ККМ. Все данные о чеках, можно взять на сайте оператора фискальных данных (ОФД). Обработка загрузки данных из ОФД в 1С сделает за вас в 1С - ПКО и РКО, Операции по платежным картам или Отчет о розничных продажах (может создать номенклатуру в 1С, указать налоги и др. реквизиты в документах в зависимости от налогообложения ККМ в торговой точке).

7320 руб.

09.08.2017    170378    1014    377    

627
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Dmitryi_KK 12 30.09.26 10:38 Сейчас в теме
пришлось немного допилить напильником под УТ (11.5.27.82)

Если ЗначениеЗаполнено(Идентификатор) Тогда
		СтрокаГруза.Вставить(
			ПрефиксУчастника + "ИнострЛицоБезУчетаИдентификатор",
			Идентификатор);
			//поробуем вставиться
		ИначеЕсли НЕ ЗначениеЗаполнено(Идентификатор) И ЗначениеЗаполнено(СведенияОбУчастнике.ИдентификаторЮридическогоЛица) Тогда
		СтрокаГруза.Вставить(
			ПрефиксУчастника + "ИнострЛицоБезУчетаИдентификатор",
			СведенияОбУчастнике.ИдентификаторЮридическогоЛица);
	
		КонецЕсли;

Показать


Потому что идентификатор в итоге не проставлялся и появилась ошибка
Документ не прошел валидацию ФЛК: Ошибка: Не выполнено условие - Хотя бы один из элементов СвИнНеУч/Идентиф или СвИнНеУч/ИныеСвед должен присутствовать.


Но спасибо за основную идею
user2219092; Sanyadol; +2 – Ответить
Для отправки сообщения требуется регистрация/авторизация