Необходимо получить внешний IP-адрес машины в сети интернет возможностями платформы. Для решения задачи будем использовать веб-сервис по адресу "http://gci.somee.com/DraleDeloria.asmx". Функционал должен быть реализован во внешней обработке.
Веб-сервис предоставляет несколько методов для работы. Нас интересует метод "GetClientIP", который возвращает IP-адрес машины, с которой был выполнен его вызов. Это нам и нужно!
Все, что нам нужно - это выполнить его вызов программным способом из внешней обработки.
Для обращения к веб-сервису и вызова метода "GetClientIP" написан следующий программный код:
Процедура КнопкаВыполнитьНажатие(Кнопка) // Получаем WSDL-описание веб-сервиса ОписаниеСервиса = Новый WSОпределения("http://gci.somee.com/DraleDeloria.asmx?wsdl"); // Создаем прокси для дальнейшей работы с веб-сервисом Прокси = Новый WSПрокси(ОписаниеСервиса, "http://tempuri.org/", "DraleDeloria", "DraleDeloriaSoap"); // Получаем XDTO-объект описание метода "GetClientIP" Тип = Прокси.ФабрикаXDTO.Пакеты.Получить("http://tempuri.org/").Получить("GetClientIP"); // Создаем XDTO-объект метода веб-сервиса ФабрикаВебСервис = Прокси.ФабрикаXDTO.Создать(Тип); // Выполням метод "GetClientIP" веб-сервиса и помещаем результат в элемент формы ЭлементыФормы.ВашIPАдрес.Значение = Прокси.GetClientIP(ФабрикаВебСервис).GetClientIPResult; КонецПроцедуры
Здесь следует пояснить два момента:
1. Определение веб-сервиса создается на основе файла WSDL-описания. Путь к нему обычно такой:
"_Адрес веб сервиса_+ ?wsdl"
2. Если веб-методу необходимо передать параметры, то сначала нужно создать соответствующий XDTO-объект. В нашем примере метод "GetClientIP" не принимает параметров.
В результате выполнения приведенного выше кода мы получим результат, показанный на скриншоте выше.
Поддержка веб-сервисов платформой 1С:Предприятие создает практически неограниченные возможности для расширения ее функционала. При разработке лишь встает вопрос о целесообразности их использования по сравнению с другими вариантами решения поставленной задачи.