Элемент проекта вида «Процесс интеграции»
Для описания взаимодействия «1С:Шины» с информационными системами используется элемент проекта вида Процесс интеграции.
Основная часть процесса интеграции — схема — состоит из узлов и связей. Она наглядно показывает движение сообщений от информационных систем-источников к информационным системам-получателям сообщений.

Для построения схемы процесса интеграции используются узлы, маршруты между узлами, груп пы участников и связи между узлами и группами.
Узлы обозначают действия: возникновение сообщения, маршрутизацию, трансформацию, доставку сообщения. Маршруты между узлами обозначают движение сообщения внутри «1С:Шины». Связи обозначают движение сообщения от внешних информационных систем в «1С:Шину» и из «1С:Шины» к внешним информационным системам. Сообщение движется строго в определенном направлении и не может вернуться к отправителю.
Внешние по отношению к «1С:Шине» информационные системы обозначаются на схеме в виде групп участников. Разные системы объединяются в одну группу, если они взаимодействуют с «1С:Шиной» однотипно. Например, несколько складов получают одинаковые сообщения, после чего сообщения отправляются на сайты партнеров. Для таких систем разработчик может указать на схеме одну группу участников «Склады», а после публикации проекта перейти в панель управления и добавить всех участников в созданную группу.
За одним узлом, созданным на схеме, может стоять множество узлов в режиме исполнения. К примеру, если на схеме есть узел ФайлНазначение, который соединен с группой участников, то после запуска процесса интеграции для каждой информационной системы, входящей в группу участников, будет создан свой собственный узел ФайлНазначение. Таким образом, сообщения из «1С:Шины» будут независимо записываться в каталоги участников.
После того как вы создали процесс интеграции и опубликовали приложение на сервере, процесс интеграции не запускается сам по себе. Первоначально все процессы интеграции, существующие в проекте, находятся в остановленном состоянии. Чтобы начался обмен сообщениями, процессы интеграции нужно запустить.
Это можно сделать интерактивно в панели управления или программно с помощью метода {ИмяПроцессаИнтеграции}.Запустить(). Запуск и остановка процесса интеграции могут занять некоторое время.
При остановке приложения «1С:Шина» также останавливает все его процессы интеграции. При следующем запуске приложения все процессы интеграции, которые были запущены в момент остановки приложения, автоматически запустятся вместе с ним. Таким образом, в обычном сценарии работы запустить процесс интеграции нужно всего один раз — в начале.
Функциональность и логика работы с данными
Элемент проекта Процесс интеграции предоставляет следующую функциональность:
-
Взаимодействие с платформой «1С:Предприятие»
В «1С:Предприятии» для взаимодействия с «1С:Шиной» предназначены объекты конфигурации вида СервисИнтеграции. В «1С:Шине» для настройки интеграции используются узлы вида Канал1СИсточник и Канал1СНазначение.
-
Взаимодействие с SAP NetWeaver Process Integration (SAP PI)
Для настройки асинхронной интеграции с SAP PI в «1С:Шине» используются узлы ОчередьШиныИсточник и ОчередьШиныНазначение.
-
Узел вида МаршрутизаторПоСодержимому определяет, в какие узлы из тех, что идут непосредственно за этим узлом, должны попасть сообщения. Для этого у узла есть событие
ОбработчикОпределенияПолучателей, в котором вы можете сформировать набор таких узлов. Если обработчик не задан, то сообщение попадет во все узлы, стоящие после маршрутизатора и связанные с ним. -
Узел вида Транслятор используется для изменения сообщения. Изменение сообщения происходит в обработчике события
ОбработчикПреобразования. -
Группы участников представляют из себя одну или более информационных систем, с которыми «1С:Шина» взаимодействует одинаковым образом.
-
Хранение недоставленных сообщений
Сообщения, которые не были доставлены получателям из-за какой-либо ошибки или по причине устаревания, хранятся в канале недоставленных сообщений.
-
Вычисляемые свойства процесса интеграции
Как правило, свойства узлов процесса интеграции задаются в среде разработки. Однако некоторые свойства могут быть заданы только после создания процесса интеграции, уже во время его исполнения. Существует два способа, чтобы задать или переопределить свойства узлов процесса интеграции во время исполнения приложения. Первый — это использовать параметры процесса интеграции, второй — воспользоваться информацией, которая хранится в служебном справочнике ИнформационныеСистемы.
-
Для сохранения тела сообщения в файле используется узел процесса интеграции вида ФайлНазначение. Файл создается в каталоге, который определяется свойством Каталог. Имя файла определяется либо свойством ИмяФайла, либо в обработчике
ОбработчикОпределенияИмени. -
Для получения сообщений из файлов в локальной файловой системе или в локальной сети используется узел процесса интеграции вида ФайлИсточник. Он порождает сообщения из файлов, расположенных в указанном каталоге. В этом случае в теле сообщения будет находиться сам файл.
-
Чтобы отправлять и получать сообщения, внешние системы должны подключиться к серверу по протоколу AMQP версии 1.0. Для этого используются узлы процесса интеграции вида Канал1СИсточник и Канал1СНазначение.
-
«1С:Шина» имеет функциональность для взаимодействия с внешними СУБД. Для подключения к базе данных используется узел процесса интеграции вида Sql. При помощи этого узла сообщение из «1С:Шины» может быть записано в базу данных. Кроме того, «1С:Шина» может отправить запрос в СУБД и из полученного ответа сформировать сообщение.
-
Взаимодействия с JMS-брокером сообщений Apache ActiveMQ
Для получения сообщений от JMS-брокера Apache ActiveMQ используется узел вида JmsИсточник. Сообщения получаются из указанной очереди или темы. Для отправки сообщений в указанную очередь или тему JMS-брокера Apache ActiveMQ используется узел JmsНазначение.
-
Взаимодействие с брокером сообщений RabbitMQ
Для получения сообщений из брокера RabbitMQ используется узел вида RabbitMqИсточник. Сообщения получаются из заданной очереди, привязанной к указанному обмену (Exchange). Для отправки сообщений в RabbitMQ используется узел RabbitMqНазначение.
-
Взаимодействие с брокером сообщений Apache Kafka
Для получения сообщений из брокера Apache Kafka используется узел вида KafkaИсточник. Сообщения получаются из указанного топика. Для отправки сообщений в целевой топик используется узел KafkaНазначение.
-
Отправка запросов по протоколу HTTP
Для выполнения запросов по протоколу HTTP к внешнему ресурсу используется узел вида Http. Результат запроса может быть обработан следующими узлами на схеме.
-
Программная отправка сообщений
Узел ПрограммныйИсточник используется для отправки сообщений в процесс интеграции в коде.
-
Генерация сообщений через равные промежутки времени
Для создания сообщений через равные интервалы времени используется узел Таймер.
-
Сохранение сообщений в процессе обмена
В процессе перемещения от одного узла схемы к другому сообщение может быть потеряно в результате ошибки или аварии (выключения питания, обрыва сети и т. п.). Чтобы избежать потери сообщения, в «1С:Шине» можно использовать узлы, для которых создаются очереди сообщений либо маршр ут со свойством канала, хранящего сообщения. В результате все сообщения, которые попадают в данный узел либо проходят по данному маршруту, будут сохранены в специально созданной очереди сообщений. Их копии будут лежать в очереди до тех пор, пока сообщение не достигнет следующего узла схемы.
-
Хранение доставленных сообщений
В «1С:Шине» для некоторых узлов имеется возможность хранить сообщения, которые были в них доставлены. Длительность хранения доставленных сообщений настраивается в карточке процесса интеграции, в свойствах соответствующего узла.