1с vs. МТС Мобильные сотрудники (SOAP запросы в 1С 8.2)

14.01.16

Разработка - Запросы

Пример использования SOAP запроса в 1С 8.2

Недавно передо мной стояла задача узнать: осуществимо ли получать данные в 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>

Теперь необходимо вычленить Ключ подключения из соап-ответа, и можно дальше веселиться с различными функциями от МТС Мобильные сотрудники.

Вступайте в нашу телеграмм-группу Инфостарт

SOAP запросы МТС Мобильные сотрудники

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    258082    1428    421    

1164

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    2150    68    priem_nv    23    

65

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Представляю новую версию подсистемы работы со схемой запроса, которая завершает её эволюцию от библиотеки по работе со схемой запроса до объектной реализации модели запроса 2. Теперь есть выбор между классическим и текучим стилем написанию кода - оба варианта взаимозаменяемы. Ключевое улучшение - использование объектов в качестве источников данных, значений полей и параметров в условиях виртуальных таблиц, а также новые операторы позиционирования в схеме

1 стартмани

29.03.2026    1686    kalyaka    16    

23

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    11136    146    zup_dev    30    

83

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

В данной публикации рассказывается о решении, которое позволяет находить сразу все ошибки в тексте запроса за раз, а не только самую первую.

2 стартмани

05.03.2025    6490    21    XilDen    12    

29

Обновление 1С Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

3 стартмани

06.02.2025    5747    36    XilDen    26    

42

Запросы Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    12945    artemusII    11    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Гарин 1 15.01.16 02:10 Сейчас в теме
Для работы с soap удобнее использовать объекты WSПрокси и ФабрикаXDTO
gradi; WizaXxX; Светлый ум; +3 Ответить
2. Трактор 1281 21.01.16 10:51 Сейчас в теме
После слова COMОбъект перестал читать. У меня линукс.
tarassov; dzhenn; +2 Ответить
3. ToJIuK 02.03.16 14:56 Сейчас в теме
Переделал обработку под 1с 77 .
Получить Токен у меня получилось, а вот дальше не могу разобраться почему не работает.

SOAPAction: "http://locator.ru/LBS/GetSettings"

<?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:Header> 
<SecurityHeader xmlns="http://locator.ru/LBS"> 
<SessionToken>ТОКЕН</SessionToken> 
</SecurityHeader>
</soap:Header>	
<soap:Body> 
<GetSettings xmlns="http://locator.ru/LBS" />
</soap:Body>
</soap:Envelope>
Показать


Пишет
Bad Request
4. Wilka 114 02.03.16 20:58 Сейчас в теме
(3) ToJIuK, У меня сейчас к сожалению нету методички которую присылал МТС, что это за функция GetSettings.?
Вот что у нас было далее для функции GetLocations

ЗапросLocations = СформироватьЗапросLocation(Токен, ИДабонента ,Формат(УбытФакт,"ДФ=""yyyy-MM-ddTЧЧ:мм:сс"""),Формат(ПрибФакт,"ДФ=""yyyy-MM-ddTЧЧ:мм:сс"""))  ;     
	ОтветLocations = ПослатьЗапрос("https://b2b.locator.ru/mts/ws/me_b2b_53/gps.asmx?wsdl","http://locator.ru/LBS/GetLocations",ЗапросLocations);

Функция СформироватьЗапросLocation(Token,subscriberID,dateStart,dateEnd)      
	Запрос = "<?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:Header>
	|<SecurityHeader xmlns=""http://locator.ru/LBS"">
	|<SessionToken>"+Token+"</SessionToken></SecurityHeader>
	|</soap:Header>
	|<soap:Body>
	|<GetLocations xmlns=""http://locator.ru/LBS"">
	|<subscriberID>"+subscriberID+"</subscriberID>
	|<dateStart>"+dateStart+"</dateStart>
	|<dateEnd>"+dateEnd+"</dateEnd>
	|</GetLocations>
	|</soap:Body>
	|</soap:Envelope>";
	Возврат Запрос;
КонецФункции


Функция ПослатьЗапрос(АдресСервиса,ИмяСервера,ЗапросXML) 
	
	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", ИмяСервера);
	
	//сообщить(ЗапросXML);
	MSXML.send(ЗапросXML);
	ОтветПолучен = Ложь;
	Для НомерЦикла = 1 по 100 Цикл
		Если MSXML.readyState >3 Тогда
			ОтветПолучен = Истина;
			Прервать;
		КонецЕсли;      
	КонецЦикла;  
	
	Если ОтветПолучен Тогда
		возврат MSXML.responseXML;  
		
	иначе
		возврат неопределено;
	конецЕсли;
КонецФункции


Показать
5. bserge88 28.02.17 16:46 Сейчас в теме
А где получить ИД Абонентов?
6. ToJIuK 28.02.17 18:05 Сейчас в теме
(5)смотри метод GetSubscribers, я с начало завел всех сотрудников , потом сделал запрос и просто скопировал данные в справочник (добавил реквизит)
bserge88; Wilka; +2 Ответить
7. bserge88 28.02.17 22:52 Сейчас в теме
(6)Спасибо большое, то что надо!
Для отправки сообщения требуется регистрация/авторизация