![]() |
![]() |
![]() |
|
XDTO-пакеты как прочитать XML чтобы списки были списками? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
18.02.15
✎
11:59
|
Данные = ПолучитьФабрикуXDTOОтветаСМО();
Для каждого Пациент Из Данные.body.bill.patients.patient Цикл КодПациента = Пациент.patientcod; КолСтрокТЗНачало = ТЗ.Количество(); Если ТипЗнч(Пациент.register_accounts.personal_account) = Тип("ОбъектXDTO") Тогда //хотя на самом деле есть схема загруженная в 1С (в пакеты XDTO) где написано, что этот узел - список ПерсСчет = Пациент.register_accounts.personal_account; как загрузить XML, что бы для узла указывался правильный тип? |
|||
1
RomaH
naïve
18.02.15
✎
12:00
|
Функция ПолучитьФабрикуXDTOОтветаСМО()
ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(ТекстОтветаСМО); Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); Возврат Данные; КонецФункции |
|||
2
Armando
18.02.15
✎
12:02
|
А тип какой?
|
|||
3
RomaH
naïve
18.02.15
✎
12:28
|
тип чего?
|
|||
4
vi0
18.02.15
✎
12:40
|
ПолучитьФабрикуXDTOОтветаСМО - не верно назвал, метод ПрочитатьXML возвращает ОбъектXDTO
|
|||
5
vi0
18.02.15
✎
12:42
|
какая ошибка?
как ты указываешь признак списка? |
|||
6
RomaH
naïve
18.02.15
✎
13:56
|
(5) признак списка указан в описании типа в пакете XDTO
|
|||
7
RomaH
naïve
18.02.15
✎
14:15
|
Функция ПолучитьУзелСписка(СписокXDTO,Индекс,ЭлементСписка)
Если ТипЗнч(СписокXDTO) = Тип("ОбъектXDTO") И Индекс = 0 Тогда ЭлементСписка = СписокXDTO; Индекс = Индекс + 1; Возврат Истина; КонецЕсли; Если ТипЗнч(СписокXDTO) = Тип("СписокXDTO") И Индекс < СписокXDTO.Количество() Тогда ЭлементСписка = СписокXDTO.Получить(Индекс); Индекс = Индекс + 1; Возврат Истина; КонецЕсли; Индекс = Индекс + 1; Возврат Ложь; КонецФункции ПерсСчет = Неопределено; ИндексПС = 0; Пока ПолучитьУзелСписка(Пациент.register_accounts.personal_account,ИндексПС,ПерсСчет) Цикл вот так сейчас а надо, что бы список сразу списком был |
|||
8
Armando
18.02.15
✎
14:20
|
(3) Тип вот этого Пациент.register_accounts.personal_account
|
|||
9
vi0
18.02.15
✎
15:31
|
(6) как именно ты указываешь что это список?
как у тебя проявляется ошибка? с каким сообщением? |
|||
10
RomaH
naïve
19.02.15
✎
07:19
|
(8) блин - вообще это текст
но у меня есть схема в которой указано, что .register_accounts.personal_account - это список вот как эту схему применить к тексту? |
|||
11
RomaH
naïve
19.02.15
✎
07:21
|
||||
12
Записьдампа
19.02.15
✎
08:09
|
Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
Вторым параметром надо указать тип, который ты ожидаешь прочитать. Если он списочный, то будет тебе список. |
|||
13
Armando
19.02.15
✎
15:49
|
Покажи XSD. Подозреваю, что там тип any
|
|||
14
Serginio1
19.02.15
✎
15:57
|
ОбъектXDTO=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ФабрикаXDTO.Тип(ЧтениеXML.URIПространстваИмен,ЧтениеXML.Имя));
Или ОбъектXDTO=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ПолучитьXMLТип(ЧтениеXML)) |
|||
15
RomaH
naïve
24.02.15
✎
11:58
|
{Документ.Мед_ОтказыПоРеестрам.Форма.ФормаДокумента(465)}: Ошибка при вызове метода контекста (ПрочитатьXML)
Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,Тип); по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: {http://tfoms.yar.ru/BILL/6051}package - [5,11] Проверка дополнительного свойства: форма: Элемент имя: body по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://tfoms.yar.ru/BILL/6051}package вот такое вот выдает на таком XDTO:
и на таком вот XML: <?xml version='1.0' encoding='Windows-1251'?> <package> <body version="6.05" protocol="Reestr" creator="МИС v 0.1" telcreator="4852427050(110)" ogrn_mo="1047600412914" kpp_mo="760401001" year="2015" month="1" date_1="2015-02-04"> </body> </package> |
|||
16
RomaH
naïve
24.02.15
✎
11:59
|
XDTO графически:
http://www.dropmocks.com/mIKkl2 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |