|
ОбъектXDTO в реквизитах | ☑ | ||
---|---|---|---|---|
0
Klesk666
01.11.13
✎
13:27
|
Есть веб сервис, который с сайта получает заказы
но в пустых полях , которые незаполнены на сайте, появляется выражение ОбъектXDTO Если ТипЗнч(OrderHeader) = Тип("ОбъектXDTO") Тогда РазобратьОбъектXDTO(OrderHeader, ШапкаЗаказа); КонецЕсли; Процедура РазобратьОбъектXDTO(ОбъектXDTO, ТаблицаЗаказов) Последовательность = ОбъектXDTO.Последовательность(); Количество = Последовательность.Количество()-1; Для инд = 0 По Количество Цикл Значение = Последовательность.ПолучитьЗначение(инд); Если ТипЗнч(Значение) = Тип("ОбъектXDTO") Тогда //Получаем свойства последовательности Свойства = Значение.Свойства(); Для Каждого Свойство ИЗ Свойства Цикл Если Свойство.Имя = "item" Тогда //в этом свойстве хранятся данные о заказе НоваяСтрока = ТаблицаЗаказов.Добавить(); //Получаем список объектов для данного заказа (номер, дата, статус) СписокОбъектовЗначений = Значение.ПолучитьСписок(Свойство); Для Индекс = 0 По СписокОбъектовЗначений.Количество()-1 Цикл //позиционируемся на очередном свойстве заказа ТекОбъектЗначение = СписокОбъектовЗначений.ПолучитьXDTO(Индекс); ТекКлюч = ТекОбъектЗначение.Получить("Key"); //извлекаем значение ТекЗначение = ТекОбъектЗначение.Получить("Value"); //МассивСвойств.Добавить("" + ТекЗначение + ТипЗнч(ТекЗначение)); НоваяСтрока[ТекКлюч] = ТекЗначение; КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры подскажите как поправить это, пытался вставить Для Каждого РеквизитШапки ИЗ ШапкаЗаказа Цикл Если ТипЗнч(РеквизитШапки)= Тип("Строка")ТОГДА РеквизитШапки=СтрЗаменить(РеквизитШапки,"ОбъектXDTO",""); КонецЕсли; КонецЦикла; но без результатно |
|||
1
Serginio1
01.11.13
✎
14:13
|
В отладчике посмотри что это за ОбъектXDTO.
Можешь вызвать РазобратьОбъектXDTO рекурсивно. |
|||
2
Klesk666
01.11.13
✎
14:24
|
к сожалению отладка не работает, так как все на сервере апачи, который на другом сервере
|
|||
3
Serginio1
01.11.13
✎
14:31
|
Я имел ввиду отладка в 1С. Посмотри в отладчике что из себя представляет твой ОбъектXDTO
|
|||
4
Klesk666
01.11.13
✎
14:39
|
я и говорю что не работает
|
|||
5
Klesk666
01.11.13
✎
14:44
|
Для Каждого РеквизитШапки ИЗ ШапкаЗаказа Цикл
Если ТипЗнч(РеквизитШапки)= Тип("Строка")ТОГДА ЗаписьВлог(РеквизитШапки); РеквизитШапки=СтрЗаменить(РеквизитШапки,"ОбъектXDTO",""); КонецЕсли; КонецЦикла; здесь нет ошибки? может я что то не то перебираю? |
|||
6
Infsams654
01.11.13
✎
14:45
|
(5) а ШапкаЗаказа - это что ?
|
|||
7
Klesk666
01.11.13
✎
14:48
|
таблица значений
|
|||
8
Serginio1
01.11.13
✎
14:48
|
(5) А что должно работать? Ты смотри что записывается в твой реквизит Шапки.Он же у тебя строковый
|
|||
9
Klesk666
01.11.13
✎
14:49
|
нет, даже не заходит в этот цикл, хотя
ШапкаЗаказа = Новый ТаблицаЗначений; ШапкаЗаказа.Колонки.Добавить("ClientSurname" , Новый ОписаниеТипов("Строка")); ШапкаЗаказа.Колонки.Добавить("ClientName" , Новый ОписаниеТипов("Строка")); |
|||
10
Klesk666
01.11.13
✎
14:50
|
или в условие
|
|||
11
Klesk666
01.11.13
✎
14:52
|
в цикл не заходит, странно
|
|||
12
Infsams654
01.11.13
✎
14:54
|
(11) а строки в ШапкаЗаказа откуда беруться ?
|
|||
13
Klesk666
01.11.13
✎
14:56
|
там одна строка
|
|||
14
Infsams654
01.11.13
✎
15:04
|
(13) если строка есть, то в цикл должно зайти. Другое дело, что РеквизитШапки - это СтрокаТаблицыЗначений, а никак не Тип("Строка")
|
|||
15
Klesk666
01.11.13
✎
15:05
|
точно, разобрался, спасибо
Для Каждого КолонкаШапки ИЗ ШапкаЗаказа.Колонки Цикл Если ТипЗнч(ШапкаЗаказа[0][КолонкаШапки.Имя])= Тип("Строка")ТОГДА ШапкаЗаказа[0][КолонкаШапки.Имя]=СтрЗаменить(ШапкаЗаказа[0][КолонкаШапки.Имя],"ОбъектXDTO",""); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |