Содержание:
2. Подключение к серверу в системе программы 1С: Шина
1. Что такое AMQP-протокол?
AMQP-протокол (расширенный протокол очереди сообщений) – это прикладной и открытый протокол, который способствует обмену сообщениями между различными компонентами системы, он отвечает за маршрутизацию сообщений и производит распределение потоков информации.
Для отправки и получения сообщений, необходимо осуществить подключение внешних систем к серверу системы 1С: Шина при помощи AMQP протокола. Это можно выполнить через узлы процесса, которые осуществляют интеграцию и имеют вид «Канал1СИсточник» и «Канал1СНазначение». Чтобы узнать каким будет порт брокера на сервере 1С: Шина, а также каким будет наименование очереди, нужно обратиться к сервису HTTP и описанию системы 1С: Шина.
Замечание: При отправке сообщений можно избрать список тех баз данных, в которые будет направлено данное сообщение. Чтобы это выполнить, нужно для заголовка сообщения AMQP, его значения, которое называется «RecipientCode» прописать строку, в которой будут обозначены кодировки из справочника с базами данных, эти кодировки нужно разделять запятой. Если это не выполнить, то система произведёт отправку сообщения во все базы, которые в ней обозначены.
2. Подключение к серверу в системе программы 1С: Шина
Важно понимать, что при подключении к серверу, необходимо провести процедуру по аутентификации для клиентского приложения 1С. Чтобы это выполнить, отправляем запрос для получения билета (token) аутентификации в сервер с таким адресом:
Здесь, - это имя хоста и порт, определенные в конфигурационном файле «server.yaml».
Формат запроса в программном коде системы будет таким, как демонстрируется ниже:
В виде и
нужно выбрать идентификатор и секрет клиента, полученные при создании информационных систем в приложении 1С: Шина, для этого, надо открыть «Приложение», перейти на вкладку «Инфосистемы» и кликнуть по «Выдать ключ API».
Для этого, код программы будет следующим:
Для «URL» код будет таким:
А для «Python» код будет таким, как на примере ниже:
Если билет был благополучно получен, то у нас отобразится такой ответ, который будет иметь формат JSON:
Этот билет необходимо задействовать во время подключения к брокеру от сервера системы 1С: Шина, а также при вызове сервисов HTTP нашей системы, при помощи AMQP протокола таким образом:
• Ели требуется осуществить подключение к брокеру сервера системы 1С: Шина, то данный билет нужно прописать, как пароль и имя данного подключения;
• Если требуется обратиться к HTTP сервисам системы 1С: Шина, то данный билет нужно прописать для заголовка «Authorization» в таком виде:
Действие билета длится один час. Это значит, что при необходимости произвести более одного вызова – можно использовать один и тот же билет, не прибегая к повторному использованию менеджера по аутентификации.
В случае, если билет уже был просрочен – появится ответ, который будет содержать код ошибки «401». Тогда нужно будет заново запрашивать билет.
В данной статье был рассмотрен AMQP-протокол и его взаимодействие с конфигурацией системы 1С: Шина. А именно, было представлено, как, с помощью этого протокола, получать и отправлять сообщения в нашей системе и как правильно настроить эту процедуру.
Специалист компании "Кодерлайн"
Андрей Прыкин