Предисловие
На сегодняшний день существует достаточно много примеров практического применения веб-сервисов, которые позволяют интегрировать между собой абсолютно разные приложения и службы. Ранее в статье
"Поддержка COM-соединения. Часть №2" мы использовали созданный нами веб-сервис на C# для поддержки COM-соединения между информационными базами 1С:Предприятия 8. Сегодня мы более подробно рассмотрим процесс создания собственного веб-сервиса на C#. Начнем с установки и настройки
сервера IIS, затем перейдем непосредственно к созданию веб-службы в среде Visual Web Developer Express на C#. В завершении напишем программный код для использования созданной веб-службу в платформе 1С:Предприятие.
Создаваемый веб-сервис будет выполнить отправку SMS-сообщений. Ему будут отправляться в качестве параметров номер мобильного телефона и текст сообщений. Вызываемый метод веб-сервиса вернет результат выполнения команды.
Устанавливаем и настраиваем IIS
Для тестирования и дальнейшей работы создаваемого веб-сервиса будем использовать Internet Information Services (IIS), поскольку он доступен для установки в дистрибутиве Windows. В нашем случае IIS 7.5 для Windows 7.
Наглядная инструкция по установке IIS с последующей настройкой для разработки веб-сервиса на основе ASP.NET приведена на следующем видео.
Общая последовательность действий такая:
- Добавляем компоненты Windows в разделе "Службы IIS".
- Устанавливаем поддержку ASP.NET для IIS.
- Запускаем регистрацию ASP.NET для веб-сервера через приложение "aspnet_regiis" с параметром "-r".
Проделанные действия позволяют отлаживать веб-сервис на локальной машине и тестировать его из платформы 1С:Предприятие.
Создаем веб-сервис на C#
Веб-сервер готов, перейдем к созданию веб-сервиса. Сначала расскажу о функционале, который он будет нести.
Веб-сервис будет иметь единственный метод с четырьмя параметрами. Через параметры будут передаваться:
- Логин пользователя "SMSfeedback".
- Пароль пользователя "SMSfeedback".
- Номер мобильного телефона.
- Текст сообщения.
Функция метода "SendSMS" выполняется GET-запрос к веб-ресурсу "api.smsfeedback.ru". Подробнее о его API Вы можете прочитать здесь. В соответствии с заданными параметрами будет выполнена отправка SMS-сообщения. Об условиях пользования данным сервисом подробно
написано здесь.
Весь ход создания веб-сервиса в среде "Visual Web Developer Express" продемонстрирован на следующем видео.
Отметим лишь важные моменты:
- В компоненте веб-службы создается публичный веб-метод для отправки соответствующего GET-запроса для "SMSFeedBack".
- Метод веб-службы "SendSMS" принимает четыре параметра типа "строка" о которых было написано выше.
- Работа созданного ASP.NET приложения развернута на IIS.
Перейдем к вопросу использования созданного веб-сервиса на платформе 1С:Предприятие 8.x.
Используем веб-сервис из 1С:Предприятия
Прежде чем перейти к работающему решению, рассмотрим непонятное поведение платформы при использовании объекта конфигурации "WSСсылка". Как известно, этот объект используется для сохранения структуры веб-сервиса и его повторного использования в алгоритмах конфигурации. Но при попытке использовать его для созданного нами выше веб-сервиса, столкнулся с проблемами, которые не удалось решить. Обо всем по порядку.
В тестовую конфигурацию добавлен объект WS-ссылка с именем "SendSMS'. Объект имеет следующее WSDL-описание:
Как мы видим, платформа верно распознала описание созданного веб-сервиса, в т.ч. его метод "SendSMS" с параметрами. Для использования WS-ссылки написан следующий программный код:
Однако при вызове метода SendSMS с переданными параметрами возникает ошибка "Недостаточно фактических параметров".
Мне не удалось решить данную проблему. Искал решение в интернете, но ни один найденный рецепт не помог. В итоге решил использовать для работы с веб-сервисом POST-запрос.
Если кто-нибудь из читающих пост знает как правильно в текущей ситуации выполнить обращение к веб-сервису, прошу подсказать.
Для формирования POST-запроса в конфигурации 1С:Предприятие используем следующий алгоритм:
При выполнении команды отправки сообщения мы увидим такой результат (см. след. скриншот).
На скриншоте продемонстрирована успешная попытка отправки сообщения. В текстовое поле выведена строка, которую вернул на сервис "SMSFeedBack".
Выводы
Использование веб-сервисов в рамках 1С:Предприятие 8.x может существенно расширить функциональность программы. В статье рассматривался очень простой пример, однако если веб-сервис будет производить распознавание текста на сканированных документах, то возможности платформы в сфере автоматизации документооборота значительно вырастут.
Таким образом, создание веб-служб как сторонними средствами, так и возможностями самой платформы, позволяют вывести ее возможности на новый уровень.