адрес http сервиса 1с

HTTP-сервис в 1С: создание, публикация и отладка

В платформе версии 8.3.5 появилась возможность создавать HTTP-сервисы. Как и «старые» SOAP web-сервисы, HTTP-сервис позволяет получать/изменять данные, но при этом, как утверждает компания 1С, HTTP-сервисы потенциально позволяют упростить создание клиентских приложений, уменьшить объем передаваемых данных и вычислительную нагрузку, все это особенно для мобильных устройств.

В этой статья я постараюсь рассказать о том, как создавать, отлаживать и использовать HTTP-сервисы в 1С.

Начнем с того, что для создания HTTP-сервиса нам необходим веб-сервер, например Apache 2.2 (начиная с версии 8.3.8 и Apache 2.4 подойдет). Описывать установку веб-сервера думаю нет необходимости.

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

Итак, создаем новый HTTP-сервис:

Корневой URL — важный параметр, входит в адрес по которому сервис будет доступен после публикации.

В соответствующем разделе создаем новый шаблон URL и метод:

У шаблона URL есть единственное свойство — шаблон. Этим свойством можно задать путь по которому будет происходить обращение к HTTP-сервису. В шаблоне можно использовать параметризованные сегменты, как на рисунке ниже (об их использовании ниже).

У метода есть свойство HTTP-метод, которое можно указать выбрав одно из следующих значений: GET, POST, PUT, DELETE, PATCH, MERGE, CONNECT, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK или Любой.

При обращении к HTTP-сервису, платформа пытается сопоставить адрес, по которому произошло обращение с одним из имеющихся шаблонов и методов. Если сопоставить удалось, то будет выполнен обработчик метода, если же сопоставить не удалось, то будет возвращен код ответа 404.

Перейдем к примеру обработчика метода, в нем я возвращаю содержимое переменной «Запрос», которая передается в обработчик:

Публикация и проверка HTTP-сервиса

Наш HTTP-сервис готов к публикации, в этом нет ничего сложного (вероятно потребуется запустить конфигуратор от имени администратора):

После публикации я могу обратиться к сервису вот по такому адресу: http://localhost/HTTPTest/hs/Obmen/test-parametr/Test/GetInfo?param=value, где:

Параметры URL, параметры запроса и заголовки представлены в виде фиксированных структур.

Вероятнее всего, при обращение к HTTP-сервису нужно будет авторизоваться (если в базе есть хоть один пользователь), есть несколько способов решения этой проблемы.

Первый — изменить файл default.vrd, который находится в каталоге публикации. В этом файле нужно дополнить строку подключения к базе, например, было:

ib=»File=»C:\Base\TEST»;»,

ib=»File=»C:\Base\TEST»;Usr=Логин;Pwd=Пароль».

В этом случае любые обращения к HTTP-сервису не будут требовать логина и пароля.

Во-вторых, можно указывать логин и пароль при подключении к HTTP-сервису:

Источник

Пример создания HTTP-сервисов на платформе «1С:Предприятие»

В этой статье разбираются демонстрационные HTTP-сервисы, созданные в демонстрационной конфигурации «Управляемое приложение» для платформы «1С:Предприятие» версии 8.3.5 и старше.

Цель статьи – помочь разобраться с использованием технологии HTTP-сервисов и показать практическое применение некоторых неочевидных механизмов.

Демонстрационная база «Управляемое приложение» представляет собой простую конфигурацию, в которой создано большинство объектов, которые могут понадобиться при автоматизации деятельности небольшой торговой фирмы. В частности, в ней присутствует справочник «Товары». Элементами этого справочника мы будем управлять при помощи HTTP-сервиса. Такой сценарий может возникнуть, например, при интеграции с интернет-магазином или другой корпоративной ИС, в которую заносится первичная информация о товарах.

Для удобства изучения описываемых HTTP-сервисов рекомендуется включить авторизацию ОС при публикации на веб-сервере и настроить пользователю с ролью «Администратор» использование windows-аутентификации от имени пользователя ОС, под которым будет проходить изучение.

HTTP-сервис «Товары»

HTTP-сервис «Товары» написан в REST-стиле. Он позволяет получать и удалять элементы и группы в справочнике товаров. Доступ к элементу осуществляется с помощью его пути в иерархии.

Например, для того чтобы получить информацию о товаре «Ряженка» с кодом 000000027, входящем в группу «Молочные» с кодом 000000099, которая входит, в свою очередь в группу «Продукты» с кодом 000000011, в браузере надо будет набрать http:// /hs/Products/000000011/000000099/000000027. Если база опубликована по пути http://localhost:8090/Platform8Demo/, то путь будет:

Читайте также:  обменять дачу на квартиру

http://localhost:8090/Platform8Demo/ hs /Products/000000011/000000099/000000027.

Из чего состоит путь? Рассмотрим по частям:

В нашем случае у сервиса один дочерний объект шаблон URL. В свойстве «Шаблон» этого объекта записана строка “/*». Звездочка – это специальное значение, указывающее на то, что к данному шаблону подходят любые URL. В нашем случае необходимость использования такого шаблона (т.е. по сути отказа от ограничения URL) обусловлена произвольной глубиной иерархии товаров.

У нашего шаблона URL имеются два дочерних объекта, соответствующих HTTP-методам GET (получение) и DELETE (удаление). Именно в них указаны обработчики, которые будут вызываться при обращении к HTTP-сервису.

Для обработки запроса с использованием HTTP-метода GET (а именно такой будет создан, если вставить указанные выше URL в браузер) используется функция ПутьКТоваруGET. Рассмотрим эту функцию немного подробнее:

Сформированное XML-представление используется в ответе сервиса:

HTTP-сервис «ОписанияТоваров»

HTTP-сервис «ОписанияТоваров» предназначен для получения и редактирования информации о товарах. Он написан в RPC (Remote Procedure Call) стиле, похожем на SOAP. В качестве дополнительного условия также предположим, что заказчик, для которого мы разрабатываем конфигурацию, потребовал предусмотреть наличие нескольких версий API где-то в будущем.

Обращение к сервису выполняется при помощи запросов с использование метода POST к URL следующего вида:

Рассмотрим, из чего состоит путь:

Видно, что сервер передал описание товара в формате html.

Рассмотрим, как реализован сервис. Объект метаданных HTTP-сервиса имеет единственный дочерний шаблон URL, в котором прописан следующий шаблон:

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

Обращаем внимание, что коллекция «ПараметрыURL» запроса содержит единственное значение – согласно количеству сегментов, которые могут принимать разные значение.

Для возврата описания товара мы устанавливаем тело запроса:

Аналогично, для установки описания товара мы получаем его из запроса:

При установке описания из тела запроса мы проводим минимальную проверку корректности того, что прислал нам клиент, в данном случае – только типа содержимого, изучая заголовок «Content-type».

Для того чтобы протестировать установку тела запроса достаточно заполнить его в Fiddler:

Отладка кода HTTP-сервиса

Отладка кода HTTP-сервиса аналогична отладке код SOAP веб-сервиса. Для включения отладки нужно:

Разрешение отладки на веб-сервере

Для разрешения отладки на веб-сервере нужно перейти на вкладку «Прочие» диалога публикации на веб-сервере, установить флаг «разрешить отладку» и указать адрес отладчика. Для локальной отладки можно указать tcp://localhost

То же самое можно сделать вручную, исправив vrd-файл, см документацию.

Включение автоматического подключения

Для того чтобы платформа автоматически подключалась для отладки к вызываемым HTTP-сервисам нужно:

Помните, что флажок следует устанавливать при каждом запуске конфигуратора, в котором требуется отладка HTTP-сервисов.

Заключение

В статье рассмотрены основные аспекты программирования HTTP-сервисов в «1С:Предприятии», в частности:

Также показано, как можно их тестировать при помощи программы Fiddler. Более полные справочные материалы можно найти в ИТС по постоянному адресу.

Источник

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

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

Разработаем простой HTTP-сервис в 1С.

В ветке метаданных Общие — HTTP-сервисы создадим новый HTTP-сервис. Укажем имя HTTP-сервис1, корневой URL httpservice:

Перейдем на закладку Шаблоны URL и добавим новый шаблон URL:

Укажем имя Hello, шаблон /hello:

Для шаблона URL добавим новый метод:

HTTP-метод оставим GET и укажем такое же имя:

В поле Обработчик нажмем на кнопку с лупой и попадем в модуль HTTP-сервиса, где автоматически будет добавлена процедура HelloGET:

Добавим еще пару строк кода:

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

Читайте также:  покраска стен губкой своими

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

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

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

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

Apache

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

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

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

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

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

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

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

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

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

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

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

IIS (Internet Information Services)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Перед публикацией создадим в каталоге C:\Apache24\htdocs папку testbase. В эту папку будет опубликован HTTP-сервис.

Читайте также:  кота рвет пеной что это и как лечить

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

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

В открывшемся окне нужно ввести произвольное имя (на латинице), выбрать веб-сервер Apache 2.4, в свойстве каталог выбрать созданную нами папку C:\Apache24\htdocs\testbase\. Затем нужно снять все флажки, в том числе на закладке Web-сервисы:

А на закладке HTTP сервисы оставить флажок только для созданного нами HTTP-сервиса:

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

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

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

Для обращения к HTTP-сервису нужно ввести в строке браузера строку по следующему шаблону:

Источник

Адрес http сервиса 1с

Создаем php файл с текстом:

// Заполняем параметры CURL для получения данных по запросу GET

curl_setopt($ch, CURLOPT_URL, ‘http://localhost/test/hs/ob/OblistAll’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Выполнение запроса и получение ответа
$output = curl_exec($ch);

// Проверка наличия ошибок
if ($output === FALSE) <

>

//Выводим сервисную информацию по выполнению запроса
$info = curl_getinfo($ch);

6. Авторизация на PHP для доступа к HTTP-сервису

Последнее что в этой статье хочу затронуть, это авторизация HTTP-клиента на HTTP-сервисе.
В конфигурации добавляем роль Администратор, даем ему полные права. Создаем нового пользователя Администратор с ролью Администратор и паролем 1.
Теперь страницы написанные на PHP просто так обратиться к HTTP-сервису не смогут. Нужно выполнить авторизацию. Для этого наш код нужно дописать. Ниже представлен полный код PHP файла с возможностью авторизации на HTTP-сервисе 1С:

P/S Было интересно разобраться в HTTP-сервисах 1С. В следующей статье поговорим о передачи параметров и методе POST.

Источник

HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие

Начнем с конца: что в итоге должно получиться.

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

Предположим, что нам нужен HTTP-сервис, который по запросу вернет список пользователей.

Возвращать должен строку JSON (массив объектов JSON со свойствами: имя пользователя, id пользователя):

Чтобы это реализовать, создадим в конфигурации (или в расширении) объект HTTP-сервис. Как он будет называться – неважно, для простоты назовем его «Инфо». Корневой URL должен быть равен «info».

Далее добавим к нему шаблон URL, для простоты назовем его «Основной». Значение шаблона должно быть равно «/*».

К шаблону мы добавим метод GET: имя = «GET», HTTP-метод = «GET».

Создадим обработчик HTTP-метода GET.

По умолчанию процедура обработчика метода заполнена кодом, возвращающим стандартный успешный HTTP ответ (код 200).

Скорректируем его так, чтобы он возвращал нам список пользователей.

Отладка HTTP-сервиса.

Настройка подключения отладчика.

Для отладки HTTP-сервиса нужно включить (или убедиться в том, что включено) следующие флажки.

Проверим, как это все работает.

Поставим точку останова в начале функции метода GET:

Обновляем страничку с вызовом нашего сервиса.

Убеждаемся, что наш отладчик успешно подключился к сеансу HTTP-сервиса:

Заключение.

В этой статье рассмотрен простейший пример для быстрого создания HTTP-сервиса с целью освоения механизмов работы с ним.

В заключении хотелось бы упомянуть про возможность создания HTTP-сервисов с параметрами URL, например:

Эта возможность настраивается в ШаблонеURL HTTP-сервиса.

Для вышеуказанного примера шаблон мог бы выглядеть так: «/users//*» или так «/<Раздел>//*».

В функции обработчика метода этого шаблона параметры URL можно получить через свойство Запрос.ПараметрыURL, например так:

Обратите внимание на последовательность обработки шаблонов HTTP­-сервиса.

В нашем примере использованы 2 шаблона:

При вызове метода http://10.211.55.3/base/hs/info/users/0b3dcecf-104e-11e6-9bdd-001c42ecfab6?action=disable сработает шаблон 1, т.к. параметры URL ему также соответствуют, а обрабатывается он первым. Чтобы этого не происходило, первый шаблон рекомендуется изменить на «/i/*» для однозначного соответствия URL шаблону.

Вызывать первый метод соответственно также придется с новым URL:

Источник

Образовательный портал