«1С:Шина» — расширяем возможности интеграции

В экосистеме 1С для решения проблем интеграции давно стали использовать системы класса ESB (Enterprise Service Bus) или, иначе говоря, сервисные шины предприятия, интеграционные шины. Сама платформа 1С не поддерживает взаимодействие со сторонними продуктами класса ESB. Для работы с этими системами из 1С необходимо было писать целые подсистемы, а также использовать различные внешние библиотеки, которые создавались энтузиастами. Сама шина зачастую собиралась из нескольких разных программных продуктов, которые нужно было правильно настроить. Чтобы весь этот комплекс надежно работал и выполнял поставленные задачи, необходим квалифицированный персонал, который разбирается в данных продуктах.

Для чего же понадобилось преодолевать такие сложности, ведь 1С имеет достаточно развитый функционал для интеграций с другими системами? Для ответа на этот вопрос, рассмотрим в общих чертах, что из себя представляет сервисная шина как технология.

1.png

Что такое сервисная шина предприятия?

Сервисная шина и связанная с ней терминология пришли из сервис-ориентированной архитектуры (SOA). Это подход к разработке, при котором классическое приложение (монолит) разделяется на модули (сервисы), где каждый сервис отвечает за определённый функционал. И здесь появляется множество компонентов, работающих независимо друг от друга, но использующих между собой общую информацию. Каждый сервис может предоставлять информацию, необходимую для работы других.

2.png

На рисунке выше стрелки между сервисами представляют собой каналы обмена информацией, каждый канал может иметь свой протокол и формат обмена. Как правило, все эти сервисы не появляются одномоментно, а добавляются с течением времени и разными командами разработчиков. Некоторые сервисы могут быть предоставлены сторонними разработчиками, и вы не можете повлиять на то, какие протоколы API они используют.

Для слаженной работы сервисов необходима быстрая и надёжная передача информации между ними, поэтому появились продукты класса ESB. Шина выступает в роли посредника при передаче сообщений от одного сервиса к другому. Такие системы ещё называются связующим программным обеспечением (Middleware).

6.png

Сервис, отправляющий сообщения, не взаимодействует с получателем, а взаимодействует только с посредником — сервисной шиной. Это позволяет отправлять сообщения даже если получатель не может обрабатывать сообщения в данный момент. Использование событийной модели (Event-Driven Architecture, EDA) реализует подход, при котором взаимодействие между сервисами осуществляется через обработку событий. События генерируются отправителями/производителями (Senders/producers) — сущностями, которые отвечают за их создание. Они могут быть разными: внешними сервисами, пользовательскими интерфейсами, внутренними службами.

Получатели/потребители (Receivers/consumers) — системы, которые подписываются на определённые типы событий. Когда происходит событие, потребитель выполняет его обработку. Модель работает по принципу публикации-подписки (pub-sub). События передаются в шину, а потребители подписываются на их получение, что гарантирует доставку только до заинтересованных систем.

Благодаря этим возможностям, при правильном построении архитектуры, с помощью ESB можно организовать мгновенную доставку сообщений от отправителя к получателю. Также к преимуществу таких систем можно отнести:

  • Неблокируемость — отправитель может продолжить работу, не дожидаясь ответа;

  • Слабую связанность систем — изменения или проблемы в одной системе не влияют на работоспособность других;

  • Обработку сбоев — система выполняет повторные попытки доставки сообщений, пока не получит подтверждение получения или сообщение не устареет.

Коротко опишем основные компоненты, которые включает в себя ESB:

  • Адаптеры (коннекторы) — это модули, которые предоставляют возможность соединения с различными приложениями или системами. Адаптеры обеспечивают взаимодействие с базами данных, файловыми системами, web-сервисами, MQ-очередями.

  • Маршрутизатор — на основе заложенной бизнес-логики определяет путь передачи сообщений.

  • Транслятор (преобразователь сообщений) — адаптирует формат сообщений, чтобы они соответствовали требованиям системы назначения.

  • Брокер сообщений — ключевой компонент системы. Отвечает за передачу сообщений, регистрирует их и гарантирует доставку. Брокер предоставляет важную функцию очереди сообщений. Очереди сообщений можно представить, как структуру временного хранения данных. Данные хранятся до тех пор, пока их не заберёт получатель. Наиболее распространенная модель, когда новое сообщение помещается в конец очереди, а чтение сообщений и удаление их из очереди происходит с начала (FIFO). Для обеспечения требуемой бизнес-логики может создаваться необходимое количество очередей.

  • Мониторинг и управление — компоненты, которые предоставляют инструменты для наблюдения за работой ESB, отслеживания производительности, обработки ошибок и административного управления.

  • Среда разработки — предоставляет инструменты для создания и модификации архитектуры интеграционного приложения (процесса). Инструменты включают в себя визуальный редактор для быстрого конструирования процесса и язык программирования для гибкого управления маршрутизацией и трансформацией сообщений.

Таким образом, сервисная шина является сложным, многокомпонентным программным комплексом, каждый из компонентов которой играет важную роль в обеспечении надежной и эффективной работы, позволяя создавать гибкие и масштабируемые решения для интеграции информационных систем. Однако сервис-ориентированная архитектура сложнее в реализации и отладке: необходимо обрабатывать асинхронные ответы и управлять состоянием запросов, так как запросы и ответы распределены во времени, особое внимание надо уделить проектированию архитектуры.

Проблемы интеграции информационных систем

Теперь ответим на вопрос, для чего же в экосистеме 1С стали использовать ESB? Вместе с развитием предприятия формируется и одновременно усложняется его корпоративная информационная система (КИС), в которую добавляются различные разнородные информационные системы. Помимо конфигураций 1С различного назначения могут использоваться ИС, не относящиеся к 1С, а также разнообразные сервисы, электронные площадки и магазины. Всё это приводит к обилию разнообразных загрузок/выгрузок с использованием разных технологий, языков программирования, написанных разными командами в разное время. Если степень связанности систем внутри КИС повышается, то работоспособность систем начинает зависеть друг от друга, следовательно, повышаются требования к надежности интеграционных каналов. Сама КИС тоже не стоит на месте, со временем меняются бизнес-процессы, разные компоненты КИС дорабатываются или заменяются на другие, добавляется новый функционал, что приводит к необходимости дорабатывать существующие интеграции и создавать новые.

Такую архитектуру КИС можно назвать «монолитной», когда каждый компонент системы тесно связан с другим. На начальном этапе развития использование такой архитектуры оправдано, но в какой-то момент содержание всего этого «зоопарка» разнообразных интеграций и загрузок становится трудоёмким и затратным. Сложность развития, обслуживания, мониторинга и исправления проблем растет экспоненциально с каждым добавлением новой ИС.

3.png

Пересечение графиков — точка в которой затраты на внедрение интеграционной шины становятся оправданными. Таким образом, использование сервисной шины даёт единую архитектуру, методологию разработки и систему управления, что приводит к упорядочиванию интеграционных процессов.

Обзор возможностей продукта «1С:Шина»

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

5.png

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

Для установки доступны два вида дистрибутива, один включает среду разработки (IDE), другой нет. При выборе варианта дистрибутива без IDE будет доступно только управление сервером «1С:Шины» и существующими приложениями без возможности разработки интеграционных приложений. Перед установкой необходимо определиться с СУБД. Рекомендуется использовать PostgreSQL или Microsoft SQL, файловый вариант лучше использовать в ознакомительных целях.

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

Среда разработки поддерживает групповую разработку с возможностью интеграции с Gitlab, имеет встроенную контекстную справку по языку программирования и подробную документацию, представляющую различные сценарии и примеры работы.

При окончании разработки интеграционного приложения из панели управления можно перейти в третье рабочее место — пользовательский интерфейс интеграционного приложения, в котором осуществляется настройка и управление разработанным интеграционным приложением. Из пользовательского интерфейса производится мониторинг работы процесса обмена сообщениями, его запуск или остановка.

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

панель управления 1Шина.jpg
Добавляем в проект новое приложение и с помощью гиперссылки «Разработать» переходим в среду разработки в которой создаётся схема интеграции. В колонке URL доступен адрес публикации приложения — с его помощью можно открыть в браузере пользовательский интерфейс приложения.
2.jpg

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

Дерево элементов проекта в среде разработки.jpg

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

Среда разработки 1СШина. Редактирование элемента проекта Процесс интеграции.jpg

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

Для связи «1С:Шины» с информационными системами на платформе 1С предназначены «Каналы 1С», взаимодействие организовано по протоколу AMQP. В среде разработки для создания каналов на схеме предназначены узлы процесса интеграции вида «Канал1СИсточник» и «Канал1СНазначение». Также служить каналом может узел вида «Маршрут» при установленном в свойствах признаке «Это канал».

Отметим некоторые особенности каналов в «1С:Шине», которые описаны в справке:

  • Канал в «1С:Шине» — это однонаправленный поток сообщений от отправителя к получателю.

  • Сообщения помещаются в канал последовательно отправителем и последовательно доставляются получателю. При этом сообщения разных каналов обрабатываются и доставляются параллельно.

  • Сообщения, отправленные в один канал в определённой последовательности, будут получены в той же последовательности.

  • Сообщение доставляется в шину только в том случае, если зафиксирована транзакция, в которой оно отправлено.

  • Любые два сообщения, полученные из разных каналов в определённой последовательности, не обязательно будут обработаны в этой же последовательности, так как обработка сообщений из разных каналов может идти с разной скоростью.

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

После окончания разработки изменения необходимо опубликовать.jpg
Когда приложение опубликовано можно перейти в пользовательский интерфейс приложения по адресу публикации (Ctrl+F5 в среде разработки). В пользовательском интерфейсе осуществляется настройка приложения и мониторинг работы процесса интеграции.
Рисунок 4 Рабочий интерфейс приложения 1СШина.jpg
Как упоминалось ранее интерфейс приложений определяется разработчиками «1С:Шины» и для всех приложений будет выглядеть одинаково. В разделе процессы располагаются карточки всех процессов интеграции, доступных в приложении. Открыв карточку процесса, можно проводить мониторинг работы процесса интеграции и настройки схемы интеграции.
Открыв карточку процесса, можно проводить мониторинг работы процесса интеграции и настройки схемы интеграции..jpg

Взаимодействие с платформой 1С

Остановимся более подробно на основной функции продукта «1С:Шина» — взаимодействии с конфигурациями на платформе 1С.

Для подключения конфигурации 1С к шине необходимо выполнить её доработку. Разработчики декларируют возможность доработки без снятия с поддержки, с помощью расширений, однако для этого рекомендуется использовать свежие релизы платформы.

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

Для этого нужно перейти в пользовательский интерфейс приложения и добавить их в разделе «Инфосистемы». Там-же для каждой ИС нужно получить ключ API..jpg

Вторым шагом необходимо добавить сервис интеграции в конфигурацию 1С и связать её с приложением. Для установки связи с приложением интеграции необходимо ввести «Адрес внешнего сервиса интеграции» (URL приложения).

Для установки связи с приложением интеграции необходимо ввести «Адрес внешнего сервиса интеграции» (URL приложения).jpg

Теперь необходимо загрузить каналы. Для их загрузки в конфигураторе потребуются два ключа API, полученные на первом шаге.
Теперь необходимо загрузить каналы. Для их загрузки в конфигураторе потребуются 2 ключа API полученные на первом шаге..jpg

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

В результате в наш сервис интеграции добавятся два канала один для получения сообщений другой для отправки..jpg

В обработчике события получения происходит обработка сообщения, полученного из «1С:Шины».

Отправка же выполняется с помощью кода, который можно размещать в разных объектах системы при определённых событиях, руководствуясь логикой разрабатываемого решения. В простейшем случае отправка может выглядеть следующим образом:

В простейшем случае отправка может выглядеть следующим образом.jpg

Здесь происходит запрос данных физических лиц у системы ИС2. В ответ на это сообщение ИС2 формирует пакет запрашиваемых данных и отправляет его в канал шины для системы ИС1, который она сможет загрузить в обработчике события канала получения данных.

Однако, на самом деле метод «ОтправитьСообщение()» не выполняет отправку сообщения в шину. Вместо этого создается запись в служебной таблице информационной базы. Реальная отправка сообщений в шину выполняется служебным фоновым заданием. Аналогичным образом реализовано и получение сообщений. Поэтому следующим шагом в настройке интеграции будет добавление регламентированного задания, в обработчике которого нужно разместить код.

По этому следующим шагом в настройке интеграции будет добавление регламентированного задания, в обработчике которого нужно разместить код.jpg

Нужно установить для него расписание каждые 60 секунд. Это не значит, что сообщения будут отправляться раз в минуту, это необходимо для поддержания обмена с шиной. Реальная отправка сообщений будет происходить почти мгновенно.

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

Для этого запускаем конфигурацию в режиме 1СПредприятие и через «Функции для технического специалиста» открываем окно управления сервисами интеграции.jpg
Далее перейти в настройку сервиса и ввести ключи API, аналогично как делали при загрузке каналов на этапе конфигурирования. А установка флага активизирует сервис интеграции.
А установка флага активизирует сервис интеграции.jpg

Мы рассмотрели настройки необходимые для подключения информационной базы 1С к сервису «1С:Шина». Аналогичным образом выполняются настройки всех подключаемых к сервису интеграции баз 1С.

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

Почему стоит сделать выбор в пользу «1С:Шины»?

К настоящему времени реализовано множество проектов внедрения «1С:Шины», накопился достаточный опыт её использования, который указывает на положительный эффект от её внедрения:

  • Простота установки и настройки. Минимум затрат на освоение и интеграцию.

  • Замена разнообразных сервисов обмена на стандартизированные обмены через «1С:Шину» позволяет сократить трудозатраты на их разработку и поддержку.

  • Панель управления для администрирования, инструменты мониторинга и контроля сообщений, журналы событий позволяют оперативно управлять процессами обмена, быстро анализировать и исправлять проблемы.

  • Выполнение обмена по событию, быстрая доставка сообщений позволяют организовать работу так, что изменения в одной ИС становятся доступны в другой ИС практически мгновенно.

  • Проведенные разработчиками «1С:Шины» испытания показали, что она способна обрабатывать около 20 000 сообщений размером 256 Кб в минуту, а это около 5гб данных. Это показывает способность продукта при должном подборе оборудования и правильной настройке справляться со значительной нагрузкой.

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

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

4.png

Стоимость внедрения ESB- системы складывается из трёх основных частей

  • Стоимости самого продукта;

  • Стоимости оборудования;

  • Стоимости проекта внедрения.

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

В настоящее время «1С:Шина» — это единственная система, которая нативно поддерживается платформой 1С. Благодаря встроенной в платформу поддержке, мы имеем простую и понятную схему подключения конфигурации 1С к шине. Из описания, приведенного в статье, понятно, что разработка интеграционного приложения в «1С:Шине» и связь его с конфигурацией 1С реализуется относительно просто. Сама разработка взаимодействия шины и конфигурации ведется в стандартном конфигураторе на встроенном языке 1С. Изучить особенности работы для опытного разработчика 1С не составит труда. Если в штате есть специалисты поддерживающие текущие интеграции, можно обойтись своими силами без привлечения дорогостоящих подрядчиков, разбирающихся в нюансах и тонкостях работы сторонних ESB-систем. В перспективе это сэкономит средства на эксплуатацию и развитие системы, поскольку в штате уже будут подготовленные специалисты, знающие архитектуру решения.

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

Еще одним важным плюсом является то, что продукт внесен в реестр Российского ПО. В наше время важно, чтобы ПО, которое является сердцем всех интеграционных процессов предприятия, в один момент по независящим от вас причинам не превратилось в тыкву, как это случилось со множеством зарубежных продуктов. Внесение в реестр Российского ПО указывает на отсутствие в составе такого ПО элементов, работоспособность которых управляется из-за рубежа, и гарантирует поддержку и обновление ПО в соответствии с законодательством РФ.

Заключение

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



Если эта статья была интересна и полезна для вас, поставьте оценку нашему сайту в Яндекс.Браузере

Спасибо за поддержку наших авторов!


Читайте также:

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

Остались вопросы?

Как к вам обращаться?*
E-mail*
Телефон*
Введите ваш вопрос
Наверх