Заказать консультацию
специалиста 1С
Отправить заявку

ИнфоСофт использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. Вы можете запретить обработку сookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования cookies.
Оставаясь на сайте, вы соглашаетесь с политикой использования cookies.

Интеграция информационных систем через 1С:Шина: от теории к реализации

Мерзликин Максим Посмотреть все статьи >> Старший разработчик 1С франчайзинговой сети «ИнфоСофт».
02.08.2026
236
Время прочтения - 25 мин.
Заказать консультацию

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


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

Необходимо организовать оперативный обмен остатками товаров:

  • Из офиса в магазины - передача сообщений о получения остатков;
  • Из магазинов в офис - актуальные остатки;
  • Между магазинами - информация об остатках/перемещениях товаров;

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

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

Что вы узнаете:

  • Как отказаться от множество прямых интеграций и объединить все системы через 1С:Шина.
  • Как настроить обмен остатками между несколькими информационными базами всего за несколько основных этапов.
  • Как использовать встроенные маршрутизацию, мониторинг и очереди сообщений для сокращения время поиска ошибок.
  • Как сэкономить ресурсы на сопровождении при наличии 3+ информационных систем.

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

1С:Шина - это программный продукт класса «Сервисная шина предприятия» на платформе «1С:Предприятие».

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

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

Принцип работы:

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

Обмен организован асинхронно: отправитель не зависит от текущего состояния получателя. Если какая-либо система временно недоступна, 1С:Шина сохранит сообщение в очереди и автоматически доставит его после восстановления связи.

В нашем примере - офис и два магазина. 1C:Шина выступает центральным узлом, обеспечивающим надёжный двусторонний обмен остатками товаров, в том числе между самими магазинами..

Главное преимущество 1С:Шина - это упрощение сопровождений интеграций и повышение надёжности при росте количества систем. Чтобы понять разницу, в таблице ниже сравним классические прямые обмены и интеграцию через 1С:Шина по ключевым аспектам.

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

Основные преимущества 1С:Шина:

  • Значительное снижение трудозатрат на разработку и поддержку интеграций.
  • Единая точка мониторинга и диагностики всех обменов.
  • Высокая надёжность. Асинхронная очередь и повторная отправка при сбоях.
  • Слабая связанность систем. Отказ одной не останавливает остальные.
  • Маршруты и правила трансформации меняются без доработки конфигураций.
  • Удобство при числе систем от трёх и более.

Когда лучше использовать обычные обмены

  • Количество баз не превышает двух (например, офис и один магазин);
  • Простые и редко меняющиеся сценарии обмена;
  • Ограниченный бюджет и сроки, нет потребности в сложной маршрутизации.

Когда стоит выбрать 1С:Шина

  • Количество баз превышает двe и более информационных базы;
  • Необходим надёжный обмен с мониторингом данных;
  • Требуется централизованный контроль, быстрое реагирование на ошибки и масштабирование;
  • Важна единая логика трансформации данных.

В нашем кейсе один офис и два магазина 1С:Шина уже даёт заметное преимущество по удобству сопровождения и надёжности по сравнению с прямыми обменами между тремя базами.

Подпишитесь на дайджест!
Подпишитесь на дайджест, и получайте ежемесячно подборку полезных статей.

Схема обмена данными через 1С:Шину

Рисунок1.png

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

В состав группы «Магазин» входят две розничные базы с уникальным кодом идентификации, по которому система определяет отправителя или получателя данных. В состав группы «Офис» входит основная база в центральном офисе.

Рисунок2.png

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

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

Рисунок3.png

Для примера передачи данных используем внешняя обработку, через которую отправим сообщение в информационную базу «Магазин», чтобы обратно принять информацию об остатках товаров для «Офиса».

Рисунок4.png

Выбираем идентификатор магазина «shop». Обязательно должен совпадать с идентификатор в 1C:Шина и нажимаем «Отправить запрос».

Рисунок5.png

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

Рисунок6.png

Также можно проследить, что сообщение находится в одном из каналов при передаче данных. В нашем примере сообщение находится в канале «ВМагазин» для идентификатора «shop» и ждёт дальнейших указаний. Статус становится красным, так как служебные фоновые задания завершаются через 2 минуты с момента последнего его вызова.

Рисунок7.png

После доставки сообщение исчезает из канала ожидания, а система помечает его как доставленное.

Рисунок8.png

Во вкладке «Метрики» мы можем проследить по каким узлам перемещалось сообщение и при необходимости быстро определить, на каком этапе остановилось сообщение, если произошла ошибка.

Рисунок9.png

После получения данных отчет об остатках будет в головном офисе во входящих письмах.

Рисунок10.png

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

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

Техническая реализация: настройка и код

Для настройки и запуска обмена нужна система управления базами данных и желательно актуальная версия 1С:Шины со средой разработки. В этой статье используется 1С:Шина версия 9.1.10, а в качестве СУБД - PostgreSQL 17.

Для дальнейшей работы нужно добавить СУБД в инфраструктуру 1С:Шины.

Рисунок11.png

После добавления СУБД создадим новое приложение. Обратите внимание на поле «Режим разработки», в котором нужно проставить галочку и «Тип СУБД» - выбрать ранее добавленную СУБД.

