Пример Web-сервиса в 1С 8.3

Создание Web-сервиса

В качестве примера разработаем простой Web-сервис, который будет принимать 2 числа и возвращать их сумму.

В дереве конфигурации в узле Общие — Web-сервисы добавим новый Web-сервис с именем SumOfNumbers:

Web-сервис

Перейдем на закладку Операции и нажмем кнопку Добавить операцию:

Операции

Будет добавлена новая операция. Укажем для нее имя Sum. В качестве типа возвращаемого значения выберем тип decimal из пространства имен http://www.w3.org/2001/XMLSchema:

операция

Теперь добавим для операции параметр. Для этого нужно выделить операцию и нажать кнопку Добавить параметр:

Добавить параметр

Для параметра укажем имя Summand1, тип значения decimal из пространства имен http://www.w3.org/2001/XMLSchema, направление передачи — Входной:

параметр

Добавим второй аналогичный параметр с именем Summand2:

параметр

Вернемся в свойства операции и нажмем на лупу в свойстве Имя процедуры:

Имя процедуры

В результате в модуль Web-сервиса будет добавлена процедура Sum. Изменим ее код на следующий:

После этого перейдем на закладку Прочее и в свойстве URI пространства имен укажем http://program1s.com/SumOfNumbers. В свойстве Имя файла публикации укажем SumOfNumbers.1cws:

Имя файла публикации

На этом создание Web-сервиса завершено. Обновим конфигурацию базы данных.

Установка веб-сервера

Теперь нужно установить веб-сервер.

Веб-сервер — это программа, запущенная в фоновом режиме, которая может принимать и обрабатывать запросы по HTTP протоколу.

1С поддерживает два веб-сервера:

  • Apache
  • IIS

Apache

Apache является бесплатным кроссплатформенным веб-сервером. Для его установки переходим по ссылке и в верхней части скачиваем Apache нужной разрядности. Разрядность определяется по разрядности платформы 1С. Я скачаю 32-х разрядную:

Apache

Распакуем скачанный архив и скопируем папку Apache24 на диск C, так как по умолчанию в конфигурационном файле прописан именно такой путь.

Теперь перейдем в каталог C:\Apache24\bin и запустим httpd.exe. Веб-сервер будет запущен, окно с запущенным веб-сервером должно остаться открытым:

Apache

По умолчанию веб-сервер запускается на 80 порту. Для проверки введем в адресной строке браузера localhost. Если веб-сервер был запущен, то должно выйти сообщение «It works!»:

Apache

Если 80 порт уже занят, то есть возможность изменить его. Для этого нужно открыть файл C:\Apache24\conf\httpd.conf любым текстовым редактором, найти в нем строку Listen 80 и изменить 80 на нужный порт, например 8080:

httpd.conf

Так как теперь используется не стандартный порт, то для проверки в браузере нужно ввести localhost:8080.

Если нужно перенести каталог с Apache в другое место, например на диск G, то нужно в файле Apache24\conf\httpd.conf изменить путь к переменной SRVROOT:

httpd.conf

Если каталог с Apache был скопирован в Program Files, то нужно дать права на каталог с Apache для роли Пользователи:

Права доступа

Теперь нужно установить Apache как службу. Для этого закроем окно с веб-сервером и запустим командную строку от имени администратора. В командной строке введем cd C:\Apache24\bin, чтобы перейти в каталог с apache:

Apache

Выполним команду httpd.exe -k install. Этой командой мы установили apache как службу windows:

Apache

Для запуска службы в каталоге C:\Apache24\bin запустим ApacheMonitor.exe. В трее появится значок для управления службой Apache:

ApacheMonitor

Щелкнем по нему левой кнопкой мыши и выберем команду Start:

ApacheMonitor

IIS (Internet Information Services)

IIS — это проприетарный веб-сервер от Microsoft. Работает только под Windows.

Для установки нужно в панели управления выбрать Программы и компоненты — Включение или отключение компонентов Windows:

Включение или отключение компонентов Windows

В открывшемся окне в группе Службы IIS нужно отметить следующие компоненты:

  • Службы интернета — Общие функции HTTP
  • Службы интернета — Компоненты разработки приложений: ASP.NET, Расширения ISAPI и Фильтры ISAPI
  • Средства управления веб-сайтом: Консоль управления IIS и Служба управления IIS
IIS

И дождаться окончания их установки.

Для запуска нужно в панели управления выбрать пункт Администрирование — Диспетчер служб IIS:

Диспетчер служб IIS

В открывшемся окне в правой части нажать на кнопку Запустить:

Диспетчер служб IIS

