Система взаимодействия — это механизм появившийся в технологической платформе 8.3.10. Это механизм позволяет клиентским приложениям, серверу и пользователям взаимодействовать между собой. В этой статье я попробую рассказать обо всем этом более подробно.
Общая информация
Итак, как уже было сказано выше, система взаимодействия позволяет осуществлять различные виды взаимодействия между приложениями, сервером и пользователями. Цель создания такой системы — упростить автоматизацию бизнес-процессов и предоставить пользователям простое средство коммуникации.
По видам, взаимодействия можно разделить на:
- Не интерактивные — когда информацией обмениваются только подсистемы прикладного решения (без участия живых людей);
- Только интерактивные — когда все участники взаимодействия являются живыми людьми;
- Смешанные — когда человек общается с подсистемой прикладного решения (своего рода робот, отвечающий на запросы).
Интерактивное взаимодействие происходит посредством текстовых сообщений и видеозвонков (обычный звонок — это видеозвонок без, собственно, видео).
Сообщения пользователей связанные одной темой называются обсуждениями, тема при этом может быть абсолютно любой. Сами же обсуждения бывают двух видов:
Неконтекстные обсуждения — не привязанные к какому-либо объекту информационной базы. Участвовать могут любые пользователи выбранные инициатором обсуждения. Обсуждений такого вида может быть сколько угодно.
Контекстные обсуждения — привязаны к конкретному объекту информационной базы. Доступ к обсуждению имеют те пользователи, которые имеют доступ к обсуждаемому объекту. Для каждого объекта может существовать только одно обсуждение.
К сообщениям можно прикреплять файлы, правда для этого, сервер взаимодействия должен быть настроен на работу с внешним хранилищем, работающим по протоколу Amazon S3.
Система реализована в клиент-серверной архитектуре и состоит из, внезапно, клиентской и серверной части. В качестве серверной части можно использовать либо сервер предоставляемый сервисом 1cDialog.com, либо самостоятельно установить и настроить экземпляр продукта «1С:Сервер взаимодействия».
Обмен сообщениями между клиентом и сервером осуществляется по протоколу WebSocket, что обеспечивает надлежащий уровень безопасности.
Доступ к сообщениям возможен посредством программного интерфейса, реализованного свойством глобального контекста — СистемаВзаимодействия.
Сервер взаимодействия
Как уже было сказано выше, сервер взаимодействия может предоставляться сервисом 1cDialog.com или отдельным продуктом, который можно скачать и установить на подходящем компьютере. Первый вариант не требует дополнительных действий поэтому и описывать там нечего, следовательно рассмотрим второй вариант — установку и настройку продукта «1С:Сервер взаимодействия».
Для начала раздобудем все, что потребуется (устанавливать в этом же порядке):
- Java 8+ (64-bit);
- PostgreSQL 9.5+;
- Ring;
- Сервер взаимодействия (64-bit);
Кроме этого потребуется 1С:Предприятие (8.3.10-8.3.14). Ring и сам сервер взаимодействия можно скачать с https://users.v8.1c.ru/:
Сервер взаимодействия включает в себя севера Hazelcast и Elasticsearch, которые можно скачивать и устанавливать отдельно, но в нашем случае я выбрал общий вариант.
Во время установки потребуется ввести логин и пароль от учетной записи PostgreSQL.
После установки (если все пройдет нормально) все необходимые сервисы будут запущены, проверить это можно зайдя по адресу http://localhost:8087/rs/health
. Если все нормально, то результат будет примерно таким:
Запустить и остановить компоненты системы можно как и все остальные службы:
А также при помощи утилиты Ring:
ring hazelcast --instance <hc_instance> service start(stop)
ring elasticsearch --instance <elastic_instance> service start(stop)
ring cs --instance <cs_instance> service start(stop)
<hc_instance>, <elastic_instance>, <cs_instance> — название экземпляра соответствующего сервера.
Настройки сервера взаимодействий в моем случае находятся тут:
C:\ProgramData\1C\1CE\instances\cs\config
В этой папке находится достаточно много файлов и соответственно немало настроек, описывать которые в этой статье я не буду, ибо статья обзорная. Небольшие изменения внесу только в файл com._1c.ecs.websocket.yml
:
Изменить параметры можно при помощи утилиты Ring. Подробнее об имеющихся параметрах можно узнать на сайте ИТС или из справки утилиты Ring:
Подключение и использование
Для подключения к сервису 1cDialog.com нужно пройти в меню «Все функции»-«Стандартные»-«Управление системой взаимодействия». В открывшемся окне нужно указать адрес эл. почты (валидный), на него пришлют код регистрации, этот код нужно вставить в соответствующее поле и нажать кнопку «Зарегистрировать».
Для подключения к собственному серверу взаимодействий потребуется специальная обработка — CollaborationSystemRegister.epf
, которую можно скачать там же, где и сам сервер. В этой обработке нужно указать адрес для подключения (который настраивается в файле com._1c.ecs.websocket.yml
) и адрес эл. почты:
Очевидное использование системы взаимодействия (разнообразное общение между пользователями) нас не интересует. Рассмотрим возможности которые предоставляет свойство глобального контекста СистемаВзаимодействия. В качестве примера рассмотрим создание простого каркаса для бота, который реагирует на команды пользователей. Под командами пользователей подразумеваются сообщения какого-то определенного вида. Итак, в модуль исполняемый на клиенте поместим код такого вида:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Процедура СоздатьРобота() Экспорт Обработчик = Новый ОписаниеОповещения("ПриОтправкеСообщения", ЭтотОбъект); СистемаВзаимодействия.ПодключитьОбработчикПослеОтправкиСообщения(Обработчик); КонецПроцедуры Процедура ПриОтправкеСообщения(Сообщение, Обсуждение, ДополнительныеПараметры) Экспорт Если СтрНачинаетсяС(Сообщение.Текст, "/?") Тогда ОбщегоНазначенияВызовСервера.СоздатьСообщениеРобота(Обсуждение.Идентификатор, "Справочная информация"); КонецЕсли; КонецПроцедуры |
Первая процедура подключает обработчик отправки сообщений, который реагирует на все отправляемые пользователем сообщения, в любом из обсуждений. Вторая процедура анализирует каждое сообщение, если сообщение удовлетворяет некоторым условиям вызывается серверная процедура, которая генерирует ответ сервера:
1 2 3 4 5 6 7 | Процедура СоздатьСообщениеРобота(ИдентификаторОбсуждения, ТекстСообщения) Экспорт Сообщение = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения); Сообщение.Текст = ТекстСообщения; Сообщение.Записать(); КонецПроцедуры |
Для того, чтобы все заработало нужно каким-либо образом вызвать процедуру «СоздатьРобота» — например в процедуре модуля приложения «ПриНачалеРаботыСистемы». Результат выглядит так:
Информацию о прочих возможностях можно найти на сайте ИТС, а так же в справочной информации конфигуратора.
На этом все, надеюсь, что данная статья Вам помогла.
Загрузка...
Можно ли ставить систему взаимодействия на файл-серверной платформе? Клиент пока не готов приобретать сервер 1С:предприятия. PostgreSQL 9.5+ поставим
Приветствую. Есть ли у вас услуга — установки сервера взаимодействия на клиентской стороне?
здравствуйте! Сообщения в чат могут быть отправлены не только в базе, но и из браузера, когда некто заходит в чат через браузер по ссылке. Скажите, эта процедура будет отрабатывать в этом случае? Спасибо