Ошибка преобразования данных XML #725115


#0 by Xamio
Пытаюсь получить Объект первой версии документа, сохранённой в справочнике ВерсииОбъектов код следующий: ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// при выполнении последней строки "ИскОбъект = ПолучитьОбъектИзXML(СтрокаXML)" вылетает ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ПрочитатьXML)             Объект = ПрочитатьXML(ЧтениеXML); по причине: Ошибка преобразования данных XML: [32,64] Странность в том, что уже после выполнения строки "ВерсияОбъекта.Записать(ИмяВременногоФайла);" для разных документов, в переменную "ИмяВременногоФайла" записывается разная структура документа, а именно меняются местами несколько реквизитов. Всего вариаций две, одна из которых обрабатывается нормально и создаётся объект, а другая отличающаяся от первой порядком следования пары реквизитов - выдаёт ошибку. Выгрузил xsd файл конфигурации, в которой присутствует структура документа РеализацияТоваровУслуг именно та, которая читается. Т.е. метод ПрочитатьXML читает по схеме правильно, но тогда вопрос, почему строка "ВерсияОбъекта.Записать(ИмяВременногоФайла);" записывает в "ИмяВременногоФайла" иногда какую-то левую структуру документа, откуда она берётся? кто может пояснить?
#1 by olegves
поменялась структура твоего объекта (убрали реквизиты или поменяли типы)
#2 by Maxus43
когда-то меняли структуру документа, в версия старая хранится, которая уже не сериализуется
#3 by Xamio
кусок структуры которая не читается: кусок структуры которая читается: как можно исправить это? писать костыль который будет менять местами строки в СтрокаXML? или может где старую структуру подправить можно?
#4 by Xamio
как то странно она хранится только... от 12.10.2014 версия не сериализуется, от 30.10.2014 сериализуется и от 01.11.2014 опять не сериализуется
#5 by Xamio
в процессе отладки менял местами эти три строчки местами, продолжал выполнение и все сериализовалось..
#6 by 13_Mult
Это же разные документы, нет?
#7 by Xamio
да, документы разные
#8 by 13_Mult
Там дело не в порядке реквизитов, а скорее в guid
#9 by Xamio
<СчетУчетаДоходовПоТареБУ>00000000-0000-0000-0000-000000000000</СчетУчетаДоходовПоТареБУ> тут?
#10 by 13_Mult
DocumentRef.ЗаказПокупателя">d65b47ad-506b-11e4-b8dd-0025908683b4
#11 by 13_Mult
Не уверен, но попробуй у той структуры что читается поменять местами реквизиты и прочитать.
#12 by 13_Mult
Вообще по "Свойству" должно искать
#13 by Xamio
нет, очень много документов, которые не сериализуются, к примеру этот:     <Склад>5a6de8df-e106-11df-bfc8-7071bc0bad3d</Склад> сделка везде разная. дело в том что я в процессе отладки, при обработке реализации с "косячной" структурой, поставил точку останова после строки "ВерсияОбъекта.Записать(ИмяВременногоФайла);" и во временном файле поменял местами строки касающиеся реквизитов СуммаДокумента, СуммаВключаетНДС и Склад. Поменял по аналогии с "рабочей" структурой, продолжил выполнение и нормально получил объект.
#14 by 13_Mult
может не находит объекта по guid, а механизма создания нового у тебя нет.
#15 by Xamio
у меня есть обработка по поиску объекта по ГУИД, она нормально находит ЗаказПокупателя по гуид
#16 by Xamio
В итоге ничего умнее не придумал как тупо поменять местами косячные строки в ТекстовомФайле. Работает, но если будут более изящные мысли было бы очень любопытно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С