Недавно передо мной стояла задача узнать: осуществимо ли получать данные в 1С из программного продукта МТС Мобильные сотрудники.
Как, оказалось, достучаться к данным МТС необходимо через soap запрос. МТС вам пришлет трактат с описаниями функций и адреса сервисов. В первую очередь предстоит авторизоваться на сервере, вот на этом примере и рассмотрим получение данных в 1С из МТС Мобильные сотрудники B2B XML API
Создаем форму с кнопкой Выполнить и прописываем следующий код. Не забываем в соап запросе продублировать кавычки.
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = СформироватьЗапрос();
ПослатьЗапрос(Запрос);
Сообщить (ПослатьЗапрос(Запрос));
КонецПроцедуры
Функция СформироватьЗапрос()
Запрос = "<?xml version=""1.0"" encoding=""utf-8""?> <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""> <soap:Body> <Login xmlns=""ХТТП_сервак""> <login>логин</login> <password>пароль</password> </Login> </soap:Body> </soap:Envelope>";
Возврат Запрос;
КонецФункции
Функция ПослатьЗапрос(ЗапросXML)
АдресСервиса = "ХТТП_b2b";
ИмяСервера = "ХТТП_сервак";
MSXML = Новый COMОбъект("MSXML2.XMLHTTP");
MSXML.open("POST", АдресСервиса, 0);
MSXML.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
MSXML.setRequestHeader("Content-Length", СтрДлина(ЗапросXML));
MSXML.setRequestHeader("SOAPAction", "ХТТП_сервак");
MSXML.send(ЗапросXML);
ОтветПолучен = Ложь;
Для НомерЦикла = 1 по 100 Цикл
Если MSXML.readyState >3 Тогда
ОтветПолучен = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ОтветПолучен Тогда
возврат MSXML.responseXML.xml;
Иначе
Возврат неопределено;
КонецЕсли;
КонецФункции
Теперь открываем форму в толстом клиенте, и после нажатия кнопки на форме в ответ нам вернется примерно вот такой соап-ответ.
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body><LoginResponse xmlns="ХТТП_сервак">
<LoginResult>
<Token>Ключ</Token>
<ID>ИД</ID>
<Name>Имя</Name>
<IsAdmin>ДаНет</IsAdmin>
<RegionID>Регион</RegionID>
<CustomerName>ИмяФИрмы</CustomerName>
<TimeOffset>240</TimeOffset>
</LoginResult></LoginResponse>
</soap:Body></soap:Envelope>
Теперь необходимо вычленить Ключ подключения из соап-ответа, и можно дальше веселиться с различными функциями от МТС Мобильные сотрудники.