Пример 5. Отправка и получение сообщений по протоколу AMQP из стороннего приложения
Внешние информационные системы могут подключаться к «1С:Шине» по протоколу AMQP. В данном примере рассмотрим, каким образом внешняя система может подключаться к каналам «1С:Шины» и отправлять в них сообщение.
В информационных системах на платформе «1С:Предприятие» для подключения к каналам «1С:Шины» предусмотрен объект «СервисыИнтеграции».
Далее рассматривается пример настройки обмена данными между приложением на платформе «Node.js» и «1С:Шиной». Подключение к очереди «1С:Шины» и отправка в нее сообщений будет осуществляться программно на языке JavaScript.
В ходе этого примера вы:
- В среде разработки «1С:Шины»:
- создадите проект и настроите в нем процесс интеграции;
- опубликуете проект на сервере.
- В панели управления «1С:Шины»:
- создадите информационные системы, которые будут принимать участие в обмене;
- включите информационные системы в состав участников процесса интеграции;
- запустите процесс интеграции.
- Напишете скрипт на языке JavaScript и выполните программную отправку и получение сообщений в «1С:Шина».
- Проверите обмен сообщениями.
Создание приложения и процесса интеграции
На этом этапе вы создадите в среде разработки «1С:Шины» приложение и добавите в него процесс интеграции.
- Создайте новое приложение с файловой СУБД и откройте его в режиме разработки.
- Добавьте новый элемент проекта — процесс интеграции. Назовите его ОбменТиповой.
«1С:Шина» создаст в проекте новый процесс интеграции и откроет редактор для создания его схемы.
Редактирование схемы процесса интеграции
На этом этапе вы создадите схему процесса интеграции, которая описывает взаимодействие информационных систем. Схема интеграции в данном примере будет выглядеть следующим образом:

Данная схема включает в себя одну группу участников: «Приложения». В эту группу позже, после публикации проекта, будет добавлена одна информационная система, написанная на языке JavaScript.
Для участника из группы, связанной с узлами вида Канал1СНазначение («ВПриложение») и Канал1СИсточник («ИзПриложения»), в «1С:Шине» создаются две индивидуальные очереди: в одну очередь приложение сможет отправлять сообщения, из другой — получать. Приложение подключается к очередям по протоколу AMQP. В данном примере приложение-отправитель будет подключаться к очередям сообщений программно, при помощи специального скрипта, написанного на языке JavaScript. Пос ле того как сообщение отправлено приложением, оно попадает в узел Канал1СНазначение, после чего, дойдя до узла ФайлНазначение, записывается в файл.
В левой части схемы отображен процесс, в ходе которого внешнее приложение получает сообщение из «1С:Шины». Сообщение генерируется из содержимого файлов, которые появляются в каталоге отправителя. После этого сообщение попадает в Канал1СИсточник, где сохраняется в очереди сообщений. Из этой очереди приложение получает сообщение.
Вы можете выполнить все действия самостоятельно или воспользоваться готовым примером из YAML-файла ниже и перейти к публикации приложения. Чтобы создать схему интеграции, выполните следующие шаги:
Пример YAML-файла процесса интеграции
ВидЭлемента: ПроцессИнтеграции
ОбластьВидимости: ВПодсистеме
Ид: 124de3fd-b9e4-4272-a70e-e6078de2b819
Имя: ОбменТиповой
СправочникУчастников: e1c::ОбменAMQP::Основной::ИнформационныеСистемы
Схема:
ГруппыУчастников:
-
Ид: dd844c40-08d5-4069-9fca-667c4297c7a1
Имя: Приложения
X: 214
Y: 106
Высота: 60
Ширина: 138
Маршруты:
-
Ид: f5429b14-80df-4624-ba1f-8c66ac093444
В: ВПриложение
Из: ФайлИсточник
Точки:
-
X: 130
Y: 308
-
X: 130
Y: 308
-
Ид: 13526c32-2096-4d1b-9007-c1701b786042
В: ФайлНазначение
Из: ИзПриложения
Точки:
-
X: 442
Y: 310
-
X: 442
Y: 310
Связи:
-
Ид: 961f3a7a-6a03-4a0b-a8f6-672b217f28c1
Группа: Приложения
НаправлениеСвязи: ИзУзлаВГруппу
Узел: ВПриложение
Точки:
-
X: 130
Y: 200
-
X: 284
Y: 200
-
Ид: c5d1e661-1cc7-4a4e-9e3c-08219eebe400
Группа: Приложения
НаправлениеСвязи: ИзГруппыВУзел
Узел: ИзПриложения
Точки:
-
X: 283
Y: 199
-
X: 442
Y: 199
Узлы:
-
Вид: Канал1СИсточник
Ид: 60b6a793-af30-4e64-8582-24215b0237fe
Имя: ИзПриложения
X: 367
Y: 219
Высота: 62
Ширина: 150
-
Вид: ФайлНазначение
Ид: 863a0dc8-0c17-4cb1-98d7-d10f1ff7884d
Имя: ФайлНазначение
X: 364
Y: 336
Высота: 64
ДействиеНадСуществующимФайлом: Дописывать
ИмяФайла: СообщенияИзШины
Каталог: C:\Users\into
Ширина: 157
-
Вид: Канал1СНазначение
Ид: 54643b4e-0976-4ccc-8e80-26c311bf59a9
Имя: ВПриложение
X: 58
Y: 221
Высота: 62
Ширина: 145
-
Вид: ФайлИсточник
Ид: 27efe99c-fb97-489b-8463-d45612171bfb
Имя: ФайлИсточник
X: 58
Y: 334
Высота: 64
ИмяФайла: СообщениеВШину.txt
Каталог: C:\Users\from
Ширина: 144
-
Добавьте на схему группу участников. Для этого прокрутите палитру узлов, выберите ГруппаУчастников и кликните в верхней части схемы, чтобы разместить там группу. Кликните д ва раза по узлу и задайте имя — Приложения:

-
Добавьте на схему узел Канал1СИсточник и задайте имя — ИзПриложения:

-
Добавьте на схему узел ФайлНазначение:

-
Аналогичным образом добавьте на схему узлы Канал1СНазначение и ФайлИсточник. Задайте узлу Канал1СНазначение имя ВПриложение:

-
Следующим шагом следует обозначить на схеме маршруты и связи. Свяжите группу участников Приложение с узлами ИзПриложения и ВПриложение элементом вида Связь. Для этого пр окрутите палитру узлов, выберите Связь, а затем кликните последовательно группу участников Приложение и на узел ИзПриложения. После этого снова выберите Связь и кликните последовательно на узел ВПриложение и группу участников Приложения:

-
Соедините маршрутом узел ИзПриложения с узлом ФайлНазначение, а также ФайлИсточник с узлом ВПриложение. Для этого выберите в палитре элемент вида Маршрут и кликните последовательно на узлы ИзПриложения и ФайлНазначение. После этого снова выберите Маршрут и кликните последовательно на узлы ФайлИсточник и ВПриложение:

-
Для узла ФайлИсточник зададим свойства Каталог и Имя файла.
-
В поле Каталог укажите адрес каталога, который будет просм атриваться «1С:Шиной» на предмет появления новых файлов.
-
В поле Имя файла укажите имя файла, из содержимого которого будет формироваться тело сообщения:

-
-
Для узла ФайлНазначение зададим свойства Каталог и Имя файла.
-
В поле Каталог укажите адрес каталога, в котором будет создан файл с телом сообщения, полученного из «1С:Шины».
-
В поле Имя файла укажите имя файла с расширением (в примере: СообщенияИзШины.txt), в который будут записываться сообщения, полученные из «1С:Шины»:

-
-
Для узла ФайлНазначение в поле ДействиеНадСуществующимФайлом кликните на значок выпадающего списка и выберите значение Дописывать. Таким образом, «1С:Шина» будет дописывать новые сообщения в конец файла. Такой файл будет содержать тела нескольких сообщений:

Публикация и открытие приложения
Чтобы опубликовать и открыть приложение, выполните следующие действия:
-
Нажмите Ctrl+F5. Сервер запросит имя пользователя и пароль. Для аутентификации используйте учетную запись администратора и пароль, который вы создали при установке сервера.
-
После успешной авторизации вы увидите приложение, а в нем — список существующих процессов интеграции. В примере это будет единственный процесс интеграции ОбменТиповой:
