1С:Предприятие 8. Веб-сервисы. Публикация и тестирование

Jul 22, 2022 13:45

Публикация веб-сервиса - это процесс настройки веб-сервера (Apache или IIS) на работу совместно с Платформой 1С. То есть, после публикации, ваш веб-сервер станет посредником между клиентом веб-сервисов и базой 1С. При этом веб-сервер, а точнее менеджер сервисов 1с, запущенный в процессе веб-сервера, будет заниматься слежением за соединениями с информационной базой, приемом запросов от клиентов, поддержкой WSDL описания, сериализацией сообщений, реализацией протоколов SOAP.

Обязательным условием для публикации является наличие установленного веб-сервера и установленные модули расширения веб-сервера. Модули расширения веб-сервера устанавливаются из инсталлятора платформы 1С. Про установку Apache довольно много статей, думаю установить ее не составит проблем.

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

Публикацию веб-сервисов можно выполнять и на ОС Linux и на ОС Windows. Я работал пока что только с Windows, потому расскажу про нее.

Публикация на ОС Windows

Если для публикации веб-сервиса на Linux не обойтись без командной строки(8.3 пока еще бета), то для публикации на Windows достаточно конфигуратора 1С. Откройте конфигуратор и зайдите в меню "Администрирование - Публикация на веб-сервере...".



Появится окно "Публикация на веб-сервере".



"Имя" - это имя публикации. Если бы можно было представить "сайт" 1С как папку на вашем веб сервере, то путь к этой папке в браузере как раз бы определялся как имя сервера / имя публикации. То есть ссылка на веб-клиент выглядит так:

http://имя сервера/имя публикации

Примечание: при использовании в качестве веб-сервера Apache все ссылки веб-клиента будут регистрозависимыми. То есть в данном случае при переходе по ссылке

http://имя сервера/forCodeNotesBlog

браузер не найдет такой страницы.

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

"Веб-сервер" - это список выбора веб-сервера из установленных на данный момент веб-серверов на текущей машине. Если вы установите веб-сервер Apache то он появится в этом поле автоматически.

"Каталог" - это путь к каталогу в котором хранится файл настройки подключения веб-сервера к информационной базе 1С. Путь должен содержать только латинские символы.

"Публиковать тонкий клиент и веб-клиент" - указывает можно ли подключиться к базе в тонком клиенте и веб-клиенте. Простыми словами, если галочка снята то интерфейс конфигурации не будет отображен и работать с базой будет невозможно. Это может быть полезно если конфигурация выступает только как поставщик веб-сервисов.

"Публиковать Web-сервисы" - указывает, будут ли опубликованы ваши веб-сервисы.

После заполнения всех полей нажмите кнопку "Опубликовать" и веб-сервис будет опубликован.

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

http://имя сервера/имя публикации/ws/имя веб-сервиса?wsdl

То есть в нашем случае ссылка будет выглядеть так:

http://192.168.1.100/ForCodeNotesBlog/ws/WebService?wsdl

Если WSDL сформировался, то это хороший знак). Для вызова веб-операции потребуется какой-нибудь клиент. Можно написать клиент в среде 1С. Об этом написано в статье " 1С:Предприятие 8. Веб-сервисы. Классы Платформы 1С для вызова операций веб-сервиса".

Но сейчас мы рассмотрим более качественный продукт, чем самописная обработка - это кросстлатформенная система для работы с веб-сервисами soapUI (http://www.soapui.org).



Имеется платная и бесплатная версия программы. Нам достаточно будет бесплатной. Скачать ее можно по ссылке http://sourceforge.net/projects/soapui/files/.

Ну что же. Давайте вызовем нашу веб-операцию. Для этого программе надо указать описание нашего веб-сервиса. В левой части программы есть дерево проектов. Нажмем по корню дерева правой кнопку и вызовем команду "New soapUI project".



Появится окно ввода ссылки или файла с описанием веб-сервиса.



Укажите название проекта и ссылку на WSDL файл. На форме так же присутствует набор галочек, для формирования тестов. Но в этой статье мы рассмотрим только вызов веб-операций.

Если в вашей базе есть пользователи, то доступ к описанию веб-сервиса будет происходить с запросом логина и пароля. После нажатия на OK вы получите предложение ввести логин пароль пользователя, который имеет доступ на использование. Скажу так: любой пользователь базы данных, даже тот у которого нет ни одной роли, имеет право прочитать описание веб-сервиса. Именно описание WSDL, на выполнение веб-операций у него не будет прав.



Нажмите ОК и в дереве проектов вы увидите свой веб-сервис.



Почему это дерево называется деревом проектов а не деревом веб-сервисов? Потому что помимо структуры вашего веб-сервиса он содержит ветки настроек, тестов, запросов и прочего. Например если вы развернете дерево и найдете свою операцию, то заметите что у нее уже создан один запрос (Request1). Этот запрос содержит SOAP сообщение. Если по нему щёлкнуть мышкой два раза то вы увидите новое окно, изображенное на рисунке выше.
Левая часть окна содержит SOAP сообщение запрос, правая будет содержать в себе результат веб-операции. Вместо вопросительных знаков укажите свои значение параметров и нажмите кнопку "Submit request to specified endpoint URl", изображенное в виде зеленой стрелочки.
После нажатия на эту кнопку в правом окне будет возвращен результат веб-операции.

Примечание: в платной версии soapUI имеется возможность редактирования SOAP сообщения привычными способами - ввоз данных в поля, вместо редактирования XML.

Если в вашей базе есть хотя бы один пользователь, то перед выполнением веб-операции вам нужно ввести его учетные данные. Для ввода учетных данных необходимо нажать кнопку "Aut" под левым окном.



В поле "Authorisation Type" необходимо указать "Preemptive".



И ввести логин пароль пользователя базы данных, который имеет право на исполнение этой веб-операции.



После ввода учетных данных можно выполнить операцию получить результат в правом окне. К сожалению для каждого запроса (Request) необходимо заново вводить учетные данные.

После выполнения веб-операции помимо результата, вам доступные дополнительные сведения, такие как длительность выполнения и объем переданных данных в байтах. Эти данные отображаются в строке состояния текущего окна.

На приведенных выше изображениях, вы видите результат исполнения, описанной в других статьях, операции Plus2. Мы видим, что на выполнение операции ушло 1243 миллисекунд, что довольно много на операцию сложения. Объем переданных данных - 316 байт.

Примечание: для тестирования веб-сервисов у разработчиков soapUI есть еще одно бесплатное приложение - loadUI.

Допустим у вас есть веб-операция, имеющая операнд тип datetime. При выполнении обязательно указание даты и вы не можете указать пустое значение. Дата указывается в определенном формате:

ГГГГ-ММ-ДДTЧЧ:мм:СС.ссс+/-ЧЧ:мм

либо

ГГГГ-ММ-ДДTЧЧ:мм:СС.ссс

либо

ГГГГ-ММ-ДДTЧЧ:мм:СС

Пример:

2012-09-14T00:00:00.000+02:00

Возможно есть еще форматы записи для поля типа datetime. Причем формат ГГГГ-ММ-ДДTЧЧ:мм:СС.ссс+/-ЧЧ:мм содержит в себе данные о часовом поясе отправителя запроса. Если веб-операция на 1С получает такое значение, то она считает это время местным временем отправителя и преобразует в свое местное время. Данный пример, а так же как указать значение null более подробно описаны в статье 1С " Предприятие 8. Веб-сервисы. Написание кода веб-сервиса."

Тип число тоже требует обязательного указания значения - хотя бы нуля.

Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up