Skip to main content

Примеры использования

Примеры реализации интеграции с RabbitMQ с использованием БИТ.Адаптера.

Простой пример

Пример: bit-adapter-simple-example

Минимальный пример расширения логики библиотеки адаптера.

Структура

  • ОбщийМодуль.адаптер_ИнтеграцияПроектный — регистрация модуля с подписками
  • ОбщийМодуль.адаптерпроект_ИнтеграцияАдаптер — реализация подписок на события

Пример кода

// ОбщийМодуль.адаптер_ИнтеграцияПроектный
Процедура ПриОпределенииМодулейСПодписками(МодулиСПодписками) Экспорт
МодулиСПодписками.Добавить(гд_ИнтеграцияАдаптер);
КонецПроцедуры

// ОбщийМодуль.адаптерпроект_ИнтеграцияАдаптер
Процедура Подписаться(Подписки) Экспорт
Подписки.ЗаполнитьВыгружаемыеОбъекты = Истина;
Подписки.ПолучитьДанныеВыгружаемогоОбъекта = Истина;
Подписки.ЗаписатьМассивДанных = Истина;
КонецПроцедуры

Процедура ЗаполнитьВыгружаемыеОбъекты(ПараметрыПодключения, НастройкиВыгрузки, СтандартнаяОбработка) Экспорт
Для Каждого ВыгружаемыйОбъект из ВыгружаемыеОбъекты() Цикл
адаптер_НастройкиОбмена.ДобавитьНастройку(НастройкиВыгрузки,
ВыгружаемыйОбъект.Метаданные,
ПараметрыПодключения,
Перечисления.адаптер_ФорматыСообщений.адаптерXML,,,
ВыгружаемыйОбъект.Type);
КонецЦИкла;
КонецПроцедуры

Пример: Выгрузка документов по ОС

Пример: acc-bit-adapter-example

Расширение для конфигурации БП КОРП КЗ, выгружающее документы по Основным средствам.

Выгружаемые объекты

  • Справочник ОсновныеСредства
  • Документы:
    • ПринятиеКУчетуОС
    • СписаниеОС
    • ПередачаОС
    • ПеремещениеОС
    • МодернизацияОС
    • ИзменениеПараметровНачисленияАмортизацииОС
    • ПоступлениеТоваровУслуг
    • ЗакрытиеМесяца

Особенности

  • Используется формат сообщений JSONMobile
  • Реализована функция ПолучитьИмяТекущейБазы() для идентификации базы-источника
  • Реализованы подписки для фильтрации данных при выгрузке

Пример: Загрузка документов ОС

Пример: cpm-bit-adapter-example

Расширение для конфигурации УХ, загружающее документы по Основным средствам.

Особенности

  • Загрузка данных из нескольких источников (УПП ОАО, УПП ЗАО, БП Беларусь, БП Казахстана)
  • Обработка входящих сообщений и создание документов в информационной базе
  • Поддержка различных форматов сообщений

Структура модулей

  • адаптерпроект_Интеграция — основная логика интеграции
  • адаптерпроект_Обмен — логика обмена данными
  • адаптерпроект_ОбменПовтИсп — повторное использование обмена
  • Модули для работы с конкретными базами (УППАО, УППЗАО, БПБеларусь, БПКазахстана)

Паттерны разработки

Определение выгружаемых объектов

Функция ВыгружаемыеОбъекты()
ВыгружаемыеОбъекты = Новый ТаблицаЗначений;
ВыгружаемыеОбъекты.Колонки.Добавить("Метаданные");
ВыгружаемыеОбъекты.Колонки.Добавить("Type");
ВыгружаемыеОбъекты.Колонки.Добавить("ФорматСообщений");

ДобавитьВыгружаемыйОбъект(ВыгружаемыеОбъекты,
Метаданные.Справочники.ОсновныеСредства,
Перечисления.адаптер_ФорматыСообщений.JSONMobile);

Возврат ВыгружаемыеОбъекты;
КонецФункции

Получение данных объекта

Функция ПолучитьДанныеВыгружаемогоОбъекта(Объект, ДанныеСообщения) Экспорт
Результат = Неопределено;

Попытка
МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ДанныеСообщения.Type);
Результат = Вычислить(СтрШаблон("МенеджерОбъекта.ПолучитьДанныеДляRabbitMq(Объект, ДанныеСообщения)"));
Исключение
// Обработка ошибок
КонецПопытки;

Возврат Результат;
КонецФункции

Запись входящих данных

Функция ЗаписатьМассивДанных(ДанныеОбъекта) Экспорт
Результат = Неопределено;

ТипДанных = ДанныеОбъекта.Type;
Если ТипДанных = "справочник.ОсновныеСредства" Тогда
Результат = ЗаписатьСправочник_ОсновныеСредства(ДанныеОбъекта);
КонецЕсли;

Возврат Результат;
КонецФункции

Рекомендации

  1. Используйте менеджеры объектов — выносите логику получения данных в менеджеры объектов
  2. Обрабатывайте ошибки — всегда используйте Попытка...Исключение при работе с динамическими вызовами
  3. Идентификация базы — реализуйте ПолучитьИмяТекущейБазы() для корректной идентификации источника данных
  4. Фильтрация данных — используйте ЗаполнитьТекстыЗапросовУсловиями для фильтрации выгружаемых данных
  5. Форматы сообщений — выбирайте подходящий формат (XML, JSON, JSONMobile) в зависимости от требований