По умолчанию IIS запускается на 80 порту. Для проверки нужно в браузере в адресной строке ввести localhost, должна загрузиться страница с IIS:

IIS

Чтобы изменить порт нужно в диспетчере IIS в левой части в разделе Сайты выделить Default Web Site:

Default Web Site

И в правой части нажать на кнопку Привязки:

Привязки

В открывшемся окне нужно выделить строку с типом http и нажать на кнопку Изменить:

Порт IIS

В поле Порт указать нужный порт, например 8080 и нажать ОК:

Порт IIS

Чтобы 64-х разрядный IIS мог работать с 32-х разрядной платформой 1С нужно в диспетчере IIS в левой части выделить пункт Пулы приложений, в списке пулов выделить DefaultAppPool и нажать на кнопку Дополнительные параметры:

Пулы приложений

В открывшемся окне нужно для свойства Разрешены 32-разрядные приложения установить True и нажать ОК:

Разрешены 32-разрядные приложения

Модули расширения веб-сервера

Теперь нужно установить модули расширения веб-сервера 1С (если они еще не установлены). Для этого в Windows перейдем в Приложения и возможности, найдем нужную версию платформы 1С и нажмем Изменить:

Приложения и возможности

В открывшемся окне выберем Изменить и нажмем Далее:

Изменить платформу 1С

Здесь нужно отметить пункт Модули расширения веб-сервера и продолжить установку:

Модули расширения веб-сервера

Публикация Web-сервиса

Я буду выполнять публикацию на веб-сервере IIS, для Apache процесс ничем не отличается.

Перед публикацией создадим в каталоге C:\inetpub\wwwroot папку testbase. В эту папку будет опубликован Web-сервис. Каталог C:\inetpub\wwwroot является для IIS корневым. Чтобы его изменить нужно в диспетчере служб IIS выделить Default Web Site:

Default Web Site

И справа нажать на гиперссылку Основные настройки:

Основные настройки

В открывшемся окне нужно изменить свойство Физический путь:

Физический путь

Для публикации Web-сервиса нужно запустить 1С от имени администратора и зайти в конфигуратор. В верхнем меню выбираем Администрирование — Публикация на веб-сервере:

Публикация на веб-сервере

В открывшемся окне нужно ввести произвольное имя (на латинице), выбрать веб-сервер Internet Information Services, в свойстве каталог выбрать созданную нами папку C:\inetpub\wwwroot\testbase\. Затем нужно снять все флажки, в том числе на закладке HTTP-сервисы. Включенными нужно оставить только флажки Публиковать Web-сервисы, а также флаг напротив созданного нами Web-сервиса:

Публиковать Web-сервисы

Нажимаем Опубликовать:

Опубликовать

1С предложит перезапустить веб-сервер, откажемся и сделаем это вручную через диспетчер служб IIS:

диспетчер служб IIS

Тестирование Web-сервиса

Для тестирования Web-сервиса будем использовать SoapUI. Чтобы скачать SoapUI переходим по следующей ссылке и нажимаем на кнопку Download SoapUI Open Source:

SoapUI

Будет скачан файл SoapUI-x64-5.6.0.exe. Для установки нужно запустить его. Процесс установки не должен вызвать сложностей.

Для запуска SoapUI требуется Java, поэтому убедитесь что она у вас установлена.

После запуска нужно создать новый Soap проект. Для этого нужно нажать на кнопку SOAP:

SoapUI

В открывшемся окне нужно ввести имя проекта, указать путь к WSDL файлу и оставить включенной галку Create Requests:

SoapUI

Путь к WSDL файлу формируется следующим образом:

  • адрес — localhost
  • порт — по умолчанию используется 80 порт, поэтому его можно не указывать
  • имя базы — то что было указано в поле Имя при публикации на веб сервере. В нашем случае это testbase
  • ws — признак, что идет обращение к Web-сервисам
  • Имя Web-сервиса — имя web-сервиса, в нашем случае это SumOfNumbers.
  • ?wsdl — признак обращения к WSDL файлу

Затем нужно нажать ОК и будет добавлен новый проект:

SoapUI

В созданном проекте нужно дважды щелкнуть по полю Request1. По любому из них, оба запроса обращаются к одной операции Web-сервиса, отличается только версия протокола. Будет открыто окно с запросом:

SoapUI

В левой части будет запрос, в правой ответ.

Сейчас в запросе вместо параметров указаны вопросительные знаки. Заменим их на числа:

SoapUI

И нажмем на кнопку с зеленым треугольником:

SoapUI

В результате будет выполнен запрос на Web-сервис и в правом окне будет показан ответ (сумма переданных параметров):

SoapUI

Содержание курса


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok