|
Объект 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) обхожу массив, будучи полностью уверенным, что это именно массив
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший