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


#0 by FReIM
Доброе утро. При разборе XML файла фабрикой XDTO выпадает ошибка {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ПрочитатьXML) Объект=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); по причине: Ошибка преобразования данных XDTO: НачалоСвойства: IsNullValue Форма: Атрибут Тип: {... »» По идее, без указания типа объекта, должен получиться не сериализованный объект XDTO. Даже если описать все типы объектов, все равно выпадает эта ошибка. Падает на строчке <PatientID IsNullValue="true" xsi:nil="true" xmlns:xsi="... »»" />. Разработчики системы источника говорят, что тег IsNullValue="true" нужен для установки значения в значение Null, если оставить просто xsi:nil="true" xmlns:xsi="... »»", то значение будет просто проигнорировано. Но именно из-за этого тега у нас не работает загрузка данных в 1с из ESB шины данных. Вопрос, можно ли как-то обработать данный тег (в идеале) или хотя бы проигнорировать? Конфигурация пустышка, но с пакетами. Файл на котором все и падает
#1 by Radkt
Читал как текст, так хмл от пфр тоже не разбиралась 1с кой
#2 by Serginio1
Попробуй загружаться не через глобальную фабрику а через Фабрика=СоздатьФабрику(ПутьК_XSD) Ну и многого 1С не понимает
#3 by Radkt
#4 by Serginio1
Все это заменяет одна строка Фабрика = СоздатьФабрикуXDTO(ПутьК_XSD);
#5 by FReIM
Это уже все делал. и из набора схем и в конфу пакеты грузил и даже через  СоздатьФабрикуXDTO. Толку ноль. И разбирал. Через создать фабрику тоже. Сейчас распарсил через Документ DOM. Но просто не понимаю. Неужели 1с не понимает сложные типы данных и директивы импорта. Все есть в конфе, а не работает. Ни на 8.2 ни на 8.3.
#6 by FReIM
</xs:complexType> Не понимает сию конструкцию 1с.
#7 by Serginio1
Попробуй через специально для этого и делал
#8 by Serginio1
И вот хороший генератор классов
#9 by FReIM
Спасибо, но немного не то. Схема есть, предоставлена разработчиком. Взаимодействие с веб сервисом не нужно. Разобрал XML с помощью DOM. DOM не понимает специальные атрибуты. Но просто не понятно почему XML не разбирается с помощью XDTO. То ли недоработка платформы, то ли не соответствие данной схемы стандартам принятым в 1с.
#10 by Serginio1
Так я тебе и показываю как десериализовать из XML в объект Net. 1C много чего не понимает.
#11 by Serginio1
То есть ты с помощью wscfblue описываешь классы Net. Например public Object ПолучитьЗаказИзФайла(string ИмяФайла)         {             XmlSerializer serializer = new XmlSerializer(typeof(EdiSoftDocumentOrder.DocumentOrder));             using ( FileStream fs = new FileStream(ИмяФайла, FileMode.Open))         }             return new AutoWrap(res);                           }
#12 by jk3
Считываешь XML в строку, вырезаешь через СтрЗаменить тэги, которые стандартная 1С-ная фабрика XDTO не понимает, и скармливаешь полученную строку фабрике. В простых случаях это помогает.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С

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