Рисунок12.png

Может потребоваться некоторое время перед тем, как статус приложения сменится на «Работает» и появится возможность перейти к разработке. Спустя некоторое время, нажмите на ссылку в строке приложения «Разработать».

Рисунок13.png

Откроется новая вкладка со средой разработки, в которой нужно добавить новый элемент «Процесс интеграции» в ветку «Основное».

Рисунок14.png

Для построения схемы используем «Палитру узлов». Здесь находятся все основные объекты, которые будут использоваться дальше.

Рисунок15.png

Перейдём к созданию схемы обмена. Главными элементами на схеме выступают «Офис» и «Магазин». Переместите два элемента «ГруппаУчастников» и задайте им наименования.

Рисунок16.png

Для передачи данных нужны связующие каналы. Добавим из раздела «Источники» два канала «Канал1СИсточник».

Рисунок17.png

Также на схеме нужны каналы для получения данных. Добавим из раздела «Приемники» два канала «Канал1СНазначение».

Рисунок18.png

После добавим главный элемент маршрутизации «МаршрутизаторПоСодержимому» из раздела «Маршрутизаторы».

Рисунок19.png

Далее соединим блоки. Входящие и исходящие связи из «Офис» и «Магазин», отмеченные синими стрелками, соединим узлом «Связь». Для соединения остальных блоков, отмеченных красными стрелками, используется узел «Маршрут».

Рисунок20.png

Для настройки маршрутизации нужно задать событие в свойствах маршрутизации.

Рисунок21.png

В данном окне пропишите свой код маршрутизации по содержимому. В примере используем параметр «ТипСообщения», который определяет, в какой узел отправить данные.

Рисунок22.png

Чтобы обновить проект на сервере, нужно «Опубликовать проект» или нажмите F9.

Рисунок23.png

За ходом обновления проекта вы можете наблюдать в левом нижнем углу строки состояния среды разработки. Статус «updating» изменится на статус «running».

Рисунок24.png

Это означает, что приложение успешно обновилось. Для отладки приложения, нужно «Начать отладку приложения» или нажмите F5 и откроется новая вкладка c процессом.

Рисунок25.png

Ваши информационные базы нужно добавить в «Инфосистемы». Укажите код базы и наименование. После обязательно нажмите на кнопку «Выдать ключ API» и запишите для каждой базы идентификатор ключа и секрет клиента.

Рисунок26.png

Перейдите к процессу. Добавленные базы нужно внести в состав группы «Офис» и «Магазин».

Рисунок27.png

Отметьте соответствующие базы для состава групп и нажмите кнопку «Добавить в группу».

Рисунок28.png

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

Рисунок29.png

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

Рисунок30.png

На вкладке «Основные» нажмите «Действия», чтобы загрузить каналы.

Рисунок31.png

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

Рисунок32.png

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

Рисунок33.png

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

  • Офис передает в магазин сообщение без тела, выполняющее запрос информации по остаткам товаров.
  • В ответ магазин передает файл в двоичном виде, содержащий запрошенный отчет об остатках.

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

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

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

Рисунок34.png

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

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

Рисунок35.png

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

Получаем размер файла/сообщения из параметров входящего сообщения. Если размер известен, то используем его для буфера. Если нет, то берём буфер по 1 КБ. Это нужно для эффективного чтения данных. Для доступа к телу сообщения используется метод «ПолучитьТелоКакПоток», который возвращает двоичный поток. Далее содержимое потока считывается в буфер и преобразуется в строку, содержащую исходный текст HTML-страницы с отчетом.

Рисунок36.png

Используя метод «ПолучитьСтрокуИзБуфераДвоичныхДанных», получаем текст отчета. Далее создаём «ВходящиеПисьма» и задаём параметры отправителя, даты, наименования и т.д. Создаём набор записей регистра «СостояниеВходящихПисем» и устанавливаем отбор по новому письму. Добавляем запись в регистр, указывая, что письмо ещё не прочитано. Сохраняем сам объект письма в базу.

Рисунок37.png

Разберем второй случай. Для передачи сообщения из магазина в другой магазин нам понадобиться немного измененный код от передачи данных в офис. Откройте внешнюю обработку и вставьте код, формирующий отчёт «Остатки товаров на складах» и сохраняющий его в файл с двоичным содержимым, но измените параметры «ТипСообщения», чтобы в маршрутизации перенаправлять в канал «ВМагазин», «КодПолучателя» и удалите «ИдентификаторСообщенияЗапроса».

Рисунок38.png

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

Рисунок39.png

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

Рисунок40.png

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

Рисунок41.png

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

Рисунок42.png

Рекомендации по дальнейшему развитию

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

Польза для бизнеса

1С:Шина удобный инструмент интеграции, который особенно эффективен при работе с тремя и более информационными базами.

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

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

Если необходимо интегрировать несколько информационных баз, рекомендуем использовать 1С:Шина как основное решение.

Хотите так же связать свои информационные системы через 1С:Шину?

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

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


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Рассказать друзьям
1C:ERP Для разработчиков 1С
Вам может быть интересно: