Система взаимодействия
Система взаимодействия ‑ это механизм системы
1С:Предприятие, который позволяет взаимодействовать между собой
клиентским приложениям, серверам и пользователям одной или нескольких
информационных баз.
Во время взаимодействия можно обмениваться текстовыми сообщениями,
файлами, устраивать аудио и видеоконференции, демонстрировать экран,
общаться в рамках конкретного объекта приложения (элемента справочника,
документа, отчета и т.д.). Во время взаимодействия записать видеозвонок
не получится.
Также система взаимодействия может интегрироваться с мессенджерами.
Система взаимодействия поддерживает мобильные устройства.
Система взаимодействия реализована в клиент-серверной архитектуре.
Для взаимодействия между пользователями используется отдельный
программный продукт – «1С:Сервер взаимодействия». Он может быть
развернут в Интернете или в локальной сети, предприятия на компьютерах с
операционными системами Microsoft Windows или Linux. Можно не
устанавливать собственный сервер взаимодействия, а воспользоваться
специализированным сервером от фирмы 1С с сервисом 1cDialog.com.
Систему взаимодействия можно использовать в любой конфигурации как в типовой, так и в самописной.
Для управления системой взаимодействия используется стандартная обработка «Управление системой взаимодействия» в окне «Функции для технического специалиста».
Данная обработка доступна только если в конфигурации присутствуют роли,
а у роли, из-под которой запускается обработка, установлено право «Регистрация системы взаимодействия».
С помощью данной стандартной обработки можно выполнять административные действия по работе с системой взаимодействия:
- Зарегистрировать текущую информационную базу в сервисе 1С:Диалог для
того, чтобы стало возможно использовать систему взаимодействия. - Выполнить/отменить объединение приложений системы взаимодействия.
- Блокировать/разблокировать пользователей системы взаимодействия.
- Подключить/отключить внешние системы (например, бота из Telegram).
- Управлять ботами системы взаимодействия.
- Выгрузить/загрузить данные системы взаимодействия.
- Отменить регистрацию приложения в сервисе.
Стандартная обработка Управление системой взаимодействия»
При первом запуске обработки «Управление системой взаимодействия»
запускается мастер регистрации абонента сервиса и приложения. Где
необходимо указать наименование приложения и реальный рабочий адрес
электронной почты, на него придет шестизначный код подтверждения. С
указанным электронным адресом будут связаны все приложения
зарегистрированные в сервисе взаимодействия.
После успешной регистрации в «Панель открытых» добавляется форма «Обсуждения»,
она всегда отображается второй после начальной страницы. Эту форму
нельзя закрыть и перетащить в другое место панели. Если в прикладном
решении отсутствует начальная страница, основная форма системы
взаимодействия становится первой формой в панели открытых. С данного
момента система взаимодействия готова для использования пользователями.
Выделяют три варианта взаимодействия:
- Только интерактивное ‑ обмен сообщениями происходит между прикладными решениями с участием пользователей в интерактивном режиме.
- Не интерактивное ‑ обмен сообщениями происходит между прикладными решениями без участия пользователя.
- Смешанное ‑ обмен сообщениями происходит между прикладным решением и пользователем, когда человек общается с роботом прикладного решения.
Интерактивное взаимодействие
При интерактивном взаимодействии обмен сообщениями происходит между
прикладными решениями с участием пользователей в рамках обсуждений. Обсуждение —
это набор сообщений, связанных одной темой. Тема может быть абсолютно
любой: мероприятия, погода, совещания, счета на оплату, контрагенты и
т.д.
Параметры пользователей
После подключения приложения к сервису взаимодействия, появляется
возможность указания дополнительных параметров для пользователя, который
зарегистрирован в системе взаимодействия.
.
Поддерживается хранение полного имени пользователя, картинки (аватара), телефонного номера и адреса электронной почты
Пользователи, которые ни разу не пользовались системой взаимодействия в окне отмечаются как неактивные и в столбце «Система взаимодействия»
отсутствует флаг. Для активации пользователя, ему необходимо
воспользоваться системой взаимодействия и Администратору выбрать
неактивного пользователя и его активировать.
Жирным шрифтом выделяется текущий пользователь.
Виды обсуждений
Обсуждение делятся на два вида:
- Неконтекстное обсуждение – обсуждение, которое не привязано к объекту информационной базы.
- Контекстное обсуждение – обсуждение, которое привязано к какому-либо объекту приложения.
Неконтекстное обсуждение
Такое обсуждение, не привязано к объекту информационной базы. В нем
могут принимать участие любые пользователи приложения, которые выбраны
участниками обсуждения. Неконтекстных обсуждений может быть произвольное
количество.
После создания обсуждения можно написать сообщение с вложением.
Выбранным пользователям придет уведомление.
Неконтекстные обсуждения могут быть двух видов:
- Один на один – только два пользователя в обсуждении.
- Групповые обсуждения – любое количество пользователей в обсуждении.
Любой участник обсуждения «Один на один» или «Группового обсуждения» может:
- Просматривать сообщения обсуждения.
- Добавлять сообщения в обсуждение.
Любой участник «Группового обсуждения» может:
- Изменять название (тему) обсуждения.
- Добавлять новых участников обсуждения (любых пользователей информационной базы).
- Покинуть обсуждение.
В списке обсуждений показываются все неконтекстные обсуждения, по
которым для пользователя есть уведомления. Если таких обсуждений меньше
50, то список дополняется неконтекстными обсуждениями, в которых
пользователь является участником, и по которым для пользователя нет
уведомлений. Эти обсуждения добавляются в список в порядке убывания даты
последнего сообщения в обсуждении, пока размер списка не достигнет 50
элементов.
Контекстное обсуждение
Такое обсуждение, привязано к какому-либо объекту приложения. В нем
могут принимать участие только те пользователи приложения, которые имеют
право «Чтение» для обсуждаемого объекта. Каждый объект может иметь только одно обсуждение.
Несмотря на то, что в обсуждении по умолчанию могут принимать участие все пользователи приложения, у которых установлено право «Чтение»
на обсуждаемый объект, при создании сообщения имеется возможность
указать адресатов сообщения. Адресаты выбираются для того, чтобы
отобразить им оповещения о новом сообщении. Остальные пользователи
получат оповещение только в том случае, если они подпишутся на получение
оповещений о новых сообщениях в этом обсуждении.
Команда «Обсуждение» выводится в формах, которые не
блокируют окно владельца или весь интерфейс. Для форм, которые блокируют
окно владельца или весь интерфейс механизм обсуждений не предусмотрен.
Например, при открытии элемента справочника, открывается форма, которая
блокирует окно владельца (форму списка).
При необходимости, можно у формы изменить свойство «Режим открытия окна» на значение Независимы, тогда окно не будет блокировать владельца и станет доступна команда «Обсуждение».
На формах, которые не блокируют окно владельца или интерфейс приложения, можно настроить видимость команды «Обсуждение», с помощью свойства управляемой формы ОтображениеОбсуждений.
Виды сообщений
Текстовые сообщения
Основным механизмом в системе взаимодействия считается обмен
текстовыми сообщениями. Размер текстового сообщения ограничен значением 4000 символов. Само текстовое сообщение может быть простым текстом и
форматированной строкой, для этого используется объект встроенного языка
ФорматированнаяСтрока. Указание форматированного сообщения
доступно только при программном формировании сообщения. Когда
форматированная строка присваивается свойству СообщениеСистемыВзаимодействия.Текст, то форматирование сохраняется, но картинки (если такие есть в строке) удаляются, а также перестают распознаваться гиперссылки.
Форматирование сообщения будет сохранено в следующих случаях:
- Во всплывающих уведомлениях.
- В центре оповещений.
- В формах обсуждений.
В остальных случаях текст сообщения отображается без форматирования.
Видеозвонки (видеоконференции)
Для использования видеоконференций должны быть выполнены следующие требования:
- Сервер взаимодействия должен разрешать видеозвонки для абонента, который выполнял регистрацию приложения.
- Клиентское приложение, которое применяется для работы в прикладном решении, позволяет использовать видеозвонки.
- Компьютеры пользователей ‑ участников видеоконференции, должны быть
оснащены микрофонами и динамиками. При наличии видеокамеры у участника
видеоконференции обеспечивается показ изображения видеокамеры другим
участникам видеоконференции.
Если видеозвонки (видеоконференции) поддерживаются, то можно использовать этот инструмент:
- Полностью интерактивно, с помощью соответствующих инструментов
интерфейса клиентского приложения. В этом случае видеозвонок начинается
интерактивно пользователем.
- Из встроенного языка, с помощью метода менеджера системы взаимодействия НачатьВидеоконференцию(). В этом случае видеоконференция может быть начата в результате какого-то другого интерактивного действия.
Оповещения
Для информирования пользователей о новых сообщениях, система
взаимодействия использует оповещения. Оповещение формируется для каждого
нового сообщения в рамках каждого обсуждения.
Оповещения направляются:
- При добавлении сообщения в контекстное обсуждение ‑ всем
пользователям, которых автор сообщения указал в качестве адресатов, а
также пользователям, включившим режим наблюдения для этого контекстного
обсуждения (с учетом правил оповещения). - При добавлении сообщения в неконтекстное обсуждение ‑ всем участникам обсуждения (с учетом правил оповещения).
- При пропущенном видеозвонке ‑ пользователю, пропустившему видеозвонок.
Можно заблокировать отображение всплывающих оповещений о новых сообщениях, для этого используется режим «Не беспокоить»:
- Если этот режим выбран в настройках пользователя, то всплывающие оповещения не будут отображаться для всех обсуждений.
- Если режим выбран в настройках обсуждения, то всплывающие оповещения не будут отображаться для данного обсуждения.
- Режим «Не беспокоить» можно установить с помощью встроенного языка, для этого используется метод УстановитьОтображениеОповещенийОбсуждения().
Интеграция
Чат на сайте
Можно встроить чат системы взаимодействия на сайт, например, интернет-магазина, для этого используется тип интеграции – WebChat.
В стандартной обработке «Управление системой взаимодействия» в разделе «Интеграция» добавляем новый тип внешней системы WebChat. Указываем участника обсуждения по умолчанию.
В параметрах настраиваем внешний вид веб-чата.
Сохраняем все сделанные настройки и в окне «Интеграции» внизу копируем «Навигационную ссылку точки подключения».
Для того, чтобы подключить чат к веб-сайту, необходимо в код веб-сайта вставить следующий фрагмент кода:
<script src=”<URL точки подключения>” async></script>
Вместо <URL точки подключения> вставить скопированную навигационную ссылку точки подключения
В итоге получаем Веб-чат на сайте.
Для каждого нового клиента веб-чата на сайте сайта создается пользователь в системе взаимодействия.
Интеграция с мессенджерами и произвольными приложениями
Система взаимодействия может быть интегрирована с популярными мессенджерами, такими как Telegram, VK, WhatsApp Devino.
Интеграция с Telegram
В Telegram нужно создать Telegram-бота, для этого используется
специальный Telegram-бот @BotFather. Находим его через поиск,
обязательно выбираем с галкой пройденной верификации.
Нажать кнопку «Запустить» или написать команду /start
Появляется помощь по всем командам, нас интересует команда /newbot
На первый вопрос: «Alright, a new bot. How are we going to call it? Please choose a name for your bot.» необходимо указать название бота, можно на русском языке.
На следующий вопрос: «Good. Now let’s choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.» указываем имя бота, но обязательно в конце должно присутствовать слово Bot или _bot
и не начинаться с цифры. Если имя не подходит или занято, бот это
подскажет. По этому имени пользователи будут его искать в Telegram. По
итогу появится сообщение, которое содержит ссылку на бота и его токен.
Копируем токен и создаем новую интеграцию в 1С. При настройке интеграции вставляем в параметр token скопированный токен.
Открываем созданный чат-бот и пишем сообщение.
Интеграция с VK
Создаем новое сообщество. В окне «Какая у вас цель?» выбираем любую подходящую цель, например, группа по интересам.
Указываем название группы, указываем приватность.
Выбираете тематику, например, образование.
Выполняем настройку группы. Переходим на страницу «Управление ‑ Настройки ‑ Работа с API ‑ Ключи доступа». На этой странице нажимаем кнопку «Создать ключ». При создании ключа обязательно необходимо установить флаги:
- Разрешить приложению доступ к управлению сообществом.
- Разрешить приложению доступ к сообщениям сообщества.
Может при создании ключа возникнуть ошибка.
Переходите в VK ID и настраиваете двухфакторную аутентификацию.
При создании ключа, на следующем шаге подтверждаем действия вводом кода подтверждения, который придет на телефон.
Созданный ключ доступа необходимо сохранить, он потребуется для
создания интеграции в системе взаимодействия. Рекомендуется относиться к
данному ключу как к конфиденциальной информации.
Переходим на страницу «Управление ‑ Настройки ‑ Работа с API ‑ Callback API».
На этой странице необходимо получить идентификатор созданной группы.
Для этого надо найти на странице текст вида {“type”: “confirmation”,
“group_id”: 123456789 }. В этом тексте число 123456789 ‑ это и есть
идентификатор группы, который нужно запомнить.
Полученные значения вставляем в параметры интеграции с VK.
Переходим на страницу «Управление ‑ Настройки ‑ Сообщения». На этой странице нужно установить параметр «Сообщения сообщества» в значение «Включено» и нажать кнопку «Сохранить».
Интеграция с WhatsApp
Для интеграции WhatsApp с системой взаимодействия необходимо
заключить договор с провайдером на тариф WhatsApp Business API.
Заключить его нужно с компанией «Девино Телеком». Услуги компании
«Девино Телеком» платные. Тариф WhatsApp Business API предполагает
обязательную верификацию организации через Facebook. Такой возможности
нет, поэтому в рамках данного мастер-класса рассматривать данную
интеграцию не будем.
Не интерактивное взаимодействие
Не интерактивное взаимодействие ‑ это механизм
обмена сообщениями между прикладными решениями без участия
пользователя. Такое взаимодействие может происходить в том случае, если
необходимо передавать какую-либо информацию между подсистемами
прикладного решения во время выполнения какой-либо активности.
Здесь нужно вспомнить такой нюанс, взаимодействие между клиентской и
серверной частью системы 1С:Предприятия происходит только по инициативе
клиента. Сервер 1С:Предприятия сам, по своему желанию, не может вызвать
какое-либо клиентское приложение и передать ему информацию. И здесь на
помощь приходит система взаимодействия. В ней сообщения могут
отправляться не только интерактивно, но и программно, причём по
инициативе любого из участников, клиента или даже сервера. А получив
такое сообщение, на стороне клиента, можно его не только показать
пользователю, но и выполнить какие-либо действия.
Например, у Бухгалтера должны автоматически открываться карточки
контрагентов, в которые были внесены изменения другим пользователем.
Автоматически открытая карточка контрагента после внесения изменений в нее Агентом
Работа с обсуждениями
Для работы с обсуждением его первоначально нужно создать, методом СоздатьОбсуждение(). В результате будет создан объект ОбсуждениеСистемыВзаимодействия с автоматически заполненным свойством Идентификатор. Данное свойство однозначно идентифицирует обсуждение среди остальных обсуждений. Еще одно не менее важное свойство — это Ключ,
данное свойство необходимо для установки уникального ключа обсуждения.
Ключ можно сформировать самостоятельно на этапе создания нового
обсуждения до вызова метода Записать(). После записи обсуждения изменить Ключ нельзя. Уникальность поддерживается в пределах информационной базы в разрезе всех независимых разделителей.
Работа с сообщениями
Для создания сообщения используется метод СоздатьСообщение(<Обсуждение>), где в обязательный параметр Обсуждение необходимо передать идентификатор обсуждения, в которое данное сообщение попадет. В свойстве Текст
указывается текст сообщения, если форматированная строка содержит
картинки, они удаляются. После заполнения сообщения данными его
записывают методом Записать().
Смешанное взаимодействие
Смешанное взаимодействие – это взаимодействие между
живым человеком с одной стороны и подсистемой прикладного решения с
другой. Простейшим примером такого взаимодействия является робот,
отвечающий на определенные запросы.
Боты в системе взаимодействия
Боты — это общие объекты конфигурации, которые
являются частью системы взаимодействия и позволяют организовать общение
пользователя с прикладным решением через привычный пользователю
интерфейс системы взаимодействия.
Для автоматизации общения пользователя и прикладного решения предназначен объект конфигурации БотСистемыВзаимодействия.
Каждый бот создается для выполнения одной или нескольких определенных
функций. Для реализации своих функций у бота имеется модуль объекта, в
котором существует обработчик события ОбработкаСообщенияСистемыВзаимодействия. В этом обработчике находится реализация поведения бота.
Для того чтобы бот мог выполнять свои функции, с ним связаны несколько пользователей:
- Пользователь системы взаимодействия. Данный
пользователь является олицетворением бота в системе взаимодействия.
Именно с этим пользователем общается другой пользователь системы
взаимодействия, когда требуется взаимодействие с ботом. Этот
пользователь всегда должен быть задан для бота. Если его не указать, то
бот не сможет участвовать в обсуждениях системы взаимодействия (теряется
смысл бота).
- Пользователь информационной базы прикладного решения.
Данный пользователь определяет, к каким данным будет иметь доступ тот
или иной бот. Если с ботом не связан никакой пользователь информационной
базы, то такой бот будет обладать правами, которые указаны в свойстве
конфигурации «Основные роли». Этот пользователь не является обязательным для указания.
С точки зрения системы взаимодействия, пользователь данной системы,
связанный с ботом, ничем принципиально не отличается от других
пользователей системы взаимодействия. Это значит, что бота можно
включать в различные обсуждения, устанавливать для него режим наблюдения
и т. д.
Но сам бот, как участник обсуждения, имеет несколько особенностей и ограничений:
- Правила получения ботом сообщений:
- Бот не может получить сообщения, написанные им самим.
- Бот не может получить сообщения, написанные другими ботами.
- Бот может получить сообщения в следующих случаях:
- Обсуждение «один на один»: человек общается с ботом.
- Групповое
неконтекстное обсуждение или контекстное обсуждение (будет получать
сообщения, адресованные непосредственно боту, а все остальные сообщения ‑
в соответствии с настройками режима наблюдения бота). - Бот не может принимать участия в видеозвонке.
Бот характеризуется следующими параметрами:
- Предопределенный ‑ признак, указывающий, что
бот является предопределенным ботом. Предопределенный бот ничем не
отличается от обычного бота, за исключением того, что его нельзя явно
создать или удалить. Если в метаданных у бота установлен признак Предопределенный,
то при обновлении конфигурации в информационной базе автоматически
будут созданы бот и связанный с ним пользователь системы взаимодействия.
Если признак предопределенности снят, то информация о боте удаляется,
пользователь системы взаимодействия перестает быть ботом. В конфигурации
можно создать любое количество предопределенных ботов. - Картинка
‑ данное свойство содержит картинку, которая будет установлена
пользователю системы взаимодействия, ассоциированному с данным ботом.
Боты создаются (инициализируются) в системе взаимодействия следующими способами:
- С помощью метода ВыполнитьОбработкуБотов() менеджера
системы взаимодействия. Таким способом создаются предопределенные боты и
запускаются фоновое задания для получения сообщений ботами. - С помощью метода БотСистемыВзаимодействия.Записать(). Собственно объект БотСистемыВзаимодействия можно получить с помощью методов СоздатьБота() или ПолучитьБотов() менеджера системы взаимодействия.
Команды (действия)
При разработке роботов может возникнуть потребность разместить в
сообщении некоторые «команды», чтобы пользователь мог быстро выполнить
необходимое действие. Для этого используется свойство Действия у объекта
СообщениеСистемыВзаимодействия. Данное свойство представляет собой объект типа КоллекцияДействийСообщенияСистемыВзаимодействия, который содержит информацию о «командах». В качестве значения элемента списка действий указывается значение типа ДействиеСообщенияСистемыВзаимодействия, это значение содержит следующие свойства:
- Значение ‑ строкового представления значения действия.
- Картинка ‑ указывает, какая картинка будет использоваться в качестве представления действия.
- Текст ‑ текстовое описание действия в сообщении, может быть представлено в виде типа Строка или типа Форматированная строка.
Начиная с версии 8.3.25 вместо действий теперь доступны кнопки, которые можно будет отобразить как в виде обычных кнопок, так и в виде гиперссылок. Тип ДействиеСообщенияСистемыВзаимодействия
будет объявлен устаревшим (но будет поддерживаться ещё несколько
версий). Вместо него рекомендуется использовать новые типы объектов,
связанные с кнопками.
Вложенные файлы
Система взаимодействия позволяет присоединять вложения к сообщениям
системы взаимодействия. Эта возможность доступна только в том случае,
если сервер системы взаимодействия соответствующим образом настроен.
Работа с вложениями осуществляется с помощью свойства Вложения объекта СообщениеСистемыВзаимодействия.
Чтобы добавить новый объект вложения, используется метод Добавить() у типа КоллекцияВложенийСистемыВзаимодействия. Добавить можно:
- Тип Поток – поток данных, который можно последовательно читать и/или в который можно последовательно писать.
- Тип ФайловыйПоток – поток для работы с данными, расположенными в файле на диске.
- Тип ПотокВПамяти – поток для работы с данными, расположенными в оперативной памяти.
Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».
Подписывайтесь:
CORS Клуб – сообщество и образовательная среда для специалистов из IT-сферы https://cors.su/klub/
АБП -Сообщество специалистов по автоматизации бизнес-процессов и по использованию ИТ технологий в бизнесе https://t.me/analitiki_1c
Канал руководителей IT компаний и подразделений, CIO, СDO, CDTO https://t.me/cio_channel
CIO. Сообщество IT руководителей https://vk.com/cio_club