Вход | Регистрация


Странное поведение при чтении XDTO списка

Странное поведение при чтении XDTO списка
Я
   Adept
 
10.03.18 - 13:07
Есть хдто список минимальное количество 0 максимальное -1

ЧтениеХМЛ = Новый ЧтениеXML;
    ЧтениеХМЛ.ОткрытьФайл("status_out.xml");
    ХДТО_Ответ = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,ФабрикаXDTO.Тип("https://www.www.ww/","resp";));
    ЧтениеХМЛ.ОткрытьФайл("status_out_single.xml");
    ХДТО_Ответ = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,ФабрикаXDTO.Тип("https://www.www.ww/","resp";));

Читаю два файла подряд, в одном один элемент docum , во втором два.
В первом случае возвращается объект xdto (а не список с одним элементом), во втором список из двух элементов.

Первый раз такое встречаю, может кто то что то подскажет?
 
 
   Mankubus
 
1 - 10.03.18 - 14:07
(0) послежу. сталкивался, но не победил
   Hmster
 
2 - 10.03.18 - 14:08
так вроде всегда было, если элементов 1 - то объект, больше - список
   Cyberhawk
 
3 - 10.03.18 - 14:12
Это фича реализации ХДТО в 1С. Если список состоит из одного элемента, то он будет объектом.
   RomaH
 
4 - 10.03.18 - 15:45
(0) я сделал функцию чтения
типа определяешь две переменных перед циклом

Данные = Неопределено;
Счетчик = 0;

Пока ПрочитатьСписокХДТО(Список, Данные, Счетчик)

взамен повсеместного 
Если ТипЗнч() = ...
   АнализДанных
 
6 - 10.03.18 - 21:33
(0) где-то на просторах интернета встречал такое решение
Для Каждого ОбъектXDTO Из ПолучитьДаннынеСпискаXDTO(МойСписокXDTO) Цикл
    \\обработка данных
КонецЦикла

Функция ПолучитьДаннынеСпискаXDTO(ОбъектXDTO)

    Если ТипЗнч(ОбъектXDTO) = Тип("ОбьектXDTO") Тогда
        Результат = Новый массив;
        Результат.Добавить(ОбъектXDTO);
    Иначе
        Результат = ОбъектXDTO;
    КонецЕсли;

    Возврат Результат;

КонецФункции
   RomaH
 
7 - 11.03.18 - 09:00
(6) круто

так, надо запомнить - 1С вычисляет выражение Для ... Цикл только первый раз
   Adept
 
8 - 11.03.18 - 09:17
(6) Круто, спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует