Чтение XML из фабрики XDTO #697274


#0 by alex_inter
Всем добрый день! Очень прошу помощи,так как сам уже бьюсь головой об стену от отчаяния-третье сутки пошли,как не могу решить коварную проблему: Есть работающий обмен между двумя базами(причем,работающий довольно давно). Со стороны периферии с использованием стандартного механизма обмена данных (ПланыОбмена.Периферия.ЭтотУзел.ПолучитьОбъект.ЗаписатьСообщениеОбмена) выгружаются данные в XMLку. На принимающей стороне создается ФабрикаSDTO : Фабрика = СоздатьФабрикуXDTO(Пути); В путях указаны пути к загруженной СхемеXML, содержащей описания всего обмена. И затем читаются оттуда данные:         Фабрика.ПрочитатьXML(ЧтениеXML); Что мне надо было добавить: Справочник, Регистр сведений с данными по этому справочнику и в уже существующий документ табличную часть с элементом этого справочника. Как итог: справочник сам переносится (ПриборыУчета), регистр сведений ПоказанияПрибороУчета тоже переносится. А добавленная табличная часть приборы учета в документе ФактВыпускаДеталей не переносится. И,причем, хитро как-то себя ведет: Она состоит вот из чего: Сама табличная часть:     </xs:complexType> Повторюсь,без Приборов учета все переносится нормально. И,примитивные типы в самой табличной части отдельно тоже переносятся, то есть,если убрать 2 последних строки, касающихся ссылок на справочники(Приборы учета и Ед изм), то все работает. Как выше описано, в документе 3 табличные части,если оставить строку с данными по приборам учета и какую-нибудь одну(например,цены конкурентов), то тоже все работает. А все 3 табличные части не переносит. Вот сообщение ошибки: {ПланОбмена.АвтоломXDTO.МодульОбъекта}: Ошибка при вызове метода контекста (ПрочитатьXML)            ОбъектXDTO  = ФабрикаАвтолом.ПрочитатьXML(ЧтениеXML); по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - [42,5] Проверка свойства 'ПриборыУчета':     форма: Элемент     имя: {     тип: { по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: { Проверка свойства 'ПриборыУчета':     форма: Элемент     имя: {     тип: { Не установлено значение одного из следующих свойств: Какого и почему-не понятно. Но,ощущение,что не нравится ему,что по одному документу я пытаюсь большще,чем 2 строки табличной части впихнуть. Установка nillable=true не помогла. <xd:DocumentObject.ФактВыпускаДеталей xsi:type="xd:DocumentObject.ФактВыпускаДеталей">
#1 by Maxus43
возможно файл данных тупо невалиден схеме, есть методы проверки xml на соответсвие его схеме, не в 1с их тоже полно. в 1с это Фабрика.Проверить;
#2 by Maxus43
>>Не установлено значение одного из следующих свойств почти наверняка невалиден, в схеме свойство обязательное, в файле данных его нет
#3 by alex_inter
Так вот же все тут заполнено:    <xd:ПриборыУчета>             </xd:ПриборыУчета> по схеме оно так выглядит:
#4 by alex_inter
И,по проверке:Фабрику проверить нельзя, вначале надо получить объект из этой фабрики: А у меня на этом-то месте эта ошибка и вылетает!
#5 by Maxus43
в 1с нельзя, а в других програмках работы с xml можно, в 1с при выгрузке удобно проверять так. После фразы "Не установлено значение одного из следующих свойств" ниже точно ничего нет? обычно указывается конкретное свойство
#6 by Maxus43
Как выгружаешь?
#7 by alex_inter
Выгружаю стандартными механизмами обмена. На стороне периферии:
#8 by Зойч
не ту фабрику создаешь
#9 by Зойч
Юзай глобальную фабрику
#10 by alex_inter
После "Не установлено значение одного из следующих свойств" ничего нет. И. мне кажется, это не причина. Он просто как-то странно себя ведет. Если убрать из файла выгрузки 2 другие табличные части (Цены конкурентов и Табель) то все грузится
#11 by alex_inter
Как?
#12 by Maxus43
и ксатти иногда важен порядок свойств. Попробуй в файле расположить таб части в порядке как в схеме
#13 by alex_inter
Все приверяла-в обеих конфах одинаковый порядок и в схеме тоже.
#14 by Maxus43
в файле у тебя приборыучета после табеля идут, в схеме наоборот
#15 by alex_inter
Блин,как же тебя отблагодарить!!!! Спасибо тебе большое!Весь день ходишь как по заколдованному кругу-меняешь одно,другое. А тут свежий взгляд!! Точно!В порядке дело было!Огромное спасибо!Вот просто промеж глаз попало!Спасибо! Хорошего дня и всех благ всем сочуствующим!
#16 by alex_inter
Всем большое спасибо!!
#17 by Maxus43
:) вот, даже помогать приятно :)
#19 by Maxus43
#20 by Зойч
ФабрикаXDTO - глобальная переменная
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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