Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) V7 помогите обработать массив объектов (число прочтений - 16686 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: V7 помогите обработать массив объектов
Ответ #15 - 29. Июня 2009 :: 20:11
Печать  
Patison писал(а) 29. Июня 2009 :: 17:57:
Хозяин веб сервисов грит "Принципиально мы ничего не меняли. Только улучшение и уточнение функционала. Я бы (если говорить о Visual студии), обновил бы привязки(прокси классы). Наверное (сколько я знаю), в 1C  то же самое надо сделать. "
вот тут важное уточнение - в нашем случае прокси-классом является динамический класс сгенерированный в рамках SoapClient. Ни OleExSup ни, тем более, 1cv7 не причастны к вебсервисам и прокси-связыванию.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: V7 помогите обработать массив объектов
Ответ #16 - 29. Июня 2009 :: 20:18
Печать  
два варианта:
- либо достаточно не свежий MSSoap не переварил новый веб-сервис с его wsdl
- либо все таки интерфейс веб сервиса изменился и OleExSup не справился например с каким-нибудь экзотическим типом.
  

1&&2&&3
Наверх
 
IP записан
 
Patison
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 18. Февраля 2009
Re: V7 помогите обработать массив объектов
Ответ #17 - 30. Июня 2009 :: 05:16
Печать  
trad писал(а) 29. Июня 2009 :: 20:03:
Patison писал(а) 29. Июня 2009 :: 18:38:
Адреса и параметры веб сервиса остались без изменения. На страничке сервиса тест режим работает (т.е. веб сервис фунциклит).
СоапКлиентом веб сервис подключается без ошибок. А вот конкретный метод выдающий массив совместно с OleExSup дает ошибку

сервис в инете? публичный? я могу туда постучаться?

http://ws.emx.ru/EmxService.asmx метод "FindDetailAdv", чтобы запрос работал IP должен быть зарегистрирован. Вот пример, запроса получен на тестовой странице метода. Пробовал в 8.1 тоже все работает.
« Последняя редакция: 01. Июля 2009 :: 15:51 - Patison »  
Наверх
 
IP записан
 
Patison
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 18. Февраля 2009
Re: V7 помогите обработать массив объектов
Ответ #18 - 30. Июня 2009 :: 05:22
Печать  
trad писал(а) 29. Июня 2009 :: 20:18:
два варианта:
- либо достаточно не свежий MSSoap не переварил новый веб-сервис с его wsdl
- либо все таки интерфейс веб сервиса изменился и OleExSup не справился например с каким-нибудь экзотическим типом.

Соап вроде последний.
Есть у этого сервиса старый метод FindDetail Высылающий стринг в качестве результата, он нормально работает.
  
Наверх
 
IP записан
 
Patison
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 18. Февраля 2009
Re: V7 помогите обработать массив объектов
Ответ #19 - 01. Июля 2009 :: 15:52
Печать  
Спасибо, таки вылечили Улыбка
  
Наверх
 
IP записан
 
drakosha
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 28. Октября 2010
Re: V7 помогите обработать массив объектов
Ответ #20 - 28. Октября 2010 :: 08:18
Печать  
Помогите, пожалуйста. Мне нужно подключаться к этомуже веб-сервису и, похоже, к тому же методу. А как дальше получить значения из этого массива я не знаю (
  
Наверх
 
IP записан
 
drakosha
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 28. Октября 2010
Re: V7 помогите обработать массив объектов
Ответ #21 - 28. Октября 2010 :: 08:40
Печать  
1с v7.7 (
  
Наверх
 
IP записан
 
drakosha
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 28. Октября 2010
Re: V7 помогите обработать массив объектов
Ответ #22 - 28. Октября 2010 :: 08:44
Печать  
Ищу, ищу, и всё без толку (
  
Наверх
 
IP записан
 
drakosha
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 28. Октября 2010
Re: V7 помогите обработать массив объектов
Ответ #23 - 28. Октября 2010 :: 08:46
Печать  
К веб-сервису подключаюсь:
     
     Результат=OLEExSup.InvokeOLEMethod(SoapClient, "FindDetailAdv",login, password, makeLogo, detailNum, findSubstitutes);
     
     Сообщить(Результат);  
     Для Инд = Результат.GetLBound() По Результат.GetUBound() Цикл      
           Значение = Результат.GetValue(Инд);      
           Сообщить(Строка(Значение));      
           ///Результат.SetValue(Инд, Значение+1);
     КонецЦикла;

И в сообщениях 1с получаю только "OLE.IXMLDOMSelection", а как мне сами значения получить (
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: V7 помогите обработать массив объектов
Ответ #24 - 28. Октября 2010 :: 09:18
Печать  
  

1&&2&&3
Наверх
 
IP записан
 
drakosha
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 28. Октября 2010
Re: V7 помогите обработать массив объектов
Ответ #25 - 28. Октября 2010 :: 09:45
Печать  
Неа, не осилить (
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: V7 помогите обработать массив объектов
Ответ #26 - 29. Октября 2010 :: 08:28
Печать  
А в первой ссылке читал:
Цитата:
Методы

clone Создает точную копию текущего объекта XMLDOMSelection.

getProperty Возвращает значение внутреннего флага SelectionLanguage, который был установлен вызовом метода setProperty или имел значение по умолчанию.

item Разрешает свободный доступ к отдельному узлу в коллекци. Для доступа к узлу используется индекс. Первый узел коллекции имеет индекс 0.

matches Проверяет, соответствует ли указанный узел в текущей коллекции.

nextNode Возвращает следующий узел в коллекции.

peekNode Возвращает следующий узел, который вернул nextNode без продвижения по списку.

removeAll Удаляет все узлы из текущего контекста, которые соответствуют запросу.

removeNext Удаляет следующий узел, который будет возвращен peekNode или nextNode.

reset Переустанавливает позицию списка в начальное состояние.

и
Цитата:
length Показывает количество узлов в коллекции.

Так что примерно такой код напрашивается:
Код
Выбрать все
Для Сч=0 по ОЛЕ.length-1 Цикл
  Эл=ОЛЕ.Item(Сч);
  Сообщить(Эл);
КонецЦикла 

  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать