|
обмен данными с использованием xtdo xsl и xml | ☑ | ||
---|---|---|---|---|
0
slonelefant
18.07.18
✎
10:24
|
не работает обмен данными из самописной конфы в бухгалтерию. обменять пытаюсь окоф. ошибка выскакивает " Не удалось десериализовать объект Справочник.ОбщероссийскийКлассификаторОсновныхФондов, возможно поменялась структура конфигурации: Ошибка при вызове метода контекста (ПрочитатьXML)". с структура пакета до преобразования и после вот такая
Пакет до преобразования: <?xml version="1.0"?> <Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов> <Ref>6528cb36-8983-11e8-840b-0025b3238bca</Ref> <IsFolder>true</IsFolder> <DeletionMark>false</DeletionMark> <Parent>00000000-0000-0000-0000-000000000000</Parent> <Code>ОК 013-2014 </Code> <Description>Принят и введен в действие Приказом Федерального агентства по техническому регулированию и метрологи</Description> <КонтрольноеЧисло>0</КонтрольноеЧисло> <НаименованиеГруппировки>Принят и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 12 декабря 2014 г. N 2018-ст. (ред. от 04.07.2017 № 3) </НаименованиеГруппировки> <АмортизационнаяГруппа/> <хлпКоэффициентУскорения>0</хлпКоэффициентУскорения> </CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов> Передаваемый пакет: <?xml version="1.0"?> <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов NameOfSourceObject="Справочник.ОбщероссийскийКлассификаторОсновныхФондов"> <Ref>6528cb36-8983-11e8-840b-0025b3238bca</Ref> <IsFolder>true</IsFolder> <DeletionMark>false</DeletionMark> <Parent>00000000-0000-0000-0000-000000000000</Parent> <Code>ОК 013-2014 </Code> <Description>Принят и введен в действие Приказом Федерального агентства по техническому регулированию и метрологи</Description> <КонтрольноеЧисло>0</КонтрольноеЧисло> <НаименованиеГруппировки>Принят и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 12 декабря 2014 г. N 2018-ст. (ред. от 04.07.2017 № 3) </НаименованиеГруппировки> </CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов> с самим хмл сталкивался пару раз а вот с xtdo ни разу. сам обмен писался до меня подскажите люди добрые где какой костыль вставить??? |
|||
1
slonelefant
18.07.18
✎
11:13
|
ап
|
|||
2
slonelefant
18.07.18
✎
12:11
|
апн
|
|||
3
slonelefant
18.07.18
✎
15:51
|
совсем никто в xtdo не шарит?
|
|||
4
slonelefant
18.07.18
✎
17:16
|
вверх
|
|||
5
Insens
18.07.18
✎
17:20
|
ПрочитатьXML используется глобальная или из фабрики XDTO? Можно кусок кода чтения? Очень похоже что в самописной добавили новое поле в XDTO-пакет, а в бухгалтерии - нет.
|
|||
6
slonelefant
19.07.18
✎
09:21
|
Функция ОтправитьПакетДанныхВСмежнуюБазу(СтруктураОтправкиПакета)
СтруктураОтправкиПакета.НомерПакета = СтруктураОтправкиПакета.НомерПакета + 1; XML_Message = ПолучитьТекстСообщенияПакетаДанных(СтруктураОтправкиПакета.Пакет); //XML_Message_Recipient_Struckure = XML_Message; XML_Message_Recipient_Struckure = ПреобразоватьТекстВСтруктуруПриемника(XML_Message, СтруктураОтправкиПакета); Если XML_Message_Recipient_Struckure = Неопределено Тогда Возврат Ложь; КонецЕсли; //// тест //ТекстовыйДокумент = Новый ТекстовыйДокумент; //ТекстовыйДокумент.УстановитьТекст(ТекстПакетаДанных); //ТекстовыйДокумент.Показать("Пакет"); //Возврат Истина; Если СтруктураОтправкиПакета.ЗаменятьУИДыПредопределенныхЭлементов Тогда ПодставитьВТекстСоответствующиеУИДы(XML_Message_Recipient_Struckure, СтруктураОтправкиПакета.ТаблицаСоответствияУИДовПредопределенныхЭлементов); КонецЕсли; ДобавитьСообщениеВЖурнал(СтруктураОтправкиПакета.СтруктураИдентификацииСообщения, хлОбменЛизинговымиДаннымиКлиентСервер.ПодставитьПараметрыВСтроку_(НСтр("ru = 'Отправка пакета данных %1 (Приоритет: %3; Количество объектов в пакете: %2)'"), Формат(СтруктураОтправкиПакета.НомерПакета, "ЧГ="), Формат(СтруктураОтправкиПакета.КоличествоОбъектовВПакете, "ЧГ="), Формат(СтруктураОтправкиПакета.Приоритет, "ЧН=0; ЧГ="))); Попытка РезультатЗагрузки = СтруктураОтправкиПакета.ПроксиWSСсылкиОбменаСоСмежнойБазой.uploadDataPackage(XML_Message_Recipient_Struckure, СтруктураОтправкиПакета.НомерПакета, СтруктураОтправкиПакета.Приоритет, СтруктураОтправкиПакета.СразуСтавитьВОчередь, СтруктураОтправкиПакета.СтруктураИдентификацииСообщения.Ид); Исключение ИнформацияПоОшибке = ИнформацияОбОшибке(); ДобавитьСообщениеВЖурнал(СтруктураОтправкиПакета.СтруктураИдентификацииСообщения, хлОбменЛизинговымиДаннымиКлиентСервер.ПодставитьПараметрыВСтроку_( НСтр("ru = 'Не удалось обратиться к методу uploadDataPackage Web-сервиса: %1 |Передаваемый пакет: |%2'") , ИнформацияПоОшибке.Описание, XML_Message_Recipient_Struckure) , 4); Возврат Ложь; КонецПопытки; Если РезультатЗагрузки.result_ID = 0 Тогда Если ПустаяСтрока(РезультатЗагрузки.result_description) Тогда ТекстСообщения = хлОбменЛизинговымиДаннымиКлиентСервер.ПодставитьПараметрыВСтроку_(НСтр("ru = 'Пакет данных %1 отправлен успешно'"), Формат(СтруктураОтправкиПакета.НомерПакета, "ЧГ=")); Иначе ТекстСообщения = хлОбменЛизинговымиДаннымиКлиентСервер.ПодставитьПараметрыВСтроку_(НСтр("ru = 'Пакет данных %1 отправлен успешно. Описание результата: %2'"), Формат(СтруктураОтправкиПакета.НомерПакета, "ЧГ="), РезультатЗагрузки.result_description); КонецЕсли; ДобавитьСообщениеВЖурнал(СтруктураОтправкиПакета.СтруктураИдентификацииСообщения, ТекстСообщения); Возврат Истина; Иначе ДобавитьСообщениеВЖурнал(СтруктураОтправкиПакета.СтруктураИдентификацииСообщения, хлОбменЛизинговымиДаннымиКлиентСервер.ПодставитьПараметрыВСтроку_( НСтр("ru = 'Ошибка при отправке пакета %1 (id %2): %3 |Пакет до преобразования: |%5 |Передаваемый пакет: |%4'") , Формат(СтруктураОтправкиПакета.НомерПакета, "ЧГ="), РезультатЗагрузки.result_ID, РезультатЗагрузки.result_description, XML_Message_Recipient_Struckure, XML_Message) , 1); Возврат Ложь; КонецЕсли; КонецФункции // ОтправитьПакетДанныхВСмежнуюБазу() вот сдесь выдает 2 Если РезультатЗагрузки.result_ID = 0 Тогда Если я вас правильно понял необходимо смотреть сооьтветствие xtdo самописки и буха? и копать на принимающей стороне процедуру чтения? |
|||
7
slonelefant
19.07.18
✎
09:41
|
в конфигураторе структура xtdo выглядит одинаково и в бухе и в самописке . а как сама схема используется и читается?
|
|||
8
slonelefant
19.07.18
✎
10:04
|
если сделать экспорт схемы то в самописке пара "лишних" реквизитов которых нет в бухе
из самописки <xs:complexType name="CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов"> <xs:sequence> <xs:element name="IsFolder" type="xs:boolean"/> <xs:element name="Ref" type="tns:CatalogRef.ОбщероссийскийКлассификаторОсновныхФондов"/> <xs:element name="DeletionMark" type="xs:boolean"/> <xs:element name="Parent" type="tns:CatalogRef.ОбщероссийскийКлассификаторОсновныхФондов"/> <xs:element name="Code" type="xs:string"/> <xs:element name="Description" type="xs:string"/> <xs:element name="КонтрольноеЧисло" type="xs:string"/> <xs:element name="НаименованиеГруппировки" type="xs:string"/> <xs:element name="АмортизационнаяГруппа" type="tns:EnumRef.АмортизационныеГруппы"/> <xs:element name="хлпНеобходимаРегистрация" type="xs:boolean" minOccurs="0"/> <xs:element name="хлпКоэффициентУскорения" type="xs:decimal"/> </xs:sequence> </xs:complexType> из буха <xs:complexType name="CatalogObject.ОбщероссийскийКлассификаторОсновныхФондов"> <xs:sequence> <xs:element name="Ref" type="tns:CatalogRef.ОбщероссийскийКлассификаторОсновныхФондов"/> <xs:element name="DeletionMark" type="xs:boolean"/> <xs:element name="Parent" type="tns:CatalogRef.ОбщероссийскийКлассификаторОсновныхФондов"/> <xs:element name="Code" type="xs:string"/> <xs:element name="Description" type="xs:string"/> <xs:element name="PredefinedDataName" type="xs:string" minOccurs="0"/> <xs:element name="КонтрольноеЧисло" type="xs:string"/> <xs:element name="НаименованиеГруппировки" type="xs:string"/> </xs:sequence> </xs:complexType> как загрузить подправленную схему? или как оно работает |
|||
9
Insens
19.07.18
✎
10:08
|
(8) Можно руками в бухгалтерии добавить нужные поля.
|
|||
10
slonelefant
19.07.18
✎
10:44
|
(9) Обязательно попробую так сделать, но в передаваемом пакете
вроде нет этих лишних реквизитов, и другие объекты типа ПлПорВх вообще конвертируется в списание с р\с и норм работает |
|||
11
slonelefant
19.07.18
✎
12:53
|
ап
|
|||
12
slonelefant
19.07.18
✎
14:19
|
при выполнении обмена я могу отладчиком посмотреть что и как передается. внимание вопрос как глянуть отладчико что пытается читать принимающая база ??
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |