|
Получить значение объекта XDTO | ☑ | ||
---|---|---|---|---|
0
Krabobor
20.11.14
✎
13:15
|
Сильно не пинать, только учусь.
Есть хмл со строками типа <ЗаполнятьРеквизит Тип="Перечисление" Вид="ЗаполнятьРеквизит" Идентификатор="ЧерезСоответствие">Из реквизита исходного документа через соответствие</ЗаполнятьРеквизит> Получаем объектХДТО, и в нем есть доступ только к полям "Тип", "Вид", "Идентификатор". Подскажите как достучаться в объектеХДТО именно к значению "Из реквизита исходного документа через соответствие"? |
|||
1
Krabobor
20.11.14
✎
13:44
|
апну
|
|||
2
Jaap Vduul
20.11.14
✎
13:57
|
По-умолчанию, вроде через свойство __content
|
|||
3
Krabobor
20.11.14
✎
14:06
|
(2) ничего такого нет
|
|||
4
Serginio1
20.11.14
✎
14:14
|
Бери отладчик и спотри.
ЗаполнятьРеквизит=объектХДТО.ЗаполнятьРеквизит; Тип=ЗаполнятьРеквизит.Тип Вид=ЗаполнятьРеквизит.Вид |
|||
5
Fragster
гуру
20.11.14
✎
14:14
|
нужно сделать пакетXDTO и у него сделать свойство с формой "текст", тогда в него попадет твое содержимое
|
|||
6
Krabobor
20.11.14
✎
14:15
|
(4) в том то и фокус что доступ к полям "Тип", "Вид", "Идентификатор" есть, а к самому значению НЕТ
|
|||
7
Serginio1
20.11.14
✎
14:15
|
А до Из реквизита исходного документа через соответствие
не получится. Только через разбор XML |
|||
8
Krabobor
20.11.14
✎
14:16
|
(5) подскажи как?
|
|||
9
Serginio1
20.11.14
✎
14:16
|
||||
10
Fragster
гуру
20.11.14
✎
14:17
|
получилось без пакета:
чтение = Новый ЧтениеXML; чтение.УстановитьСтроку(стр); Объ = ФабрикаXDTO.ПрочитатьXML(чтение); Сообщить(Объ.Последовательность().ПолучитьТекст(0)) |
|||
11
Fragster
гуру
20.11.14
✎
14:18
|
(8) с пакетом правильнее, но долго объяснять
|
|||
12
Krabobor
20.11.14
✎
14:20
|
(10) действительно работает! спасибо.
(11) если не затруднит объясни) |
|||
13
Serginio1
20.11.14
✎
14:21
|
(10) Спасибо. Не знал
|
|||
14
Fragster
гуру
20.11.14
✎
14:22
|
(12) ну лень мне
|
|||
15
Serginio1
20.11.14
✎
14:24
|
(14) Да ладно. Поделись опытом.
|
|||
16
Serginio1
20.11.14
✎
14:25
|
15+ Пожалуйста
|
|||
17
DS
20.11.14
✎
15:27
|
Кстати, тоже не знал. Будем пользовать.
|
|||
18
Fragster
гуру
20.11.14
✎
15:28
|
в двух словах для того же случая -
а) создаем схему (для данного случая:): <xs:schema xmlns:tns="test.test" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test.test" attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:complexType name="ЗаполнятьРеквизит"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="Тип" type="xs:string"/> <xs:attribute name="Вид" type="xs:string"/> <xs:attribute name="Идентификатор" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:schema>если указать правильные типы - то примитивные типы (даты, числа, булево...) в 1с сразу станут правильными значениями код будет такой: Фабрика = СоздатьФабрикуXDTO("D:\temp\схема.xsd"); чтение = Новый ЧтениеXML; чтение.УстановитьСтроку(стр); Тип = Фабрика.Тип("test.test", "ЗаполнятьРеквизит"); Объ = Фабрика.ПрочитатьXML(чтение,Тип); Сообщить(Объ.__content) б) создаем пакет в конфе: http://wstaw.org/m/2014/11/20/0.png код будет такой: чтение = Новый ЧтениеXML; чтение.УстановитьСтроку(стр); Тип = ФабрикаXDTO.Тип("test.test", "ЗаполнятьРеквизит"); Объ = ФабрикаXDTO.ПрочитатьXML(чтение,Тип); Сообщить(Объ.Текст); |
|||
19
Fragster
гуру
20.11.14
✎
15:29
|
+ к схеме и пакету - правильная работа со списками (нет отсутствующих свойств, нет прыжков между объектомXDTO и спискомXDTO)
|
|||
20
DS
20.11.14
✎
15:30
|
(18) Это понятно. Почему пакетом правильнее? Какой-то подвох в (10) таится?
|
|||
21
Fragster
гуру
20.11.14
✎
15:33
|
(20) необязательные свойства, примитивные типы, работа со списками
|
|||
22
Fragster
гуру
20.11.14
✎
15:34
|
контроль структуры загружаемых/выгружаемых данных, опять же
|
|||
23
Serginio1
20.11.14
✎
17:34
|
(18) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |