Перейти к основному содержимому

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

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

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

возврат НоваяИнтеграцияИд
;

Поиск и редактирование интеграции

В этом примере выполняется поиск интеграции по ключу и ее редактирование:

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

Получение списка всех интеграций

Чтобы получить информацию обо всех доступных в системе взаимодействия интеграциях, воспользуйтесь методом ПолучитьИнтеграции():

пер Интеграции = СистемаВзаимодействия.ПолучитьИнтеграции()