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

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

С помощью системы взаимодействия «1С:Предприятие.Элемента Скрипта» вы можете отправлять уведомления пользователям, инициировавшим взаимодействие, из приложения во внешние системы взаимодействия. Поддерживаются такие популярные службы обмена сообщениями, как Telegram, WhatsApp, VK, MAX, WebChat и Webhook. Интеграции позволяют реализовать рассылку сообщений нескольким пользователям, отправить сообщение отдельному пользователю, а также получать уведомления о входящих сообщениях.

Работа с интеграциями в коде​

В «1С:Предприятие.Элементе Скрипте» свойства и методы отдельной интеграции системы взаимодействия с внешним подключением описываются типом ИнтеграцияВзаимодействия.

Получение информации о внешних системах​

Чтобы получить типы внешних систем, поддерживаемых сервером взаимодействия, используйте метод ПолучитьВидыВнешнихСистем(), который возвращает читаемый массив строк с названием поддерживаемых систем:

метод ПолучитьВидыВнешнихСистем(): ЧитаемыйМассив<Строка>
возврат СистемаВзаимодействия.ПолучитьВидыВнешнихСистем()
// Виды: [WebChat, Telegram, VK, MAX, 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с

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

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

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

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

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

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

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

метод ПолучитьИнтеграции(): ЧитаемыйМассив<ИнтеграцияВзаимодействия>
возврат СистемаВзаимодействия.ПолучитьИнтеграции()
;