HTTP-сервисы в 1С Предприятие 8.3

В платформе 1С Предприятие 8.3 появилась возможность создавать HTTP-сервисы

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

По сравнению с имеющимися в платформе SOAP web-сервисами, HTTP-сервисы имеют ряд преимуществ:

  • Простота программирования клиента таких сервисов;
  • Потенциально меньший объем передаваемых данных;
  • Потенциально меньшая вычислительная нагрузка;
  • HTTP-сервисы ориентированы на «ресурсы», в то время как SOAP сервисы ориентированы на «действия».

В базе http83.dt продемонстрирована реализация http-сервисов

http-сервис СписокНакладных

В http-сервисе использованы шаблоны URL, реализована обработка свойства ПараметрыURL объекта HTTPСервисЗапрос
В данном примере показано, как можно создать базу-прокладку между рабочей базой и корпоративным сайтом
Подключение производится к демо-базе “Управление торговлей 11“, в которой предварительно для справочника “Контрагенты” нужно задать доп.свойство с названием Пароль к вэб, где будем хранить пароль для доступа.
В http-запрос будет передаваться в параметры URL: ИНН в качестве логина и пароль.
При обработке запроса происходит подключение через ComConnector к УТ(тормоза гарантированы Laughing ), и оттуда производиться выборка
Не претендую на быстроту и безопасность этого решения, оно в качестве примера

Итак. В дереве метаданных появилась новая ветка  – HTTP-сервисы
Создаем новый сервис, указываем его имя и корневой URL(list)
Корневой URL будет использоваться для вызова нашего http-сервиса
Далее добавим в http-сервис Шаблон URL, указав в качестве шаблона “/{Логин}/{Пароль}”
Такой шаблон позволит при обработке http-запроса получить в парметрах URL соответствующую структуру параметров и их значения
Теперь, к нашему шаблону URL добавим метод с именем “get”, в качестве http-метода выберем GET
Открываем обработчик, и пишем код
Обработчик метода представляет собой функцию, которая должна возвращать значение типа HTTPСервисОтвет

http-сервис СтатусЗаказа

В примере реализована обработка переменных, переданных методом POST, формирование ответа в виде html-страницы.
Выборка данных на этот раз производится из базы, где лежат hs, поэтому работает существенно быстрее предыдущего http-сервиса.
При реализации рабочей системы имеет смысл создать объекты в базе (с сервисом) и настроить миграцию данных из базы-источника (например, отдельным фоновым процессом). Выборку при обработке http-запроса производить непосредственно из базы, где он находится.

Публикация

Об установке и настройке веб-сервера информации предостаточно.
Я использовал сборку httpd-2.2.25-win32-x86-openssl-0.9.8y.exe отсюда
Устанавливал по методу “Далее-Далее-Финиш” 🙂
Публикация http-сервисов находится там же, где была и есть публикация веб-сервисов и особо ничем не отличается.
После установки веб-сервера в режиме “Конфигуратор” переходим по меню “Администрирование” – “Публикация на веб-сервере”
На вкладке “HTTP-сервисы” задаем имя публикации, веб-сервер , каталог публикации, и отмечаем наши сервисы(в моем случае имя – “web”, веб-сервер Apache 2.2)
При публикации в файл конфигурации httpd.conf автоматически записываются соответствующие блоки и сервер перезапускается (при первой публикации)
Обращение http-сервису
Пример: http://mysite/web/hs/list , где
mysite – адрес сервера (на если веб-сервер установлен локально – можно использовать 127.0.0.1)
web – имя, указанное при публикации (альяс)
hs – обязательный сегмент пути, сообщающий серверу, что будет происходить работа с http-сервисами
list – корневой url веб-сервиса

Тестируем

Список накладных

http://127.0.0.1/web/hs/list/7705260681/pswMP (Не забудьте настроить доп.свойство в УТ для пароля)

Предполагается, что для доступа к реестру документов пользователь обращается по прямой ссылке, содержащей ИНН и пароль

Статус заказа

http://127.0.0.1/web/hs/check

Запрос и ответ расположены по одному URL. При входе на страницу срабатывает метод GET, возвращающий html-форму

При нажатии “Проверить” происходит отправка номера заказа методом POST на этот же URL, ответ возвращается с той же формой запроса, дополненной данными по запрошенному заказу.

 

В прикрепленном файле – выгрузка БД для 1С 8.3. В конфигурации реализованы 2 http-сервиса (из публикации), настройка com-соединения с демао базой УТ 11, документ “Заказ”.

 

Что потребуется для запуска и тестирования

  • веб-сервер
  • любой веб-браузер
  • актуальный релиз 1С: Предприятие 8.3 

В КАТАЛОГ »