|
Получить данные из XDTO | ☑ | ||
|---|---|---|---|---|
|
0
KrabCore
17.02.16
✎
11:07
|
сильно не пинать, только учусь.
Есть ХДТО объект произвольного уровня вложенности. есть жесткий список свойств, в которых может быть произвольное число вложенных и не очень атрибутов. выглядит это примерно так: https://gyazo.com/13621342df145bcf07d59a602a866e9e мне необходимо, например, вытащить из "ГрузОт" все атрибуты: Город, Индекс, КодРегион, Улица, НаимОрг. сложность в том что я заранее не знаю какие там могут быть атрибуты, поэтому необходимо вытащить все. сложность еще в том что атрибут "НаимОрг" может быть как у "ГрузОт" так и у "ГрузПолуч. циклом объект не обходится, вытаскивать по имени свойства я не могу (не известен заранее перечень) - собственно вопрос к гуру: как мне вытащить из объектаХДТО все его вложенные атрибуты? |
|||
|
1
Serginio1
17.02.16
✎
11:13
|
У объекта XDTO есть свойства
Свойства() |
|||
|
2
Serginio1
17.02.16
✎
11:13
|
У объекта XDTO есть метод
Свойства() |
|||
|
3
KrabCore
17.02.16
✎
11:25
|
(2) видел, но у свойств нет доступа к значению атрибута, только имена
|
|||
|
4
Serginio1
17.02.16
✎
11:32
|
(3) Конечно нужно применить
ПолучитьXDTO(<Имя>) или Получить(<Свойство>) |
|||
|
5
Serginio1
17.02.16
✎
11:35
|
Или
Значение = ОбъектXDTO[ИмяСвойства]; |
|||
|
6
KrabCore
17.02.16
✎
11:43
|
(4) премного благодарен. оказалось правда что доступ ко вложенным свойствам доступен через данные. пришлось делать через рекурсию
Процедура ПолучитьДанныеДокументаXDTO(Данные) Свойства = Данные.Свойства(); Для каждого Свойство Из Свойства Цикл Если Свойство.Форма = ФормаXML.Атрибут Или Свойство.Форма = ФормаXML.Текст Тогда ЗаписатьДанныеXDTO(Свойство.Имя,Данные.Получить(Свойство.Имя)); ИначеЕсли Свойство.Форма = ФормаXML.Элемент Тогда ПолучитьДанныеДокументаXDTO(Данные.Получить(Свойство.Имя)); КонецЕсли; КонецЦикла; КонецПроцедуры |
| Форум | Правила | Описание | Секции | Поиск |