Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=67286)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Як прочитати значення параметра в XML файлі?

Автор: burza 04.07.23, 9:41

як витягнути дані с такого xml підкажіть, нічого не виходить.



сам параметр показивает а вот как витянуть само значение!???

 ЧтениеXML = Новый ЧтениеXML; 
    ЧтениеXML.ОткрытьФайл(Объект.ПутьКФайлу);
    
    Итем = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
    
    Для Каждого Итем из Итем.item Цикл
        
          НоваяСтрока = Объект.Данные.Добавить();
          
           НоваяСтрока.id = Итем.id;
           НоваяСтрока.categoryId = Итем.categoryId;
           НоваяСтрока.vendorCode = Итем.vendorCode;
           НоваяСтрока.vendor = Итем.vendor;
           НоваяСтрока.name = Итем.name;
           НоваяСтрока.name_ru = Итем.name_ru;
           НоваяСтрока.description = Итем.description;
           НоваяСтрока.description_ru = Итем.description_ru;
           НоваяСтрока.UCGFA = Итем.UCGFA;
           НоваяСтрока.price_main_val = Итем.price_main_val;
           НоваяСтрока.price_main = Итем.price_main;
           НоваяСтрока.price_rrc = Итем.price_rrc;
           НоваяСтрока.price = Итем.price;
           НоваяСтрока.price_val = Итем.price_val;
           НоваяСтрока.currency = Итем.currency;
           НоваяСтрока.rate = Итем.rate;
           НоваяСтрока.stock = Итем.stock;
           //НоваяСтрока.BarCode = Итем.BarCode;
          

             
          //////Список по параметрам///////////////
               Если ТипЗнч(Итем.param) = Тип("СписокXDTO") тогда //Если Итем.param = "СписокXDTO"  тогда
                  
                   Для Каждого Стр из Итем.param цикл
                      
                       Если Стр.name = "Розмір" тогда                  
                       НоваяСтрока.param = Стр.name;
                                          НоваяСтрока.param_1= Стр;
                       ИначеЕсли Стр.name = "Маса, кг" тогда              
                       НоваяСтрока.param2 = Стр.name;              
                       ИначеЕсли Стр.name = "Ручка" тогда              
                       НоваяСтрока.param3 = Стр.name;
                       ИначеЕсли Стр.name = "Колір" тогда                  
                       НоваяСтрока.param4 = Стр.name;
                       ИначеЕсли Стр.name = "Тип товарів" тогда                  
                       НоваяСтрока.param5 = Стр.name;
      
                           КонецЕсли;
                    Конеццикла;
                КонецЕсли;

Автор: sava1 04.07.23, 10:40

типо так

 Последовательность = ОбъектXDTO.Последовательность();
    Для Ид=0 По Последовательность.Количество()-1 Цикл
        
        offer = Последовательность.ПолучитьЗначение(Ид);
        
        НовСтр = ТзНом.Добавить();
        НовСтр.name = offer.name;
        НовСтр.id = offer.id;
        
    КонецЦикла;


Автор: burza 04.07.23, 12:03

sava1 @ Сегодня, 11:40 * ,
тоже самое что у меня. данные не вытянуло. разницы никакой


я не могу найти где само значение типо размер 24"/600мм имя параметра есть а его значение нет!

Автор: sava1 04.07.23, 12:07

так теперь еще по param пройтись

Последовательность = ОбъектXDTO.param.Последовательность();

и для имидж тоже

Автор: burza 05.07.23, 6:03

sava1 @ Вчера, 13:07 * ,
может я шот не так делаю но не работает

Автор: burza 05.07.23, 8:27

burza @ Сегодня, 7:03 * ,

Имя параметра Последовательность не обнаружено.
делаю в цикле общем

        Последовательность = Итем.param.Последовательность();
        Для Ид=0 По Последовательность.Количество()-1 Цикл
        
        offer = Последовательность.ПолучитьЗначение(Ид);
        
        //НовСтр = ТзНом.Добавить();
        НоваяСтрока.param = offer.name;
              
    КонецЦикла;


burza @ Сегодня, 8:24 * ,
Метод объекта не обнаружен (Последовательность)
{Обработка.ЗагрузкаДаных.Форма.Форма.Форма(184)}:Последовательность = Итем.param.Последовательность();


burza @ Сегодня, 9:02 * ,
что не кто не читал такой xml ?

Автор: andr_andrey 05.07.23, 15:40

Цитата(burza @ 05.07.23, 9:27) *
Метод объекта не обнаружен (Последовательность)

По вашим скринам, offer.param имеет тип СписокXDTO. Значит можно в справке прочитать, какие методы есть у объекта данного типа:

Из Help-а
Элементы коллекции:

ОбъектXDTO; ЗначениеXDTO
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются значение элемента списка.
Возможно обращение к элементу списка посредством оператора [...]. В качестве аргумента передается индекс элемента.

Свойства:

Владелец (Owner)
ВладеющееСвойство (OwningProperty)

Методы:

Вставить (Insert)
Добавить (Add)
Количество (Count)
Очистить (Clear)
Получить (Get)
ПолучитьXDTO (GetXDTO)
Удалить (Delete)
Установить (Set)

Описание:

Список элементов данных XDTO.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
См. также:

ОбъектXDTO, метод ПолучитьСписок



Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua