Имя: Пароль:
1C
 
Чтение XML с помощью ФабрикаXDTO
,
0 Help1с
 
01.08.19
09:24
Всем привет.
Подскажите как прочитать значение у элемента subjectRF 76?
<ns2:subjectRF dCode="RF7" dRn="1" rRn="1">76</ns2:subjectRF>

Делаю так:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(вхТекстXML);  
Фабрика = Новый ФабрикаXDTO;
СтруктураДанных = Фабрика.ПрочитатьXML(ЧтениеXML);

СтруктураДанных.subjectRF - ОбъектXDTO, у которого есть атрибуты dCode="SubektRF7" dRn="1" rRn="1", но нет значения "76"
Как прочитать значение 76?
Спасибо.
1 mikecool
 
01.08.19
09:25
попробуй через __content
2 Help1с
 
01.08.19
09:26
(1) попробовал. не видит. в отладчике смотрел. сколько символов "_"? пробовал от одного до трех
3 mikecool
 
01.08.19
09:28
(2) два, но не везде прокатывает, в схеме должен быть описан этот контент
4 Help1с
 
01.08.19
09:34
(3) а если на лету, без схемы? я так понимаю что никак? надо другой способ искать, не фабрикой?
5 Help1с
 
01.08.19
11:37
Каким способом можно прочитать?
6 Help1с
 
06.08.19
14:42
на всякий случай подниму )
7 Help1с
 
06.08.19
15:21
всем спасибо. :)
нашел ответ. вот так можно прочитать значение
СтруктураДанных.subjectRF.Последовательность().ПолучитьТекст(0)
8 mikecool
 
06.08.19
15:26
(7) кстати да, теперь вспомнил - сам как то искал )))
какой то читерский способ, поскольку в типе объекта нет для этого значения поля
9 Help1с
 
06.08.19
16:19
как изменить значение у свойства?  пытаюсь сделать вот так

    Для каждого ТекСвойство Из СтруктураДанных.Свойства() Цикл
        
        Если СокрЛП(СтруктураДанных.Получить(ТекСвойство)) = "ОбъектXDTO" Тогда
            Попытка
                ТекстовоеЗначение = СтруктураДанных.Получить(ТекСвойство).Последовательность().ПолучитьТекст(0);
                СтруктураДанных.Сбросить(ТекСвойство);
                СтруктураДанных.Добавить(СокрЛП(ТекСвойство), ТекстовоеЗначение);
                Получилось = Истина;
            Исключение
            
            КонецПопытки;
        КонецЕсли;
    КонецЦикла;


вываливается ошибка СтруктураДанных.Добавить(СокрЛП(ТекСвойство), ТекстовоеЗначение);
10 Help1с
 
06.08.19
16:24
+ Ошибка при вызове метода контекста (Добавить): Несоответствие типов (параметр номер '2')
11 RomanYS
 
06.08.19
16:27
(10) Синтаксис:

Добавить(<Свойство>, <Элемент>)
Параметры:

<Элемент> (обязательный)

Тип: ЗначениеXDTO; ОбъектXDTO; Неопределено.
Элемент данных XDTO, добавляемый в последовательность.
12 Help1с
 
06.08.19
16:30
(11) как на лету сделать из текста ЗначениеXDTO;
и как я понял у этого свойства тип остается прежний "ОбектXDTO", а нужен текст...
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.