Имя: Пароль:
1C
1С v8
MS SOAP и НЕ примитивные параметры веб сервиса
0 Balonbl4
 
26.09.12
12:16
На форуме уже была подобная тема, но там обсуждение ничем полезным не закончилось. Может быть у кого нибудь есть положительный опыт?

Проблема состоит в том, что непонятно как перевести код из примера документации MS SOAP на VB в код на 1С:
Connector.Property("EndPointURL") = СтрокаСАдресомВебСервиса

Старая тема здесь: v8: v8: Передача неявного параметра в COMОбъект
1 orefkov
 
26.09.12
12:18
msscriptcontrol уже не моден?
2 Balonbl4
 
26.09.12
12:19
Сразу опишу, что пробовал:
КомОбъектWS.Property.EndPointURL =  СтрокаСАдресомВебСервиса  ;
КомОбъектWS.Property[EndPointURL] =  СтрокаСАдресомВебСервиса  ;
КомОбъектWS.Property("EndPointURL") =  СтрокаСАдресомВебСервиса  ;
КомОбъектWS.Property("EndPointURL,СтрокаСАдресомВебСервиса");
3 Balonbl4
 
26.09.12
12:21
(1) При попытке вызова скрипта из 1С получаю сообщение "Невозможно создание объекта контейнером ActiveX: 'MSSOAP.HttpConnector'"
Сам скрипт отдельным файлом успешно выполняется.
4 orefkov
 
26.09.12
12:48
Попробуй
КомОбъектWS.put_Property("EndPointURL,СтрокаСАдресомВебСервиса")
5 orefkov
 
26.09.12
12:49
Вернее
КомОбъектWS.put_Property("EndPointURL", СтрокаСАдресомВебСервиса);
6 Balonbl4
 
26.09.12
12:51
(5) Нет такого метода, setProperty тоже пробовал, и в документации таких методов тоже нет.
7 drcrasher
 
26.09.12
14:38
(6) у проперти тип какой?
а у EndPointURL?
8 Nexux
 
26.09.12
19:56
так не получится устанавливать свойства у ms soap в восьмерке, надо заворачивать в VB скрипт например
10 Fragster
 
гуру
26.09.12
20:06
Определение = Новый WSОпределения(СсылкаНаОпределение);
   //Для каждого Сервис Из Определение.Сервисы Цикл

   //    Сообщить(Сервис.Имя);

   //    

   //    Для каждого ТочкаПодключения Из Сервис.ТочкиПодключения Цикл

   //        Сообщить(ТочкаПодключения.Имя, СтатусСообщения.БезСтатуса);

   //        Для каждого Операция Из ТочкаПодключения.Интерфейс.Операции Цикл

   //            ВозвращаемоеЗначение = Операция.ВозвращаемоеЗначение;

   //            Сообщить(Операция.Имя + " " + ВозвращаемоеЗначение.Тип + " " + ВозвращаемоеЗначение.ВозможноПустое + " " + ВозвращаемоеЗначение.Документация);

   //            Для каждого Параметр Из Операция.Параметры Цикл

   //                Сообщить(Символы.Таб + Параметр.Имя + " " + Параметр.НаправлениеПараметра + " " + Параметр.Тип + " пустой: " + Параметр.ВозможноПустой);

   //            КонецЦикла;

   //        КонецЦикла;

   //    КонецЦикла;

   //    

   //КонецЦикла;

   
   Сервис = Определение.Сервисы[0];
   ТочкаПолключения = Сервис.ТочкиПодключения[0];
   Прокси = Новый WSПрокси(Определение, "УриПростанстваИмен", Сервис.Имя, ТочкаПолключения.Имя);

   
   Фабрика = Определение.ФабрикаXDTO;
   Если Ложь Тогда Фабрика = ФабрикаXDTO КонецЕсли;
   
   // проверка данных о картах:

   Объект = Фабрика.Создать(Фабрика.Тип("яяяяя", "яяяяяяя"));
   
   Карта = Фабрика.Создать(Фабрика.Тип("чччччччч", "ччччччччч"));
   Карта.ффффффф = фывфывфывфы;
       .......
   Объект.фывфыв.Добавить(Карта);
   
   Результат = Прокси.ИмяМетода(Объект);
12 Fragster
 
гуру
26.09.12
20:10
зачем использовать не 1сные механизьмы?
13 Balonbl4
 
28.09.12
15:01
(12) Потому что 1Ска не есть тот веб сервис, к которому я хочу подключиться
(8) VB скрипт ругается "Невозможно создание объекта контейнером ActiveX: 'MSSOAP.HttpConnector'"
Вот текст скрипта:


EndPointURL = "http://ip сервака/soa-infra/services/default/OncCVacationImportService/OneCService?WSDL";

   Script= Новый COMОбъект("MSScriptControl.ScriptControl");
   Текст ="Function  Main1
   |Set Connector = CreateObject(""MSSOAP.HttpConnector"")
   |Connector.Property(""EndPointURL"") =""" +ENDPOINTURL+"""
   |Connector.Connect
   |Main1 = Connector
   |End Function ";
   Script.Language="vbscript";
   Script.AddCode(Текст);
   Коннектор = Script.run("Main1");
14 Fragster
 
гуру
28.09.12
15:15
(13).1 ну и что?
15 Balonbl4
 
28.09.12
15:18
(14)  Хотел сказать "Не ест" - при попытке добавления ws - ссылки появляется сообщение "Ошибка формата" - и все, никаких диагностических данных.
Программист всегда исправляет последнюю ошибку.