Всем доброго времени суток!
В целях обучения дорабатываю обмен между ЕРП и ЗУП. Решил добавить реквизит в ТЧ Контактная информация справочника "Физические лица". Переносить реквизит решил с помощью добавления в расширяемый xdto пакет. С отправлением из ЕРП проблем не возникает, но при загрузке в ЗУП, если реквизит ссылочного типа, возникает ошибка
Содержание файла xml отправленного из ЕРП:
Скрытый текст |
---|
<Body xmlns="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.11" xmlns:ext1="http://v8.1c.ru/edi/edi_ext_test/EnterpriseData/1.11">
<Справочник.ФизическиеЛица>
<КлючевыеСвойства>
<Ссылка>b3548c53-ecc7-11e4-92f1-0050568b35ac</Ссылка>
<ФИО>Авдеева Аделина ПавловнаТЕСТ</ФИО>
<Фамилия>Авдеева</Фамилия>
<Имя>Аделина</Имя>
<Отчество>ПавловнаТЕСТ</Отчество>
</КлючевыеСвойства>
<Пол>Женский</Пол>
<КонтактнаяИнформация>
<Строка>
<ВидКонтактнойИнформации>Телефон</ВидКонтактнойИнформации>
<ЗначенияПолей><КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление="+8 (999) 122222232"><Состав xsi:type="НомерТелефона" КодСтраны="8" КодГорода="999" Номер="122222232" Добавочный=""/></КонтактнаяИнформация></ЗначенияПолей>
<ext1:БанковскийСчет>
<ext1:Ссылка>5a4fdcb1-7dde-11df-90de-000b0d4caf68</ext1:Ссылка>
<ext1:Наименование>Ассоль</ext1:Наименование>
<ext1:НаименованиеПолное>Ассоль ООО</ext1:НаименованиеПолное>
<ext1:ЮридическоеФизическоеЛицо>ЮридическоеЛицо</ext1:ЮридическоеФизическоеЛицо>
<ext1:СтранаРегистрации>
<Ссылка>26093578-c180-11e4-a7a9-000d884fd00d</Ссылка>
<ДанныеКлассификатора>
<Код>643</Код>
<Наименование>РОССИЯ</Наименование>
</ДанныеКлассификатора>
</ext1:СтранаРегистрации>
</ext1:БанковскийСчет>
</Строка>
<Строка>
<ВидКонтактнойИнформации>АдресЭлектроннойПочты</ВидКонтактнойИнформации>
<ЗначенияПолей><КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление="123123@ук.кг"><Состав xsi:type="ЭлектроннаяПочта" Значение="123123@ук.кг"/></КонтактнаяИнформация></ЗначенияПолей>
<ext1:БанковскийСчет>
<ext1:Ссылка>5a4fdcb1-7dde-11df-90de-000b0d4caf68</ext1:Ссылка>
<ext1:Наименование>Ассоль</ext1:Наименование>
<ext1:НаименованиеПолное>Ассоль ООО</ext1:НаименованиеПолное>
<ext1:ЮридическоеФизическоеЛицо>ЮридическоеЛицо</ext1:ЮридическоеФизическоеЛицо>
<ext1:СтранаРегистрации>
<Ссылка>26093578-c180-11e4-a7a9-000d884fd00d</Ссылка>
<ДанныеКлассификатора>
<Код>643</Код>
<Наименование>РОССИЯ</Наименование>
</ДанныеКлассификатора>
</ext1:СтранаРегистрации>
</ext1:БанковскийСчет>
</Строка>
</КонтактнаяИнформация>
<ДанныеФИО>
<Строка>
<Фамилия>Авдеева</Фамилия>
<Имя>Аделина</Имя>
<Отчество>ПавловнаТЕСТ</Отчество>
<НачалоПериода>1899-12-31</НачалоПериода>
</Строка>
</ДанныеФИО>
<ext1:МойКомментарий>111</ext1:МойКомментарий>
</Справочник.ФизическиеЛица>
</Body> |
Доработки по расширению формата прикрепил скриншотами.
Код по доработке модуля менеджера обмена в ЗУП:
&ИзменениеИКонтроль("ДобавитьПКО_Справочник_ФизическиеЛица_Получение")
Процедура кд_ДобавитьПКО_Справочник_ФизическиеЛица_Получение(ПравилаКонвертации)
ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации);
#Вставка
ПространствоИмен = "http://v8.1c.ru/edi/edi_ext_test/EnterpriseData/1.11";
ОбменДаннымиXDTOСервер.ИнициализироватьРасширениеПравилаКонвертацииОбъекта(ПравилоКонвертации, ПространствоИмен);
#КонецВставки
ПравилоКонвертации.ИмяПКО = "Справочник_ФизическиеЛица_Получение";
ПравилоКонвертации.ОбъектДанных = Метаданные.Справочники.ФизическиеЛица;
ПравилоКонвертации.ОбъектФормата = "Справочник.ФизическиеЛица";
ПравилоКонвертации.ПриКонвертацииДанныхXDTO = "ПКО_Справочник_ФизическиеЛица_Получение_ПриКонвертацииДанныхXDTO";
ПравилоКонвертации.ПередЗаписьюПолученныхДанных = "ПКО_Справочник_ФизическиеЛица_Получение_ПередЗаписьюПолученныхДанных";
ПравилоКонвертации.ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска";
СвойстваШапки = ПравилоКонвертации.Свойства;
ДобавитьПКС(СвойстваШапки, "ДатаРегистрации", "ДатаРегистрации");
ДобавитьПКС(СвойстваШапки, "ДатаРождения", "ДатаРождения");
ДобавитьПКС(СвойстваШапки, "ИНН", "ИНН");
ДобавитьПКС(СвойстваШапки, "Код", "КодВПрограмме");
ДобавитьПКС(СвойстваШапки, "Наименование", "ФИО");
ДобавитьПКС(СвойстваШапки, "Пол", "Пол", , "ПолФизическогоЛица");
ДобавитьПКС(СвойстваШапки, "Родитель", "Группа", , "Справочник_ФизическиеЛицаГруппа");
ДобавитьПКС(СвойстваШапки, "СтраховойНомерПФР", "СтраховойНомерПФР");
ДобавитьПКС(СвойстваШапки, "ФИО", "ФИО");
#Вставка
ДобавитьПКС(СвойстваШапки, "МойКомментарий", "МойКомментарий", 1, , ПространствоИмен);
#КонецВставки
#Удаление
СвойстваТЧ = ДобавитьПКТЧ(ПравилоКонвертации, "КонтактнаяИнформация", "КонтактнаяИнформация");
#КонецУдаления
#Вставка
СвойстваТЧ = ДобавитьПКТЧ(ПравилоКонвертации, "КонтактнаяИнформация", "КонтактнаяИнформация", ПространствоИмен);
#КонецВставки
ДобавитьПКС(СвойстваТЧ, "Вид", "", 1);
ДобавитьПКС(СвойстваТЧ, "ЗначенияПолей", "", 1);
ДобавитьПКС(СвойстваТЧ, "Представление", "", 1);
ДобавитьПКС(СвойстваТЧ, "Тип", "", 1);
#Вставка
ДобавитьПКС(СвойстваТЧ, "БанковскийСчет", "", 1, "Справочник_Контрагенты_Получение", ПространствоИмен);
#КонецВставки
ПравилоКонвертации.ПоляПоиска.Добавить("СтраховойНомерПФР,ЭтоГруппа");
ПравилоКонвертации.ПоляПоиска.Добавить("ИНН,ЭтоГруппа");
ПравилоКонвертации.ПоляПоиска.Добавить("ДатаРождения,ФИО,ЭтоГруппа");
КонецПроцедуры
Показать
При получении данных в ЗУП следующая ошибка:
Ошибка при анализе данных: Ошибка чтения объекта XDTO, имя свойства: <КонтактнаяИнформация>.
Ошибка чтения объекта XDTO, имя свойства: <БанковскийСчет>.
Поле объекта не обнаружено (БанковскийСчет)
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5439)}:Приемник[ИмяСвойства] = Значение;
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5120)}:КонвертироватьКлючевоеСвойство(Приемник, КомпонентыОбмена, ИмяСвойства, ТипЗначенияXDTO, ЗначениеXDTO);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5347)}:КонвертацияСвойстваXDTOВЭлементСтруктуры(СтрокаXDTO, СвойствоСтрокиТЧ, СтрокаТЧ, КомпонентыОбмена, , СтрокаТипСвойства);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5116)}:КонвертироватьТаблицуОбъекта(Приемник, КомпонентыОбмена, ИмяСвойства, Свойство, ТипЗначенияXDTO, ЗначениеXDTO);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2420)}:КонвертацияСвойстваXDTOВЭлементСтруктуры(ОбъектXDTO, Свойство, Приемник, КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6418)}:ДанныеXDTO = ОбъектXDTOВСтруктуру(ОбъектXDTO, КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2144)}:ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, , Истина);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(598)}:ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанныхВРежимеАнализа(КомпонентыОбмена, ПараметрыАнализа);
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(566)}:ОбработкаОбменаДанными.ВыполнитьАнализСообщенияОбмена(ПараметрыАнализа);
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(640)}:ИнформацияСтатистики = ТаблицаСтатистикиСообщенияОбмена(ПараметрыАнализа,
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(17)}:Результат = РезультатАвтоматическогоСопоставленияДанных(
{(1)}:Обработки.ПомощникИнтерактивногоОбменаДанными.ВыполнитьАвтоматическоеСопоставлениеДанных(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5952)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1692)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1671)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);
Предполагаю, что при получении данные почему то не работает расширение формата, но при переносе простых типов такой ошибки не возникает