helpf.pro
Регистрация

v8.2 УП: Помогите настроить веб сервис

ITServe
18.07.2013 15:46Прочитано: 5664
Добрый вечер!
Код 1C v 8.х
 
ВебСервис = WSСсылки.ОтправкаСообщенияМТС.СоздатьWSПрокси("http://mcommunicator.ru/M2M", "MTS_x0020_Communicator_x0020_M2M_x0020_XML_x0020_API", "MTS_x0020_Communicator_x0020_M2M_x0020_XML_x0020_APISoap12");

ТипСтрока = ВебСервис.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema","string");
//ТипСтрока = ВебСервис.ФабрикаXDTO.Тип("http://mcommunicator.ru/M2M","string");

Телефон= ВебСервис.ФабрикаXDTO.Создать(ТипСтрока, "79171321212");
Сообщение = ВебСервис.ФабрикаXDTO.Создать(ТипСтрока, "Привет");
Kubishka= ВебСервис.ФабрикаXDTO.Создать(ТипСтрока, "Kubishka");
login = ВебСервис.ФабрикаXDTO.Создать(ТипСтрока, "login");
pass= ВебСервис.ФабрикаXDTO.Создать(ТипСтрока, "parol");

ИдентификаторСообщения = ВебСервис.SendMessage(Телефон, Сообщение, Kubishka, login, pass);

выдает ошибку -
{Форма.Форма.Форма(19)}: Ошибка при вызове метода контекста (SendMessage)
ИдентификаторСообщения = ВебСервис.SendMessage(Телефон, Сообщение, Kubishka, login, pass);
по причине:
Ошибка вызова операции сервиса: {http://mcommunicator.ru/M2M}:MTS_x0020_Communicator_x0020_M2M_x0020_XML_x0020_API:SendMessage()
по причине:
Неверный формат.
Изменено 18.07.13 23:53:18
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
19.07.2013 00:18Ответ № 1
(0) ITServe, а для чего вы решили использовать вебсервис?
может проще через POST как в этом примере
ITServe
19.07.2013 07:05Ответ № 2
Этот пример не работает, я его в первую очередь попробовал...
E_Migachev
26.07.2013 20:38Ответ № 3
(2) ITServe, вот у моего клиента сейчас так работает:
Код 1C v 8.х
 WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2, "Windows-1251");
WinHttp.Open("POST", "http://mtscommunicator.ru/m2m/m2m_api.asmx/SendMessage", 0);

WinHttp.SetRequestHeader("Accept-Language", "ru");
WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");
WinHttp.setRequestHeader("Content-Language", "ru");
WinHttp.setRequestHeader("Content-Charset", "Windows-1251");
WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

ПараметрыPOST = "msid=" + Адресат + "&message=" + ПодготовитьСообщение(ТекстСМС) + "&naming=Mart-Stroy&login=9857279651&password=6C30734811916B0F0F24A4630B08036F";

Ошибка = Ложь;
ИДСообщения = "";

Попытка

WinHttp.Send(ПараметрыPOST);

ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла();

Текст = Новый ЗаписьТекста(ИмяФайлаЗапроса, КодировкаТекста.UTF8);
Текст.ЗаписатьСтроку(WinHttp.ResponseText());
Текст.Закрыть();

Ошибка = (WinHttp.Status <> 200);

Исключение
Ошибка = Истина;
КонецПопытки;

Если НЕ Ошибка Тогда

Попытка

XMLОтвет = Новый ЧтениеXML;
XMLОтвет.ОткрытьФайл(ИмяФайлаЗапроса);

Пока XMLОтвет.Прочитать() Цикл
Если XMLОтвет.ТипУзла = ТипУзлаXML.НачалоЭлемента И (XMLОтвет.Имя = "long") Тогда
XMLОтвет.Прочитать();
ИДСообщения = XMLОтвет.Значение;
Прервать;
КонецЕсли;
КонецЦикла;

Исключение
Ошибка = Истина;
КонецПопытки;

КонецЕсли;

Если Ошибка Тогда
Сообщить("Не удалось отправить СМС. Проверьте настройки подключения");
Предупреждение("СМС не было отправлено");
Иначе

Набор = РегистрыСведений.ЛогОтправленныхСМС.СоздатьНаборЗаписей();
Набор.Отбор.Документ.Установить(Ссылка);
Набор.Прочитать();

ЗаписьЛога = Набор.Добавить();
ЗаписьЛога.Документ = Ссылка;
ЗаписьЛога.Получатель = ЭкспедиторЗагрузки;
ЗаписьЛога.Идентификатор = ИДСообщения;
ЗаписьЛога.Текст = ТекстСМС;
ЗаписьЛога.ТелефонПолучателя = Адресат;
ЗаписьЛога.Ответственный = глЗначениеПеременной("глТекущийПользователь");
ЗаписьЛога.ДатаОтправки = ТекущаяДата();
ЗаписьЛога.СтатусСМС = Перечисления.СтатусыСМС.ПоставленоВОчередь;
Набор.Записать(Истина);

ПоказатьОповещениеПользователя("Отправка СМС",, "СМС-сообщение отправлено " + Строка(ЭкспедиторЗагрузки), БиблиотекаКартинок.СМС);

КонецЕсли;
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.