Интеграции с внешними системами взаимодействия
С помощью системы взаимодействия «1С:Исполнителя» вы можете отправлять уведомления пользователям, инициировавшим взаимодействие, из приложения во внешние системы взаимодействия. Поддерживаются такие популярные службы обмена сообщениями, как Telegram, WhatsApp, VK, WebChat и Webhook. Интеграции позволяют реализовать рассылку сообщений нескольким пользователям, отправить сообщение отдельному пользователю, а также получать уведомления о входящих сообщениях.
Работа с интеграциями в коде
В «1С:Исполнителе» свойства и методы отдельной интеграции системы взаимодействия с внешним подключением описываются типом ИнтеграцияВзаимодействия.
- Получение информации о внешних системах
-
Чтобы получить типы внешних систем, поддерживаемых сервером взаимодействия, используйте метод ПолучитьВидыВнешнихСистем(), который возвращает читаемый массив строк с названием поддерживаемых систем:
пер Виды = СистемаВзаимодействия.ПолучитьВидыВнешнихСистем() // Виды: [WebChat, Telegram, VK, Webhook, WhatsApp Devino]
С помощью метода ПолучитьОписаниеВнешнейСистемы() вы можете получить объект типа ОписаниеВнешнейСистемыВзаимодействия с двумя свойствами:- ВидВнешнейСистемы — строка с названием описываемой внешней системы;
- ОписанияПараметров — массив объектов типа ОписаниеПараметраВнешнейСистемыВзаимодействия с именем параметра и признаком обязательности.
пер ОписаниеСистемы: ОписаниеВнешнейСистемыВзаимодействия = СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы("Telegram") // ВидВнешнейСистемы: Telegram // ОписаниеПараметров: // Имя: token // Обязательный: Истина
- Создание интеграций
-
Методы для работы с интеграциями содержатся в типе СистемаВзаимодействия пространства имен Стд::СистемаВзаимодействия:
- СоздатьИнтеграцию(),
- РедактироватьИнтеграцию(),
- ПолучитьИнтеграции().
Пример создания интеграций с Telegram и WebChat
метод СоздатьИнтеграциюСТелеграм(КлючИнтеграции: Строка, Токен: Строка) пер ПараметрыИнтеграции = <Строка, Строка>{:} ПараметрыИнтеграции.Вставить("token", Токен) СоздатьИнтеграцию("Telegram", КлючИнтеграции, ПараметрыИнтеграции) ; метод СоздатьИнтеграциюСВебЧатом(КлючИнтеграции: Строка, Заголовок: Строка): Ууид пер ПараметрыИнтеграции = <Строка, Строка>{:} ПараметрыИнтеграции.Вставить("allowVideoconferences", "allowed") ПараметрыИнтеграции.Вставить("colorTheme", "auto") ПараметрыИнтеграции.Вставить("defaultApplicationUserCameraState", "on") ПараметрыИнтеграции.Вставить("displayUserPictures", "true") ПараметрыИнтеграции.Вставить("languageCode", "en") ПараметрыИнтеграции.Вставить("mobileButtonOrientation", "rightBottom") ПараметрыИнтеграции.Вставить("orientation", "bottom") ПараметрыИнтеграции.Вставить("orientationPadding", "100") ПараметрыИнтеграции.Вставить("signKey", "") ПараметрыИнтеграции.Вставить("titleBackColor", "#FBED9E") ПараметрыИнтеграции.Вставить("titleText", Заголовок) ПараметрыИнтеграции.Вставить("titleTextColor", "#333333") возврат СоздатьИнтеграцию("WebChat", КлючИнтеграции, ПараметрыИнтеграции) ; метод СоздатьИнтеграцию(ТипВнешнейСистемы: Строка, КлючИнтеграции: Строка, ПараметрыИнтеграции: ЧитаемоеСоответствие<Строка, Строка>): Ууид пер ОписаниеСистемы: ОписаниеВнешнейСистемыВзаимодействия = СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы(ТипВнешнейСистемы) знч Пользователь = СистемаВзаимодействия.ПолучитьТекущегоПользователяВзаимодействия() пер УчастникиОбсуждения = [Пользователь.Ид] пер НазваниеИнтеграции = "Интеграция_WebChat" пер Таймаут = 30с пер НоваяИнтеграцияИд: Ууид? = СистемаВзаимодействия.СоздатьИнтеграцию( НазваниеИнтеграции, ОписаниеСистемы.ВидВнешнейСистемы, ПараметрыИнтеграции, УчастникиОбсуждения, КлючИнтеграции, Истина, Таймаут) возврат НоваяИнтеграцияИд ;
- Поиск и редактирование интеграции
- В этом примере выполняется поиск интеграции по ключу и ее
редактирование:
метод РедактированиеИнтеграции(КлючИнтеграции: Строка) пер НужнаяИнтеграция = СистемаВзаимодействия.НайтиИнтеграцию(КлючИнтеграции) СистемаВзаимодействия.РедактироватьИнтеграцию(ИдИнтеграции = НужнаяИнтеграция.Ид, Активно = Ложь) ;
- Получение списка всех интеграций
- Чтобы получить информацию обо всех доступных в системе взаимодействия
интеграциях, воспользуйтесь методом ПолучитьИнтеграции():
пер Интеграции = СистемаВзаимодействия.ПолучитьИнтеграции()