Веб-сервис на C# для 1С:Предприятие 8.x. Отправка СМС

09 января 2013

Предисловие

Logo

На сегодняшний день существует достаточно много примеров практического применения веб-сервисов, которые позволяют интегрировать между собой абсолютно разные приложения и службы. Ранее в статье "Поддержка COM-соединения. Часть №2" мы использовали созданный нами веб-сервис на C# для поддержки COM-соединения между информационными базами 1С:Предприятия 8. Сегодня мы более подробно рассмотрим процесс создания собственного веб-сервиса на C#. Начнем с установки и настройки сервера IIS, затем перейдем непосредственно к созданию веб-службы в среде Visual Web Developer Express на C#. В завершении напишем программный код для использования созданной веб-службу в платформе 1С:Предприятие.

Создаваемый веб-сервис будет выполнить отправку SMS-сообщений. Ему будут отправляться в качестве параметров номер мобильного телефона и текст сообщений. Вызываемый метод веб-сервиса вернет результат выполнения команды. 

Отправка SMS-сообщений будет осуществляться с помощью API сервиса "SMSfeedback". В статье будет рассмотрено решение проблемы объекта конфигурации "WSСсылка" при работе с веб-сервисами, созданными в Visual Web Developer Express. В конце статьи делается вывод о целесообразности использования внешних веб-сервисов в платформе 1С:Предприятие.

Устанавливаем и настраиваем IIS

Для тестирования и дальнейшей работы создаваемого веб-сервиса будем использовать Internet Information Services (IIS), поскольку он доступен для установки в дистрибутиве Windows. В нашем случае IIS 7.5 для Windows 7.

Наглядная инструкция по установке IIS с последующей настройкой для разработки веб-сервиса на основе ASP.NET приведена на следующем видео.

 Общая последовательность действий такая: 

  1. Добавляем компоненты Windows в разделе "Службы IIS".
  2. Устанавливаем поддержку ASP.NET для IIS.
  3. Запускаем регистрацию ASP.NET для веб-сервера через приложение "aspnet_regiis" с параметром "-r".
Проделанные действия позволяют отлаживать веб-сервис на локальной машине и тестировать его из платформы 1С:Предприятие.

СОЗДАЕМ ВЕБ-СЕРВИС НА C#

Веб-сервер готов, перейдем к созданию веб-сервиса. Сначала расскажу о функционале, который он будет нести. Веб-сервис будет иметь единственный метод с четырьмя параметрами. Через параметры будут передаваться:

  1. Логин пользователя "SMSfeedback".
  2. Пароль пользователя "SMSfeedback".
  3. Номер мобильного телефона.
  4. Текст сообщения.

Функция метода "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 может существенно расширить функциональность программы. В статье рассматривался очень простой пример, однако если веб-сервис будет производить распознавание текста на сканированных документах, то возможности платформы в сфере автоматизации документооборота значительно вырастут.

Таким образом, создание веб-служб как сторонними средствами, так и возможностями самой платформы, позволяют вывести ее возможности на новый уровень.


comments powered by Disqus