Создание проекта в среде разработки
Создание нового проекта
На этапе создания приложения вам будет предложено выбрать тип СУБД для хранения данных. В связи с этим, предварительно вам следует подключить СУБД к серверу «1С:Шины». Инструкцию по подключению вы можете най ти здесь. Для более быстрого запуска тестового примера вы также можете использовать и файловую систему, которая не требует предварительной настройки, однако при создании реальных проектов ее использование крайне не рекомендуется.
На данном этапе вы создадите новое приложение из нового пустого проекта «1С:Шины».
-
Откройте панель управления.
-
Нажмите Приложения ⟶ + Новое приложение:
-
Убедитесь, что выбраны варианты Из проекта и Новый проект:
-
Укажите поставщика, представление, имя и версию проекта. «1С:Шина» заполнит остальные поля и включит режим разработки для создаваемого приложения:
-
Выберите тип СУБД и нажмите Создать:
-
Новое приложение появится в списке со статусом Создается. Через некоторое время статус приложения изменится на Работает:
Добавление элемента проекта вида «Процесс Интеграции»
Чтобы добавить новый элемент проекта вида «Процесс Интеграции», выполните следующие действия:
-
Откройте проект в среде разработки.
-
Введите пароль администратора, который вы создали при установке сервера, и нажмите Войти:
- В навигаторе проекта добавьте новый элемент проекта — процесс интеграции с именем МаршрутизацияСообщений:
Схема процесса интеграции
Схема интеграции в данном примере будет выглядеть следующим образом:
Чтобы сообщения из информационной базы поступали в «1С:Шина», на схему добавлена группа участников «ИБ». В эту группу (уже после публикации проекта, в панели управления приложения) будет включена информационная система «1С», из которой будут отправляться сообщения. Группа участников соединена с каналом вида Канал1СИсточник «ИзБазы». После публикации проекта, когда в группу участников будет добавлена информационная система, «1С:Шина» создаст для нее индивидуальную очередь, к которой информационная система сможет подключиться и в которую сможет отправлять сообщения.
Затем сообщения будут поступать в узел вида МаршрутизаторПоСодержимому «ВыборСпособаДоставки». Данный узел предназначен для того, чтобы определять, в какие узлы из тех, что идут непосредственно за ним, должны попасть сообщения. Для этого у узла есть событие ОбработчикОпределенияПолучателей, в котором вы пропишете специальный метод. Внутри данного метода вы будете находить нужного получателя в справочнике ИнформационныеСистемы и, в зависимости от значения реквизита получателя «СпособДоставки», направлять сообщение в один из следующих узлов.
На следующем этапе сообщение попадет в один из узлов вида Транслятор: «Xml2Json» либо «Xml2Zip». Если необходимо выполнить отправку по протоколу HTTP, то в узле «Xml2Json» тело сообщения будет сконвертировано из XML в JSON. Если необходимо выполнить отправку по протоколу FTP, то в узле «Xml2Zip» тело сообщения будет архивировано в ZIP.
После того как тело сообщения было приведено к с оответствующему формату, оно попадает в узел вида Http «ВHttp» либо узел вида FtpНазначение «НаFtp». В узле «ВHttp» тело сообщения будет отправлено POST-запросом в HTTP-сервис партнера. В узле «НаFtp» тело сообщения будет размещено на FTP-сервере в индивидуальном каталоге партнера, из которого он впоследствии сможет забрать файл.
Также на схему добавлена группа участников «Партнеры». Она соединена с узлами «ВHttp» и «НаFtp». В эту группу (уже после публикации проекта, в панели управления приложения) будут включены все информационные системы партнеров. Запись о каждом партнере будет содержать индивидуальный код получателя и дополнительные реквизиты (такие как способ доставки, адрес HTTP-сервиса или FTP-сервера).
Создание схемы процесса интеграции
На данном этапе вы создадите схему процесса интеграции, которая описывает взаимодействие ин формационных систем.
Чтобы создать схему интеграции, выполните следующие шаги:
-
Добавьте на схему группу участников. Для этого в редакторе компонента МаршрутизацияСообщений в палитре узлов выберите ГруппаУчастников и кликните в верхней части схемы, чтобы разместить там группу. В панели свойств задайте узлу ГруппаУчастников имя ИБ:
-
Добавьте на схему узел Канал1СИсточник и задайте имя — ИзБазы:
-
Аналогичным образом добавьте на схему узлы:
-
МаршрутизаторПоСодержимому — задайте имя ВыборСпособаДоставки;
-
Транслятор — задайте имя «Xml2Json»;
-
Транслятор — задайте имя «Xml2Zip»;
-
Http — задайте имя «ВHttp»;
-
FtpНазначение — задайте имя «НаFtp»;
-
ГруппаУчастников — задайте имя «Партнеры».
Расположите узлы на схеме следующим образом:
-
Следующим шагом следует обозначить на схеме маршруты и связи.
-
Выберите в палитре узлов элемент Связь и соедините группу участников «ИБ» с узлом «ИзБазы». Для этого последовательно кликните на группу участников «ИБ» и на узел «ИзБазы». Затем снова выберите элемент Связь и соедините каждый из узлов «ВHttp» и «НаFtp» с группой участников «Партнеры»:
-
Затем с помощью элемента Маршрут соедините:
-
Узел «ИзБазы» с узлом «ВыборСпособаДоставки»;
-
Узел «ВыборСпособаДоставки» с узлом «Xml2Json»;
-
Узел «ВыборСпособаДоставки» с узлом «Xml2Zip»;
-
Узел «Xml2Json» с узлом «ВHttp»;
-
Узел «Xml2Zip» с узлом «НаFtp».
-
Создание перечисления для выбора способа доставки
Для того, чтобы на следующем шаге у вас была возможность указать в качестве типа реквизита «СпособДоставки» тип Перечисление, данное перечисление следует создать.
-
Добавьте элемент проекта «Перечисление». Задайте имя СпособДоставки.
-
Добавьте перечислению два элемента: HTTP и FTP:
ВидЭлемента: Перечисление
Ид: 73520a6b-a8ca-4cdc-b3b4-0bbf8604f8c6
Имя: СпособДоставки
ОбластьВидимости: ВПодсистеме
Элементы:
-
Ид: a1b02dcd-8b92-4e5e-b040-0620a405322d
Имя: HTTP
-
Ид: 44a05b0f-f4ea-445e-b234-01524fc7d57a
Имя: FTP
Создание расширения справочника «ИнформационныеСистемы»
Следующим шагом следует создать в проекте расширение справочника ИнформационныеСистемы. В нем вы создадите дополнительные реквизиты, которые впоследствии сможете указать в свойствах узлов схемы (подробнее).
Выполните следующие действия:
-
В навигаторе проекта добавьте новый элемент проекта Справочник информационной системы (подробнее).
-
В проекте будет создано расширение стандартного справочника
Стд::ИнтеграционнаяШина::ИнформационныеСистемы
:
-
Добавьте новый реквизит справочника с именем Url (подробнее).
-
Для реквизита Url в панели свойств установите тип
Строка
:
-
Аналогичным образом добавьте реквизиты Каталог и СпособДоставки.
-
Задайте реквизиту Каталог тип
Строка
, а реквизиту СпособДоставки — типСпособДоставки | Неопределено
:
Создание параметров процесса интеграции
В среде разработки «1С:Шины» у процесса интеграции можно создать один или несколько параметров. Каждый из них имеет имя. Это имя можно использовать в выражениях, использующихся для вычисления значений свойств узлов процесса интеграции. Значения параметров можно задать в панели управления приложением во время исполнения.
Для того чтобы иметь возможность задавать в панели управления имя пользователя, пароль и хост FTP-сервера, создайте три параметра процесса интеграции (подробнее):
- ИмяПользователяFtp
- ПарольFtp
- ХостFtp
Задание свойств узлов схемы
Следующим шагом следует задать свойства для узлов.
ВыборСпособаДоставки
Для узла «ВыборСпособаДоставки» следует задать обработчик события ВыборПолучателей:
-
В панели свойств нажмите на лупу в поле ВыборПолучателей:
-
Откроется модуль процесса интеграции. «1С:Шина» автоматически создаст нужную сигнатуру метода и назначит его в качестве обработчика. Для метода автоматически генерируется название по схеме
ИмяЭлемента + ТипОбработчика
, но при необходимости можно ввести название обработчика вручную, например ВыборПолучателей, как в следующем примере:
метод ВыборСпособаДоставкиВыборПолучателей(Контекст: КонтекстВызоваИнтеграции,
Сообщение: МаршрутизацияСообщений.Сообщение): Коллекция<УзелСхемыИнтеграции>
// TODO Вставить содержимое обработчика
возврат []
;
В этом модуле будет обрабатываться событие выбора получателей. Чтобы определить следующий узел, следует обратиться к справочнику ИнформационныеСистемы и получить значение реквизита «СпособДоставки» той информационной системы, которая была выбрана в качестве получателя. После этого, в зависимости от значения реквизита «СпособДоставки», следует вернуть один из двух узлов, стоящих после маршрутизатора.
- В методе обработчика напишите следующий код:
метод ВыборПолучателей(Контекст: КонтекстВызоваИнтеграции,
Сообщение: МаршрутизацияСообщений.Сообщение): Коллекция<УзелСхемыИнтеграции>
// Предполагается, что каждое сообщение обязательно содержит код одного получателя.
// Сообщения без указанного получателя будут отправлены в канал недоставленных сообщений.
выбор Сообщение.Получатели.ЕдинственныйИлиНеопределено()?.СпособДоставки
когда FTP
возврат [Схема.Узлы.Xml2Zip]
когда HTTP
возврат [Схема.Узлы.Xml2Json]
иначе
возврат []
;
;