Область применения
Основное назначение предлагаемой системы управления интеграциями (далее СУИ) - значительное снижение первичных затрат на внедрение 1С:Шины.
Вам не придется с нуля делать проект в Шине, разбираться с тонкостями взаимодействия информационных систем с ней через сервисы интеграции, реализовывать регистрацию, отправку, получение и обработку сообщений обмена и т.д.
Все это работает "из коробки". При этом, можно использовать привычные правила обмена КД2 (конвертация данных 2) и КД3 (Enterprise Data). А еще можно переводить существующие обмены на Шину постепенно.
Это если вкратце.
Если нужно более широкое понимание вопроса, то, чтобы не вдаваться в подробности в рамках данной публикации о возможных причинах использования и примерной концепции построения интеграционных систем на продуктах класса 1С:Шины, рекомендую к прочтению цикл статей, посвященный в том числе и этим аспектам. Этот цикл может пригодиться и тем, кто только начинает свое знакомство с 1С:Шиной - в статьях приводятся некоторые примеры работы с ней.
Дополнительно на Инфостарте есть еще ряд интересных публикаций на тему Шины:
Итак, у вас уже есть 1С:Шина или вы находитесь в процессе принятия решения о ее приобретении и начале использования.
И, разумеется, есть причины, побуждающие к началу использования подобных продуктов.
Чаще всего, это растущее количество информационных систем и потоков данных между ними. Встает вопрос о единой системе управления такими потоками (для очевидного снижения затрат на поддержку и развитие обменов) и обеспечении транспортировки данных, желательно без потерь.
Сама по себе 1С:Шина не решает задачи управления обменами из одной точки - это лишь система транспорта и маршрутизации сообщений обмена. Для того, чтобы обмены через нее заработали, необходимо реализовать программный интерфейс взаимодействия с Шиной в каждой из информационных систем - участниц обмена.
Безусловно, этому способствуют сервисы интеграции, присутствующие в платформе 1С с версии 8.3.17. Но какие данные, когда, каким способом и куда отправлять, как принимать и обрабатывать входящие сообщения обмена - все это придется реализовывать самостоятельно в каждой из информационных систем, участвующих в обменах.
Если подобная реализация будет отличаться от системы к системе (так скорее всего и должно быть - системы же разные, данные между ними "летают" разные), то развитие и поддержка такого комплекса решений грозит вылиться в сверхзатратный проект.
Если же реализация (понятно, хотя бы в рамках платформы 1С) будет универсальна, то необходимо выносить на уровень данных все описание интеграционных потоков - источники, приемники, способы и форматы обмена и т.п. А это предполагает дополнительные затраты на разработку.
Именно такую реализацию - универсальную, с вынесением на уровень данных описания интеграционных потоков - предлагает данное решение, избавляя вас от затрат на разработку подобного функционала.
В ряде случаев предлагаемое решение сможет закрыть все или большинство ваших потребностей в работе с интеграциями на текущий момент.
В "сложных" случаях поможет стартовать не "с нуля". Тогда открытый и документированный код разработки придется очень кстати.
Технические требования
Проект приложения Шины разрабатывался и тестировался на версии 1С:Шины 4.0.6. Подходит для более поздних версий.
Расширение (и подсистема) 1С разрабатывалось и тестировалось на версии платформы 1С 8.3.23.1739. Подходит для более поздних версий.
Известные проблемы
На версии платформы 1С 8.3.23.1739 возможно возникновение системной ошибки при обновлении конфигурации базы данных после внесения изменений в основную конфигурацию.
Можно исправить только удалением расширения СУИ из базы.
На более поздних релизах платформы ошибка отсутствует.
Код открыт.
Состав и краткое описание системы
Система состоит из проекта приложения 1С:Шины и расширения (или подсистемы), которое должно быть установлено в каждую из конфигураций 1С, участвующую в обмене данными.
Расширение для всех 1С-конфигураций универсально. Если ваша конфигурация использует обычные формы, то следует интегрировать в основную конфигурацию подсистему (также входящую в поставку).
Вы разворачиваете на 1С:Шине приложение из проекта, устанавливаете во все конфигурации 1С расширение.
Далее подключаете базы 1С с установленным расширением к приложению Шины (процесс в несколько кликов).
Все подробные инструкции по установке, настройке и подключению баз приложены ниже.
Первая база 1С, которая будет подключена к приложению Шины, станет мастер-системой. Именно в мастер-системе можно на уровне данных настраивать абсолютно все интеграции, в том числе и между системами, с которыми сама мастер-система может вообще никак не обмениваться данными.
Ее рекомендуется выбирать как базу, являющуюся источником данных для наибольшего числа интеграций.
В любой момент мастер-систему можно изменить и продолжить настройку в новой мастер-системе.
Настройку любых интеграций в мастер-системе можно проводить как до, так и после подключения остальных баз 1С к Шине. Настройки интеграций находятся во всех подключенных базах 1С и синхронизированы. При изменении настроек в мастер-системе они сразу меняются и в остальных базах. При подключении новой базы в систему она получает все уже существующие настройки обменов из мастер-системы. Поэтому подключать новую базу следует только при доступной и работоспособной мастер-системе.
Информационные системы, используя настройки интеграций из СУИ, через функциональность расширения регистрируют данные к обмену, формируют, отправляют, а также получают и обрабатывают сообщения обмена. Все это происходит сразу после добавления соответствующих настроек в систему.
Так, в коротком изложении, выглядит работа СУИ.
СУИ имеет программный интерфейс взаимодействия с Шиной только для конфигураций 1С. Для систем на любых других платформах вам придется реализовывать его самостоятельно на основании известного формата сообщений обмена, используемого в СУИ.
Если источником или приемником данных для таких систем является база 1С, то полдела уже сделано.
Даже если между собой обмениваются данными не 1С-ные системы, то для фиксации наличия такого обмена можно использовать настройки обмена СУИ, чтобы включить и такие обмены в общий реестр потоков данных для целей их документирования.
Лицензирование
Приобретение решения дает право на развертывание одного экземпляра приложения проекта 1С:Шины.
Если вам необходимо использовать отдельно продуктивный и тестовый контуры в рамках разных приложений 1С:Шины, то необходимо приобрести два или более экземпляров решения
Функциональные возможности
На текущий момент СУИ реализует следующие функции:
-
Настройка/описание интеграций
Через объекты метаданных расширения (подсистемы) описываются интеграции между системами. Это позволяет очень просто как настроить сами интеграции, так и одновременно задокументировать их. Специальный отчет позволит вам легко получить всю необходимую информацию об интеграциях.
Отчет "Настройки обмена":
Список источников элементов обмена:
Элемент обмена "Физические лица"
-
Легкое включение/отключение интеграционных потоков на нескольких уровнях настроек
Например, вы выводите из эксплуатации или временно отключаете одну из информационных систем. При этом требуется отключить все интеграции, связанные с ней. Реализуется это снятием единственного флажка в системе.
Или требуется приостановить обмен одной конкретной сущностью (например, контрагентами) между десятком систем. За это также отвечает один флажок.
Включение/отключение на уровне всего элемента обмена, на уровне отдельной интеграции, на уровне источника или получателя
-
Использование различных форматов обмена
В следующем разделе публикации описаны используемые форматы обмена, в том числе привычные в мире 1С КД2 и КД3 (Enterprise Data).
Кроме того, можно полностью кастомизировать формат передаваемых данных.
Формы настройки способов обмена по КД2 и КД3
-
Авторегистрация данных к обмену
При соответствующей настройке интеграций данные в системах-источниках автоматически регистрируются для отправки. Планы обмена для штатной регистрации в системе не используются. Можно использовать регистрацию как в регистре сведений, так и в справочнике.
Регистрация в справочнике имеет определенные преимущества - она чуть быстрее. Но очистка "отработанных" регистраций займет гораздо больше времени.
Более подробно выбор способа регистрации и причины отказа от использования планов обмена приведен в статье А вот и Шина подъехала! Часть 3. Итоги
Кроме того, в СУИ можно настроить правила регистрации данных к обмену: указать отборы, по которым будут регистрироваться данные. И еще использовать отложенную отправку данных, опираясь на реквизиты регистрируемых объектов.
Можно "вручную" зарегистрировать данные к обмену или отменить регистрацию.
Настройки регистрации для источника обмена данными
-
Квитирование сообщений обмена
Можно при настройке интеграций задействовать квитирование сообщений. То есть, регистрация данных не будет "зачищаться" сразу после отправки сообщения обмена, а будет дожидаться подтверждения его получения от системы-получателя.
-
Формирование, отправка, прием и обработка сообщений обмена
Комментарии излишни - реализация основной функции системы.
-
Защита от несанкционированного обмена
Несанкционированный обмен возможен, например, при использовании тестового контура. Развернули туда базу из бэкапа продуктива и она начинает обмениваться с продуктивным контуром, поскольку все ключи подключения к Шине в ней прописаны корректно на уровне данных.
СУИ имеет защиту от подобного явления - обмен в базе тестового контура будет отключен автоматически при попытке провести любые действия по обмену данными. Для организации работы обменов в тестовом контуре рекомендуется использовать отдельно развернутую СУИ - с отдельным приложением в Шине.
-
Мониторинг состояния обмена данными
При отправке и получении данных фиксируется текущее состояние обмена, состояние последнего успешного обмена и сам результат обмена. Данная информация позволяет определить текущее состояние обменов и получить информацию об ошибках в случае их возникновения.
Журнал состояния обмена данными
-
Интерактивная регистрация изменений для обмена данными
Регистрация/отмена регистрации произвольных объектов, которые входят в настройки обмена для определенной базы получателя.
Форма обработки регистрации/отмены регистрации объектов к обмену
-
Регистрация данных к обмену по запросу
Реализована возможность обращения к http - сервису в 1С:Шина, который принимает сообщение в определенном формате и затем отправляет запрос в базу-источник 1С. После чего необходимые данные регистрируются на обмен и отправляются в базу-приёмник. Запрашиваемые пакеты данных содержат уникальный идентификатор для каждого запроса и каждого пакета данных, что позволяет отслеживать состояние обмена на всех этапах.
-
Работа с базами 1С и RabbitMQ "из коробки"
При необходимости совершенно несложно самостоятельно добавить в решение необходимые вам коннекторы. Подробный пример описан в файле поставки.
Форматы обмена данными
В системе используются следующие варианты форматов данных для обмена:
-
1С:Конвертация данных 2 - привычный многим и очень широко используемый формат КД2. В настройки СУИ при этом добавляется информация о правилах обмена (прямо содержимое файла правил обмена). Для использования такого формата в основной конфигурации баз источника и приемника сообщений должна находиться обработка УниверсальныйОбменДаннымиXML, которая не входит в поставку СУИ. Дополнительный бонус - в СУИ можно использовать одновременно несколько версий одних и тех же правил обмена, если есть такая необходимость.
-
КД2 + БСП - смысл тот же что и в случае КД2, но функциональность расширена за счет использования подсистемы "Обмен данными", входящей в состав БСП, которая должна находиться в конфигурациях баз источника и приемника. В этом случае предполагается наличие в конфигурациях обработки КонвертацияОбъектовИнформационныхБаз.
Для таких конфигураций в составе поставки СУИ предназначен отдельный вариант расширения, незначительно отличающийся от "общего".
-
1С:Конвертация данных 3 (Enterprise Data) - не менее уже известный и используемый формат. Также предполагает в конфигурациях баз источника и приемника наличие необходимых объектов для работы системы Enterprise Data - общих модулей ОбменДаннымиXDTOСервер, ОбменДаннымиСервер и т.д.
В общем случае, может использоваться для передачи данных не только в системы на платформе 1С. Доступна возможность использования расширения формата XDTO. Подробно работа с расширениями формата описана в статье Расширение формата XDTO и настройка версии формата в Конвертации данных, редакция 3.1.
-
XML и JSON. При использовании данные генерируются из передаваемого объекта с помощью функций ЗаписатьXML и ЗаписатьJSON сериализатора глобальной фабрики XDTO (СериализаторXDTO). Форматы удобно использовать для передачи полностью совпадающих по структуре в базах источника и приемника объектов. Также можно использовать для передачи данных в системы, построенные не на платформе 1С.
-
Произвольный. В этом случае вам предлагается самостоятельно реализовать как выгрузку, так и загрузку данных в системах источника и приемника с использованием переопределяемого модуля.
Во всех вариантах можно дополнительно использовать самостоятельную обработку сформированного сообщения обмена как в коде Шины, так и в базе-приемнике (в переопределяемом модуле), опираясь при выборе алгоритмов обработки на строковые модификаторы, которые можно указать при настройке интеграций в СУИ.
Инструкции по настройке и работе с системой
Файлы поставки:
- ОбменДаннымиПоШине1СБСП.cfe - расширение системы СУИ для конфигураций 1С, содержащих подсистему "Обмен данными" из состава БСП
- ОбменДаннымиПоШине1С.cfe - расширение системы СУИ для конфигураций 1С, не использующих такую подсистему
- ОбменДаннымиПоШине1С.cf - подсистема СУИ для конфигураций на обычных формах.
- BusDataExchange[номер сборки].xasm - проект приложения 1С:Шины.
- Описание формата сообщения интеграции.docx - дополнительная информация о формате сообщений, используемом в СУИ, и о методике добавления новых видов коннекторов в решение.
Шаг 1. Установить сервер шины. Инструкцию по установке и настройке можно найти на ИТС здесь.
Шаг 2. Открыть консоль шины через браузер, перейти на вкладку "Приложения", затем нажать "Новое приложение".
Шаг 3. В окне создания нового приложения выбрать вкладку "Из проекта", установить отметку "Загрузить проект", нажать "Перетащите файл в окно или добавьте вручную", далее в диалоговом окне выбрать файл "BusDataExchange.xasm", нажать "Открыть".
Шаг 4. В окне создания нового приложения заполнить поле "Имя приложения", "Http путь приложения", выбрать "Тип СУБД". При необходимости установить отметку "Режим разработки". Нажать "Создать"
После удачной загрузки приложение отобразится в списке со статусом "Работает":
Далее описаны действия для каждой базы 1С, которая должна обмениваться данными в системе.
Шаг 5. Открыть конфигуратор базы 1С. Перейти "Конфигурация" - > "Расширения конфигурации".
Шаг 6. Добавить расширение, выбрать в поле "Назначение" значение "Дополнение". Нажать "ОК"
Шаг 7. Активировать строку с расширением, выбрать из контекстного меню или из шапки формы "Конфигурация" -> "Загрузить конфигурацию из файла"
Шаг 8. В диалоговом окне выбрать файл "ОбменДаннымиПоШине1СБСП.cfe" или "ОбменДаннымиПоШине1С.cfe" (в зависимости от наличия в конфигурации подсистемы "Обмен данными" из состава БСП БСП) и нажать "Открыть". После согласиться со всеми сплывающими окнами и обновить базу.
2. Подключение базы 1С к СУИ
Подключение базы 1С к СУИ несколько отличается от обычного прописывания ключей API Шины в настройки сервисов интеграции в базе. На стороне 1С процедура выполняется в специальной обработке, на стороне Шины также нужно заполнить дополнительные реквизиты добавляемой базы.
Шаг 1. Открыть консоль Шины, перейти во вкладку
"Приложения" и в списке приложений выбрать URl приложения, к которому необходимо подключить базу 1С.
Шаг 2. В открывшемся приложение перейти на вкладку
"Инфосистемы" и нажать
"Добавить систему".
Шаг 3. В форме добавления информационной системы заполнить поля
"Код" и
"Наименование".
Шаг 4. В форме добавления информационной системы заполнить поле
"System key" - ключ системы базы 1С, который необходимо скопировать из базы 1С (смотрите Шаг 12) . И нажать кнопку
"Добавить".
Информационная система появится в писке баз
Шаг 5. В приложение шины перейти на вкладку
"Процессы" и выбрать необходимый процесс.
Шаг 6. На вкладке
"Схема" выбрать
"УчастникОбмена1С" и затем нажать
"Состав группы".
Шаг 7. В форме состава группы отметить базу и нажать
"Добавить в группу".
После информационная систему переместится на вкладку
"Действующие". Закрыть окно состава группы.
Шаг 8. Открыть вкладку
"Инфосистемы", установить курсор на информационную систему и нажать
"Выдать ключ API".
Шаг 9. Скопировать
"Идентификатор ключа" и
"Секрет ключа", затем сохранить, например, в текстовом файле. Ключи пригодятся при настройке подключения базы 1С к Шине (смотрите Шаг 12).
Шаг 10. Скопировать URL приложения Шины, записать в тот же текстовый файл.
На этом добавление информационной системы в Шине завершено. На выходе должны иметь следующие сохраненные данные: URL приложения Шины, ключи API (идентификатор ключа и секрет ключа).
Шаг 11. Открыть базу 1С. Перейти в подсистему
"Обмен данными по шине 1С", затем в подразделе
"Сервис" выбрать
"Подключение к шине".
Шаг 12. В открывшейся форме заполнить следующие поля:
- "Ключ системы" - генерируется автоматически, используется при подключении информационной системы в Шине (смотрите Шаг 4);
- "Используется обмен данными по шине" - флаг, включающий в базе обмен данными по Шине;
- "Код текущей информационной системы" - должен совпадать с кодом информационной системы в Шине (смотрите Шаг 3);
- "Адрес внешнего сервиса интеграции" - скопировать URL приложения Шины (смотрите Шаг 10);
- "Имя пользователя (выдается сервисом)" - ключ API (идентификатор ключа) информационной системы в Шине (смотрите Шаг 9);
- "Пароль пользователя (выдается сервисом)" - ключ API (секрет ключа) информационной системы в Шине (смотрите Шаг 9).
Нажать кнопку "Подключить систему к Шине".
Шаг 13. После успешного подключения первой базы 1С к Шине она станет мастер-системой. Только в мастер-системе можно изменять настройки обмена данными по Шине, которые автоматически отражаются во все остальные базы, подключенные к ней. При необходимости мастер-систему можно изменить.
Если вы подключаете не первую базу, то окно будет выглядеть несколько иначе.
Отключить от шины можно только базу, которая не является мастер-системой. Если по каким-то причинам все-таки необходимо отключить мастер-систему, то это можно сделать, сбросив значение константы "Используется обмен данными по шине".
Шаг 14. После добавления базы можно настроить основные параметры системы для нее (Меню Обмен данными по шине 1С -> Сервис -> Основные настройки)
Все пояснения приведены прямо на форме настроек.
3. Изменение мастер-системы
4. Настройка элемента обмена (интеграции сущности данных)
Элемент обмена для СУИ - основная единица, описывающая обмен данными.
В идеале это отражение обмена отдельной сущностью данных - элемент справочника "Физические лица", документ "Реализация товаров и услуг" и т.п.
На практике это может быть обмен целым набором сущностей. Особенно, если это обмен по КД2, например. Один документ, выгружаемый по определенному правилу, потянет за собой элементы справочников, другие документы и т.д.
Тем не менее, в СУИ и такая выгрузка все равно представляется в виде Элемента обмена.
Элемент обмена - это элемент соответствующего справочника системы, в рамках которого настраивается из каких систем-источников для каких систем-получателей и с помощью каких способов (форматов) обмена будет осуществляться обмен информацией между информационными системами. Там же настраивается и дополнительная обработка сообщения Шины в самой Шине или в базе-получателе.
Шаг 1. Добавление информационной системы.
Настройку интеграции можно проводить как до добавления всех информационных баз в СУИ, так и после нее.
В справочник "Информационные системы" база будет добавлена автоматически при подключении ее в СУИ (раздел 2 "Подключение базы 1С к СУИ").
Синхронизация со справочником осуществляется по коду информационной системы.
Если настройки интеграции проводится до подключения каких-то баз к СУИ, то можно добавить их в справочник "вручную".
Для этого нужно открыть базу 1С, являющуюся мастер-системой. Перейти в подсистему "Обмен данными по шине 1С", выбрать "Информационные системы".
Шаг 2. В списке справочника нажать кнопку "Создать". Затем в открывшейся форме справочника заполнить поля "Код" и "Наименование" и установить отметку "Использование".
Пример, списка информационных систем в базе 1С
Шаг 3. Перейти в подсистему "Обмен данными по шине 1С", затем выбрать "Элементы обмена данными".
Шаг 4. В списке справочника нажать кнопку "Создать". Затем в открывшейся форме справочника заполнить поле "Наименование" - к примеру "ЗУП - Справочник - Должности".
Каждая строка табличной части представляет собой отдельную интеграцию - пару источник-получатель с описанием формата обмена.
В табличную часть настройки обмена добавить строку и заполнить поля:
- "Источник" - источник интеграции (более подробное описание настройки источника читайте ниже в подразделе "Настройка источника данных");
- "Получатель" - получатель интеграции (более подробное описание настройки получателя читайте ниже в подразделе "Настройка получателя данных");
- "Модификатор преобразования в шине" - необязательный строковый модификатор, определяющий алгоритм обработки сообщения в программном коде приложения Шины.
"Из коробки" доступен единственный модификатор "XDTO2JSON", нормализующий формат, который отдает платформа 1С.
При необходимости можно реализовать в проекте приложения Шины необходимые вам алгоритмы обработки.
Далее установить отметку "Использование" в табличной части и в шапке элемента обмена. И нажать "Записать" или "Записать и закрыть".
Пример списка элементов обмена в базе 1С
5. Настройка источника данных
Шаг 1. Перейти в подсистему "Обмен данными по шине 1С", выбрать "Источники элементов обмена".
Шаг 2. В списке справочника нажать кнопку "Создать". Затем в открывшейся форме справочника заполнить поля описания данных источника:
- "Информационная система" - выбрать/создать информационную систему источник;
- "Раздел метаданных" - раздел метаданных базы источника;
- "Имя метаданных"- имя метаданных базы источника.
Шаг 3. При необходимости можно установить флаг "Использовать отбор данных при регистрации". Тогда откроется форма отбора, где можно установить произвольное условие, при выполнение которого, должна будет выполняться регистрация данных к обмену.
Шаг 4. Поле "Вариант регистрации изменения" по умолчанию заполняется значением "Стандартный" (альтернативные варианты должны появиться позднее, по мере развития СУИ). Заполнить поле "Способ регистрации изменений" , из предложенного списка выбрать "Справочник" или "Регистр сведений" (рекомендуется).
Шаг 5. При необходимости можно установить флаг "Отложенная отправка данных", тогда станет видимо поле "Реквизит метаданных", где необходимо выбрать реквизит из объекта метаданных с типом дата. Это актуально, когда необходимо выгружать данные только в определенный момент времени. К примеру, запись о кадровой истории уже появилась в регистре, но сотрудник вступит на должность только с даты, которая указана в реквизите "Период", тогда в поле "Реквизит метаданных" указываем этот реквизит.
Шаг 6. При необходимости можно установить флаг "Использовать квитирование", тогда запись о регистрации данных будет считаться успешно отправленной, только после получения от базы приёмника сообщения об успешной загрузке данных.
Шаг 7. Создать/выбрать "Способ обмена" - настройки формата выгружаемых данных (более подробное описание про способы обмена читайте ниже в подразделе "Настройка форматов данных сообщения"). После, если выбран способ обмена с видом обмена по КД2, необходимо выбрать значение для поля "Код (имя) правила выгрузки данных" (имя правила выгрузки данных для объекта).
Шаг 8. Заполнить или автоматический сгенерировать поле "Наименование", установить флаг "Использование". На этом настройка завершена, нажать "Записать" или "Записать и закрыть".
6. Настройка способов (форматов) обмена
Шаг 1. Перейти в подсистему "Обмен данными по шине 1С", выбрать "Способы обмена данными".
Шаг 2. В форме списка нажать кнопку "Создать". В первую очередь необходимо выбрать значение для поля "Вид обмена". Более подробное описание смотрите в разделе публикации "Форматы обмена данными".
Шаг 3. В зависимости от выбранного значения реквизита "Вид обмена", изменится отображение реквизитов формы справочника, которые необходимо заполнить. Далее по каждому виду отдельно:
-
JSON
Заполнить поле "Наименование" и при необходимости "Описание".
-
XML
Заполнить поле "Наименование" и при необходимости "Описание".
-
1С:Конвертация данных 2
Скопировать текст файла правил обмена, сформированного с помощью КД2, и вставить в поле "Правила обмена КД2". Система предложит обновить правила выгрузки данных, рекомендуется согласиться, но можно и ввести их вручную.
Заполнить поле "Наименование" и при необходимости "Описание".
-
1С:Конвертация данных 2 (БСП + план обмена)
Выбрать из списка значение для поля "План обмена источник". План обмена используется в служебных целях, чтобы связать функционал СУИ с обработкой КонвертацияОбъектовИнформационныхБаз, входящей в состав подсистемы "Обмен данными" БСП. Требуется в составе плана обмена иметь настраиваемый объект для выгрузки. Других дополнительных настроек вносить не надо. Рекомендуется сделать один универсальный план обмена в конфигураторе, включить в состав все объекты конфигурации и запретить авторегистрацию для всех объектов.
Скопировать текст фала правил обмена, сформированного с помощью КД2, и вставить в поле "Правила обмена КД2". Система предложит обновить правила выгрузки данных. Рекомендуется согласиться, но можно и ввести их вручную.
После заполнения правил выгрузки данных зеленым цветом подсветятся строки с объектами метаданных, которые входят в состав плана обмена, заполненный в поле "План обмена источник". Заполнить поле "Наименование" и при необходимости "Описание".
-
1С:Конвертация данных 3 (Enterprise Data)
Перейти в подсистему "Обмен данными по шине 1С", выбрать "Версии формата EnterpriseData".
В форме списка справочника нажать кнопку "Создать". В форме элемента справочника "Версии формата EnterpriseData" заполнить поле "Пространство имен" и "Наименование".
Аналогично для расширения формата, если имеется.
Выбрать/создать "Версия формата EnterpriseData" и "Версия формата EnterpriseData (расширение формата)". Заполнить поле "Имя модуля менеджера обмена через универсальный формат" - модуль в котором содержатся правила обмена КД3.
Заполнить поля "Наименование" и, при необходимости, "Описание".
-
Произвольный
Заполнить поля "Наименование" и, при необходимости, "Описание".
7. Настройка получателя данных
8. Подключение RabbitMQ - источник
Помимо взаимодействия с системами на платформе 1С, СУИ может "из коробки" взаимодействовать с брокером сообщений RabbitMQ.
Понятно, что на стороне системы, работающей через RMQ, необходимо поддержать формат сообщений, используемых СУИ (описание формата входит в поставку в отдельном файле "Описание формата сообщения интеграции.docx").
Вообще, при необходимости можно легко доработать СУИ для взаимодействия с любыми поддерживаемыми Шиной коннекторами. Для этого необходимо разместить в схеме интеграции блоки по аналогии с размещенными RMQ-блоками и дописать несколько строк кода (опять же, по аналогии) в паре мест программного модуля.
Здесь же пока опишу процесс подключения RMQ к СУИ.
Шаг 1. Открыть консоль Шины, перейти во вкладку "Приложения" и в списке приложений выбрать URl приложения, к которому необходимо подключить базу 1С.
Шаг 2. В открывшемся приложение перейти на вкладку "Инфосистемы" и нажать "Добавить систему".
Шаг 3. В форме добавления информационной системы заполнить поля и записать:
-
"Код" - код информационной системы.
-
"Наименование" - наименование информационной системы.
-
"Exchange name rMQ" - задает, в какую точку обмена будет доставлено сообщение для дальнейшего распределения по очередям (в RabbitMQНазначение свойство "ИмяОбмена").
-
"Host rMQ" - Имя или IP-адрес удаленного компьютера, с которым Шина устанавливает соединение (в RabbitMQНазначение свойство "Хост").
-
"Password rMQ" - пароль пользователя для подключения к удаленному компьютеру (в RabbitMQНазначение свойство "Пароль").
-
"Port rMQ" - порт, по которому устанавливается соединение с удаленным компьютером (в RabbitMQНазначение свойство "Порт").
-
"Routing key rMQ" - ключ маршрутизации для RabbitMq. Этот ключ определит, куда будет направлено сообщение после попадания в exchange из RabbitMqИсточника (в RabbitMQНазначение свойство "КлючМаршрутизации").
-
"System key" - произвольный ключ информационной системы. Обязательно к заполнению. Произвольная уникальная в рамках ключей систем строка.
-
User name rMQ - имя пользователя для подключения к удаленному компьютеру (в RabbitMQНазначение свойство "ИмяПользователя").
-
VHost rMQ - задает виртуальный хост. Виртуальный хост, в отличие от обычного хоста, понятие логическое. Он определяет права доступа пользователя к очередям и обменам RabbitMQ. Например, есть два виртуальных хоста vhost1, vhost2 и пользователь User. User может иметь доступ ко всем очередям на чтение, запись и добавление/удаление в vhost1, но в vhost2 он может только читать из очередей. Аналогично может быть два разных пользователя, привязанных к разным vhost (в RabbitMQНазначение свойство "ВиртуальныйХост").
Шаг 4. В приложение шины перейти на вкладку "Процессы" и выбрать необходимый процесс.
Шаг 5. На вкладке "Схема" выбрать "УчастникиОбменаRMQИсточник" и затем нажать "Состав группы".
Шаг 6. В форме состава группы отметить базу и нажать "Добавить в группу".
После информационная система переместится на вкладку "Действующие".
9. Подключение RabbitMQ - приемник
Шаг 1. Открыть консоль Шины, перейти во вкладку "Приложения" и в списке приложений выбрать URl приложения, к которому необходимо подключить базу 1С.
Шаг 2. В открывшемся приложение перейти на вкладку "Инфосистемы" и нажать "Добавить систему".
Шаг 3. В форме добавления информационной системы заполнить поля и записать:
-
"Код" - код информационной системы.
-
"Наименование" - наименование информационной системы.
-
"QueueNameRMQ" - Имя очереди, из которой получаются сообщения (в RabbitMQНазначение свойство "ИмяКанала").
-
Host rMQ - Имя или IP-адрес удаленного компьютера, с которым Шина устанавливает соединение (в RabbitMQНазначение свойство "Хост").
-
Password rMQ - пароль пользователя для подключения к удаленному компьютеру (в RabbitMQНазначение свойство "Пароль").
-
Port rMQ - порт, по которому устанавливается соединение с удаленным компьютером (в RabbitMQНазначение свойство "Порт").
-
System key - произвольный ключ информационной системы. Обязательно к заполнению. Произвольная уникальная в рамках ключей систем строка.
-
User name rMQ - имя пользователя для подключения к удаленному компьютеру (в RabbitMQНазначение свойство "ИмяПользователя").
-
VHost rMQ - задает виртуальный хост. Виртуальный хост, в отличие от обычного хоста, понятие логическое. Он определяет права доступа пользователя к очередям и обменам RabbitMQ. Например, есть два виртуальных хоста vhost1, vhost2 и пользователь User. User может иметь доступ ко всем очередям на чтение, запись и добавление/удаление в vhost1, но в vhost2 он может только читать из очередей. Аналогично может быть два разных пользователя, привязанных к разным vhost (в RabbitMQНазначение свойство "ВиртуальныйХост").
Шаг 4. В приложение шины перейти на вкладку "Процессы" и выбрать необходимый процесс.
"Routing key rMQ" и "Exchange name rMQ" не могут быть одновременно пустыми, в таком случае сообщение не будет никуда доставлено. Если при отправке сообщения такое произойдет, Шина сгенерирует исключение, подсказывающее, как избежать данной проблемы: изменить свойство узла или задать ключ маршрутизации в параметрах сообщения.
Шаг 5. На вкладке "Схема" выбрать "УчастникиОбменаRMQПриемник" и затем нажать "Состав группы".
Шаг 6. В форме состава группы отметить базу и нажать "Добавить в группу".
После информационная система переместится на вкладку "Действующие".
Шаг 7. На этом подключение завершено, если планируется отправлять в RabbitMQ сообщения из базы 1С, то необходимо добавить созданную информационную систему в получатели и настроить обмен, как описано в предыдущих подразделах.
10. Обмен данными по запросу
В СУИ можно организовать регистрацию "по команде" и последующую передачу пакетов данных из одной информационной системы (на платформе 1С) в другую. Понятно, что в СУИ должным образом предварительно должны быть настроены элементы обмена.
"Команда" отдается запросом к http-сервису, опубликованному в Шине.
Формат запроса следующий:
http://[AdresEsb]/applications/[BusDataExchangeTest]/api/system/registerdataforexchange/[CodeFrom]/[CodeTo]/[ID]
где:
-
AdresEsb - адрес сервера 1С:Шина.
-
BusDataExchangeTest - имя приложения в Шине
-
CodeFrom- код базы-источника (код в справочнике Инфосистем)
-
CodeTo- код базы-приёмник
-
ID- уникальный идентификатор запроса.
Тело запроса должно быть сформировано в формате JSON. Это может быть массив структур или одна структура. Один пакет (структура) подразумевает набор запрашиваемых данных по одному объекту метаданных. Можно указать массив идентификаторов в атрибуте "ArrayIDorStructureSearch". Также можно передать структуру полей поиска в тот же атрибут. Пример тела запроса:
[
{
"PackageID": "1",
"DataType": "Справочник",
"DataKind": "Сотрудники",
"ArrayIDorStructureSearch": [
{"ФизическоеЛицо": [
{"Ссылка": "182dc500-6f56-11e1-a700-0007e9336836"}
]
}
]
},
{
"PackageID": "2",
"DataType": "Справочники",
"DataKind": "Сотрудники",
"ArrayIDorStructureSearch": [
{"ФизическоеЛицо": [
{"Код": "00-0000063"}
]
}
]
},
{
"PackageID": "3",
"DataType": "Справочники",
"DataKind": "Сотрудники",
"ArrayIDorStructureSearch": [
{"Код": "54321"},
{"Наименование": "Нурмухамедов Руслан Рушанович"}
]
},
{
"PackageID": "4",
"DataType": "Справочники",
"DataKind": "Должности",
"ArrayIDorStructureSearch": [
"141d9bee-95db-11e6-83cb-005056ba7157",
"e0670797-95d7-11e6-83cb-005056ba7157"
]
},
{
"PackageID": "5",
"DataType": "Справочники",
"DataKind": "Сотрудники",
"ArrayIDorStructureSearch": [
"21c16077-143b-11e0-acf6-0007e9336836",
"f481766c-7f97-11e4-a1a4-005056ba7157"
]
}
]
При отправке запроса передаётся идентификатор, который и вернется в качестве ответа сервиса. Это сигнализирует лишь о том, что запрос был успешно доставлен и обработан в Шине. Далее сообщение отправляется в базу-источник 1С через сервис интеграции. В базе сообщение обрабатывается, при удачной обработке запрашиваемый набор данных регистрируется на обмен, при неудачной обработке делается запись с ошибкой в справочник "Входящие сообщения по шине 1С", входящий в состав расширения СУИ.
Обновления
- 04.07.2024 - версия 1.0.4
Исправлены найденные ошибки в интерфейсе в версии для конфигураций на обычных формах.
Техническая поддержка и обновления
Бесплатный период техподдержки составляет 1 месяц со дня покупки.
Также после приобретения вы получаете 12 месяцев бесплатных обновлений.
По окончании бесплатного периода вы можете приобрести услугу технической поддержки с доступом к обновлениям на платной основе.
Проверить наличие обновлений можно в личном кабинете. Если обновления недоступны - загрузить новую версию можно после покупки обновлений/технической поддержки.
Задать вопрос по программе можно по кнопке "Техподдержка" на странице описания.
При создании тикета необходимо предоставить:
- Номер заказа
- Описание вопроса. Если это ошибки - напишите порядок ваших действий с программой, которые к ней привели (приложите видео/скриншоты/отчеты об ошибке)
- Точную конфигурацию 1С, и версию платформы, на которой используете купленное решение (наименование и версию 1С можно взять из раздела "О программе"), версию купленной программы.
К созданной заявке подключается специалист. Дальнейшее обсуждение проблемы будет проходить в тикете техподдержки. Стандартный срок реакции - 24 часа в рабочие дни с момента обращения.
Техподдержка