Интеграции с внешними системами взаимодействия

С помощью системы взаимодействия «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с

    пер НоваяИнтеграцияИд: Ууид? = СистемаВзаимодействия.СоздатьИнтеграцию(
        НазваниеИнтеграции,
        ОписаниеСистемы.ВидВнешнейСистемы,
        ПараметрыИнтеграции,
        УчастникиОбсуждения,
        КлючИнтеграции,
        Истина,
        Таймаут)

    возврат НоваяИнтеграцияИд
;
Поиск и редактирование интеграции
В этом примере выполняется поиск интеграции по ключу и ее редактирование:
метод РедактированиеИнтеграции(КлючИнтеграции: Строка)
    пер НужнаяИнтеграция = СистемаВзаимодействия.НайтиИнтеграцию(КлючИнтеграции)
    СистемаВзаимодействия.РедактироватьИнтеграцию(ИдИнтеграции = НужнаяИнтеграция.Ид, Активно = Ложь)
;
Получение списка всех интеграций
Чтобы получить информацию обо всех доступных в системе взаимодействия интеграциях, воспользуйтесь методом ПолучитьИнтеграции():
пер Интеграции = СистемаВзаимодействия.ПолучитьИнтеграции()