|

Настройка обработки данных и отправки сообщений на стороне информационных баз 1С: Шина


Содержание:

  1. Основные параметры информации
  2. Отправка и обработка сообщения из источника данных 1С

В статье будет описано то, как для программного продукта «1С: Шина» происходит настройка по обработке сообщений со стороны сторонних баз данных при интеграции. А также рассказано о том, как настраивается отправка таких сообщений.

Основные параметры информации

Для проведения успешного обмена сообщениями между конфигурациями 1С при помощи системы «1С: Шина» существуют отдельные объекты по метаданным, которые называются «Сервисы интеграции».

Чтобы начать работать с отправкой и обработкой сообщений в этом случае, нужно рассмотреть следующие аспекты:

  • Как отправляются сообщения внутри базы данных 1С, которая является первоисточником заказов;
  • Как обрабатываются такие сообщения внутри базах данных, которые принимают их.

Отправка и обработка сообщения из источника данных 1С

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

Сервис интеграции ШинаЗаказы

Следующим шагом, подгружаем перечень из каналов, с которыми можно взаимодействовать через «1С: Шина», эта загрузка происходит через команду «Загрузить каналы», которая отображена ниже:

Загрузить каналы

Чтобы выполнить эту загрузку, нужно ввести данные для входа из приложения, внутри следующего окна:

Загрузка каналов внешнего сервиса интеграции

Для оперативной генерации, переходим на управленческую консоль с серверной стороны «1С: Шина», на раздел «Инфосистемы», как показано на скриншоте далее:

Инфосистемы

На этом же разделе задаём новую систему, её код, название и описание её назначения, как демонстрируется в этом примере:

Добавление информационной системы

После создания новой системы, подключаем её в группу с участниками: переходим на панель «Процессы» и избираем «Основной::ОбменСЗаказнойСистемой», где внутри интеграционной схемы выбираем группу с наименованием «Базы1СИсточники», в которой редактируем её состав по одноимённой кнопке:

Состав группы

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

Ключ API для копирования

Когда загрузка каналов будет выполнена, нужно будет избрать подходящие для взаимодействия и добавить их так, как можно увидеть на скриншоте с примером здесь:

Загрузка каналов внешнего сервиса интеграции

Чтобы выполнить отправку интеграционного сообщения, после его создания на внутреннем языке, необходимо добавить его к потоку в виде двоичного кода, а также, используя метод «ОтправитьСообщение» произвести его запись. Программный код будет следующим:

«БуферСтроки =  ПолучитьБуферДвоичныхДанныхИзСтроки(Заказ, КодировкаТекста.UTF8);

                    НовоеСообщение =  СервисыИнтеграции.ШинаЗаказы.СоздатьСообщение();

                    ПотокТела =  НовоеСообщение.ПолучитьТелоКакПоток();

                    ПотокТела.Записать(БуферСтроки, 0,  БуферСтроки.Размер);

                    ПотокТела.СброситьБуферы();

                    ПотокТела.Закрыть();

          СервисыИнтеграции.ШинаЗаказы.Основной_ОбменСЗаказнойСистемой_Из1С.ОтправитьСообщение(НовоеСообщение);»

Это ещё не означает окончательную отправку сообщения в программный продукт «1С: Шина». Это означает то, что оно было перемещено в отдельную зону хранения, из которой частями происходит отправка, согласно заданному графику, который запускают регламентные задачи. Чтобы это выполнить, обращаемся к обработке через такую строку:

«СервисыИнтеграции.ВыполнитьОбработку();»

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

Управление сервисами интеграции

Подключение метода «ВыполнитьОбработку» влечёт за собой подключение базы данных 1С к системе «1С: Шина», после чего, все интеграционные сообщения будут переданы. Согласно стандартным настройкам, это подключение происходит в течении двух минут.

За это также отвечает особое событие – SINTEG, оно становится фиксированным во время подключения к интеграционным сервисам.

Чтобы сверить корректность того, как отправляются сообщения, лучше всего будет прописать обработку, внутри поля ввода которой будет само сообщение, а кликнув на «Отправить» будет вызываться метод «ВыполнитьОбработку». Само окно обработки будет следующим:

Шина отправка заказа

Для настройки сборки логов внутри журнала по сбору событий нужно будет прописать следующий программный код:

«<?xml version=”1.0″  encoding=”UTF-8″?>

<config xmlns=”http://v8.1c.ru/v8/tech-log”>

       <log history=”1″

                    location=”e:\chesdm\work\esb_1c_logs\”>

             <property name=”all”/>

             <event>

                    <eq  property=”name” value=”SINTEG”/>

             </event>

       </log>

</config>»

Для отправки сообщений и проверки логов нужно следовать такому алгоритму:

1. Зафиксировать событие SINTEG через метод «ОтправитьСообщение» и функцию «insertMessageSendingQueue». Так сообщение встанет в очередь, чтобы быть отправленным;

2. Затем будет выполнен метод «ВыполнитьОбработку» внутри сервисного менеджера по интеграции. Так все логи будут зафиксированы через событие SINTEG и специальную функцию «Connect». После этого действия последует выполнение соединения с системой «1С: Шина»;

3. Далее, проводится непосредственное направление сообщения из базы данных на сервер «1С: Шина», здесь событие SINTEG будет иметь функцию «sendMessage»;

4. Спустя 120 секунд, будет зафиксировано новое событие SINTEG, но оно уже будет иметь функцию «disconnect», что прервёт связь с сервером «1С: Шина».

    В статье было рассмотрено то, как программно обрабатываются сообщения на стороне исходящей базы данных, а также как они, в последствии, отправляются на сервер системы «1С: Шина». Также было описано, как при помощи обработок можно проверить корректность логов и отправки сообщений.

    Специалист компании ООО “Кодерлайн”,

    Туренко Лев


    Помогла ли вам статья? Оставьте свой комментарий:

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Блог про 1С:Предприятие

    Copyright © 2024 TopKoder

    Мы занимаемся внедрением и обслуживанием программных продуктов 1С.