|
Объект XDTO как узнать массив ли это | ☑ | ||
---|---|---|---|---|
0
sahactys123
20.11.24
✎
14:42
|
Добрый день загружаю XML, преобразую его в объект XDTO и обхожу строки Для каждого Элемент из Данные Цикл, где данные это объект XDTO. Если в XML несколько строк, то все отрабатывает, но если 1, то падает с ошибкой "Итератор для значения не определен". Как узнать несколько ли значений в объекте ?
|
|||
1
osa1C
20.11.24
✎
14:44
|
(0) Данные.Количество()
|
|||
2
Garykom
гуру
20.11.24
✎
14:45
|
||||
3
mikecool
20.11.24
✎
15:01
|
(1) у объекта хдто есть такой метод?
|
|||
4
d4rkmesa
20.11.24
✎
15:05
|
(0) Надо проверять тип для Данные, для коллекции это будет "СписокXDTO", а не "ОбъектXDTO".
|
|||
5
rozer76
20.11.24
✎
15:11
|
(1) ты весь код в try-except пишешь ? ))
|
|||
6
Franchiser
гуру
20.11.24
✎
16:29
|
(0) обход цикла с нуля идет
|
|||
7
АнализДанных
20.11.24
✎
16:55
|
(0) Создай служебную функцию КоллекцияОбъектаXDTO():
Для Каждого ЭлементXDTO Из КоллекцияОбъектаXDTO(ОбъектИлиСписокXDTO) Цикл // обработка данных КонецЦикла Функция ОбъеткXDTO_Списком(КоллекцияОбъектаXDTO) Если ТипЗнч(КоллекцияОбъектаXDTO) = Тип("ОбъектXDTO") Тогда Возврат ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(КоллекцияОбъектаXDTO); ИначеЕсли ТипЗнч(КоллекцияОбъектаXDTO) = Тип("СписокXDTO") Тогда Возврат КоллекцияОбъектаXDTO; КонецЕсли; КонецФункции |
|||
8
АнализДанных
20.11.24
✎
16:59
|
(7) Ошибся, функция называется "КоллекцияОбъектаXDTO"
Функция КоллекцияОбъектаXDTO(КоллекцияОбъектаXDTO) ... КонецФункции |
|||
9
Kongo2019
20.11.24
✎
18:38
|
(0)
Если ТипЗнч (ПриходныйбордерXDTO.Состав.СтрокаСостава) <> Тип ("СписокXDTO) Тогда СписокхXDTOСтрокаСостава = Новый Массив; СписокXDTOСтрокаСостава .Добавить (ПриходныйОрдерXDTO.Состав.СтрокаСостава); Иначе СписокXDTOСтрокаСостава = ПриходныйОрдерXDTO.Состав.СтрокаСостава; КонецЕсли; |
|||
10
Dzenn
гуру
20.11.24
✎
19:51
|
(9) о, я примерно так же делаю.
1) ввожу переменную типа Массив = Новый Массив; 2) Проверяю данные на входе что это — СписокXDTO или ОбъектXDTO 3) если список, то Массив = ДанныеНаВходе 4) если объект, то Массив.Добавить(ДанныеНаВходе) 5) обхожу массив, будучи полностью уверенным, что это именно массив |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |