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

17.09.26

Функциональные - Управление складом и логистикой (WMS)

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

Файлы

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

Наименование Скачано Купить файл
Исправление ЭПЭ с иностранным грузоотправителем для УНФ 3.0.14.140
.cfe 10,70Kb
0 2 500 руб. Купить

Подписка 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

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

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

См. также

Управление розничной торговлей (RMS) Управление складом и логистикой (WMS) Управление продажами (SFM) Бизнес-аналитик Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

1С Управление торговлей (1C УТ) — инструмент для повышения эффективности торговли. Автоматизация работы склада, максимизация продаж, упрощение работы с товарами и номенклатурой. Ведение оперативного и управленческого учета. Базовая и ПРОФ версии. Бесплатное демо! Покупайте в Инфостарт и получайте 15% бонусов на наши услуги, сервисы и мероприятия!

10000 руб.

17.02.2016    110154    487    0    

368

Управление складом и логистикой (WMS) Пользователь 1С:Предприятие 8 Россия Управленческий учет Платные (руб)

"1С:Предприятие 8. WMS Логистика. Управление складом" предназначено для автоматизированного управления технологическими процессами современного складского комплекса

419200 руб.

17.02.2016    53084    46    2    

23

Управление складом и логистикой (WMS) Управление транспортом (TMS) Бизнес-аналитик Пользователь 1С:Предприятие 8 Транспорт, автопарки, такси Россия Управленческий учет Платные (руб)

Решение «1С:Предприятие 8. TMS Логистика. Управление перевозками» предназначено для автоматизированного управления бизнес-процессами отдела транспортной логистики предприятия. При разработке программного продукта были учтены результаты внедрения и эксплуатации конфигурации более чем на 80 предприятиях различных отраслей экономики. Система предоставляет возможности управления процессом перевозки товарно-материальных ценностей (ТМЦ) по цепи «поставщик — склад — клиент». Отличительной чертой программы является легкость и простота адаптации к условиям работы практически любого предприятия, специфике его технологических и организационных требований. Новая редакция 2.0 работает в режиме управляемых форм, код конфигурации полностью открыт, интегрированы картографические сервисы.

119500 руб.

17.02.2016    37058    3    1    

7

Комплексное управление ресурсами (ERP) Управление складом и логистикой (WMS) Бизнес-аналитик Бухгалтер Пользователь 1С:Предприятие 8 Россия Управленческий учет Платные (руб)

1С:Инвентаризация и управление имуществом позволяет оптимизировать процессы инвентаризации и управления имуществом на предприятиях различных отраслей. Управление имуществом, печать этикеток, инвентаризация, осмотр имущества, проведения закупок и отчетность. Снижайте расходы, временные затраты и риски потери вашего имущества в реальном времени!

21850 руб.

17.02.2016    29059    11    4    

8

Управление транспортом (TMS) Управление складом и логистикой (WMS) Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 Транспорт, автопарки, такси Бухгалтерский учет Управленческий учет Платные (руб)

Продукт "1С:Предприятие 8.Транспортная логистика, экспедирование и управление автотранспортом КОРП" – отраслевое решение, предназначенное для управления транспортными перевозками и экспедиторскими услугами. Функционал конфигурации позволяет осуществлять управление заказами на перевозки как собственным, так и привлеченным транспортом, учитывать мультимодальные перевозки, управлять собственным автопарком.

237000 руб.

20.02.2023    17654    37    0    

23

Управление складом и логистикой (WMS) Бизнес-аналитик Пользователь Руководитель проекта 1С:Предприятие 8 Россия Управленческий учет Платные (руб)

"1С-Логистика: Управление складом" - это система автоматизированного принятия решений, "мозг" современного складского комплекса. Она позволяет существенно повысить эффективность его работы. Многочисленные успешные внедрения системы подтверждают, что она может эффективно использоваться на складе любого размера и типа - от небольшого склада-магазина до крупного распределительного центра или склада готовой продукции промышленного предприятия в самых разных отраслях.

13400 руб.

20.02.2016    38201    6    0    

7

Управление складом и логистикой (WMS) ЭДО и ОФД 1С 8.5 1С:Управление нашей фирмой 3.0 Абонемент ($m)

После обновления 1С пользователь может создавать, записывать, отправлять и открывать новые электронные перевозочные документы, например «Электронное поручение экспедитору», но они не отображаются в общем рабочем месте «Электронные перевозочные документы». При этом под пользователем с полными правами документы в общем списке присутствуют. Причина оказалась не в правах, не в RLS и не в настройках списка. В пользовательских настройках формы сохранился старый перечень типов ЭПД. После появления новых видов документов 1С продолжает восстанавливать старый список и использует его как фиксированный отбор. Ниже разберу диагностику от симптомов до точной причины и несколько вариантов исправления.

1 стартмани

14.09.2026    321    1    Dolzhenko3107    1    

0

Мобильная разработка Управление складом и логистикой (WMS) 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Бесплатно (free)

В этой статье описана методология и конвейер для полностью автоматизированной разработки учетных бизнес-решений (с веб- и мобильными клиентами) на платформе NodaLogic. Это не вайбкодинг, не spec-to-code и не ассистент написания элементов конфигурации, а автоматизация полного цикла: от формализации ТЗ до написания и прохождения тестов. Используя стандарты и знания методологии предметной области конвейер проводит анкетирование, создает и согласует ТЗ и схему решения,проводит защиту проекта и согласование с использованием интерактивной схемы, опираясь на стандарты и паттерны разрабатывает прототип, проводит семантический анализ соответствия ТЗ, придумывает и пишет сквозные учетные и runtime тесты, выполняет их и проверяет как ведет себя учетная система и соответствует ли она задачам по функциональности и производительности. При этом полученный результат в виде конфигурации (я называю продуктом, только не тиражными типовыми решениями, а их альтернативой – генерируемыми продуктами.

10.09.2026    794    informa1555    2    

7
Для отправки сообщения требуется регистрация/авторизация