что такое сервер взаимодействия 1с
Система взаимодействия в 1С
Система взаимодействия — это механизм появившийся в технологической платформе 8.3.10. Это механизм позволяет клиентским приложениям, серверу и пользователям взаимодействовать между собой. В этой статье я попробую рассказать обо всем этом более подробно.
Общая информация
Итак, как уже было сказано выше, система взаимодействия позволяет осуществлять различные виды взаимодействия между приложениями, сервером и пользователями. Цель создания такой системы — упростить автоматизацию бизнес-процессов и предоставить пользователям простое средство коммуникации.
По видам, взаимодействия можно разделить на:
Интерактивное взаимодействие происходит посредством текстовых сообщений и видеозвонков (обычный звонок — это видеозвонок без, собственно, видео).
Сообщения пользователей связанные одной темой называются обсуждениями, тема при этом может быть абсолютно любой. Сами же обсуждения бывают двух видов:
Неконтекстные обсуждения — не привязанные к какому-либо объекту информационной базы. Участвовать могут любые пользователи выбранные инициатором обсуждения. Обсуждений такого вида может быть сколько угодно.
Контекстные обсуждения — привязаны к конкретному объекту информационной базы. Доступ к обсуждению имеют те пользователи, которые имеют доступ к обсуждаемому объекту. Для каждого объекта может существовать только одно обсуждение.
К сообщениям можно прикреплять файлы, правда для этого, сервер взаимодействия должен быть настроен на работу с внешним хранилищем, работающим по протоколу Amazon S3.
Система реализована в клиент-серверной архитектуре и состоит из, внезапно, клиентской и серверной части. В качестве серверной части можно использовать либо сервер предоставляемый сервисом 1cDialog.com, либо самостоятельно установить и настроить экземпляр продукта «1С:Сервер взаимодействия».
Обмен сообщениями между клиентом и сервером осуществляется по протоколу WebSocket, что обеспечивает надлежащий уровень безопасности.
Доступ к сообщениям возможен посредством программного интерфейса, реализованного свойством глобального контекста — СистемаВзаимодействия.
Сервер взаимодействия
Как уже было сказано выше, сервер взаимодействия может предоставляться сервисом 1cDialog.com или отдельным продуктом, который можно скачать и установить на подходящем компьютере. Первый вариант не требует дополнительных действий поэтому и описывать там нечего, следовательно рассмотрим второй вариант — установку и настройку продукта «1С:Сервер взаимодействия».
Для начала раздобудем все, что потребуется (устанавливать в этом же порядке):
Кроме этого потребуется 1С:Предприятие (8.3.10-8.3.14). Ring и сам сервер взаимодействия можно скачать с https://users.v8.1c.ru/:
Сервер взаимодействия включает в себя севера Hazelcast и Elasticsearch, которые можно скачивать и устанавливать отдельно, но в нашем случае я выбрал общий вариант.
Во время установки потребуется ввести логин и пароль от учетной записи PostgreSQL.
Запустить и остановить компоненты системы можно как и все остальные службы:
А также при помощи утилиты Ring:
Настройки сервера взаимодействий в моем случае находятся тут:
В этой папке находится достаточно много файлов и соответственно немало настроек, описывать которые в этой статье я не буду, ибо статья обзорная. Небольшие изменения внесу только в файл com._1c.ecs.websocket.yml :
Изменить параметры можно при помощи утилиты Ring. Подробнее об имеющихся параметрах можно узнать на сайте ИТС или из справки утилиты Ring:
Подключение и использование
Для подключения к сервису 1cDialog.com нужно пройти в меню «Все функции»-«Стандартные»-«Управление системой взаимодействия». В открывшемся окне нужно указать адрес эл. почты (валидный), на него пришлют код регистрации, этот код нужно вставить в соответствующее поле и нажать кнопку «Зарегистрировать».
Очевидное использование системы взаимодействия (разнообразное общение между пользователями) нас не интересует. Рассмотрим возможности которые предоставляет свойство глобального контекста СистемаВзаимодействия. В качестве примера рассмотрим создание простого каркаса для бота, который реагирует на команды пользователей. Под командами пользователей подразумеваются сообщения какого-то определенного вида. Итак, в модуль исполняемый на клиенте поместим код такого вида:
Настройка 1С:Сервера взаимодействия и медиасервера
Что необходимо
Минимальный размер оперативной памяти – 4 Гб.
Для выбора версии сервера рекомендуем воспользоваться таблицей
Версия 1С:Сервера взаимодействия | Версия платформы 1С:Предприятие |
---|---|
10.0.47 | 8.3.19 |
9.0.34 | 8.3.18 |
Установка на «Linux» (на примере CentOS 7)
$ tar xvzf 1c_cs_10.0.47_linux_x86_64.tar.gz
$ tar xvjf postgresql_11.5_19.1C_x86_64_rpm.tar.bz2
$ sudo passwd postgres
postgres=# CREATE DATABASE cs_db;
postgres=# \c cs_db
postgres=# CREATE EXTENSION IF NOT EXISTS «uuid-ossp»;
postgres=# \q
$ exit
$ sudo systemctl enable postgresql-11
$ sudo systemctl start postgresql-11
Проверить, что все запустилось: Копировать в буфер обмена
При необходимости смотреть логи: Копировать в буфер обмена
Настройка обмена файлами в системе взаимодействия
Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов. Хранилище должно поддерживать протокол S3 (V2 или V4).
Можно развернуть собственное хранилище:
Или подключиться к существующим:
Необходимо выбрать только один вариант использования хранилища файлов:
Для доступа к серверу хранилища, необходимо задать логин и пароль в переменных среды MINIO_ACCESS_KEY и MINIO_SECRET_KEY, соответственно. Чтобы значения этих переменных устанавливалиь при старте, занесем их инициализацию в /etc/default.
Копировать в буфер обмена
$ sudo vi /etc/default/minio
$ sudo vi /etc/systemd/system/minio.service
$ sudo systemctl enable minio.service
$ sudo systemctl start minio.service
Создайте новое хранилище, например cs-bucket
Логин: значение переменной MINIO_ACCESS_KEY,
Пароль: значение переменной MINIO_SECRET_KEY
В данном примере будет использоваться хранилище Amazon
Если вы планируете работать в web-клиенте, то необходимо настроить CORS:
Подключение информационной базы к серверу взаимодействия
Подключение медиасервера для проведения видеоконференций
$ sudo yum install git
$ sudo yum install epel-release
$ sudo yum install wget ninja-build meson jansson-devel openssl-devel libsrtp-devel sofia-sip-devel glib2-devel opus-devel libogg-devel libcurl-devel pkgconfig gengetopt libconfig-devel libtool autoconf automake cmake
$ sudo yum groupinstall ‘Development Tools’
$ cd /opt/janus/etc/janus
$ sudo cp janus.eventhandler.gelfevh.jcfg.sample janus.eventhandler.gelfevh.jcfg
$ sudo cp janus.eventhandler.sampleevh.jcfg.sample janus.eventhandler.sampleevh.jcfg
$ sudo cp janus.eventhandler.wsevh.jcfg.sample janus.eventhandler.wsevh.jcfg
$ sudo cp janus.jcfg.sample janus.jcfg
$ sudo cp janus.plugin.audiobridge.jcfg.sample janus.plugin.audiobridge.jcfg
$ sudo cp janus.plugin.echotest.jcfg.sample janus.plugin.echotest.jcfg
$ sudo cp janus.plugin.nosip.jcfg.sample janus.plugin.nosip.jcfg
$ sudo cp janus.plugin.recordplay.jcfg.sample janus.plugin.recordplay.jcfg
$ sudo cp janus.plugin.streaming.jcfg.sample janus.plugin.streaming.jcfg
$ sudo cp janus.plugin.textroom.jcfg.sample janus.plugin.textroom.jcfg
$ sudo cp janus.plugin.videocall.jcfg.sample janus.plugin.videocall.jcfg
$ sudo cp janus.plugin.videoroom.jcfg.sample janus.plugin.videoroom.jcfg
$ sudo cp janus.plugin.voicemail.jcfg.sample janus.plugin.voicemail.jcfg
$ sudo cp janus.transport.http.jcfg.sample janus.transport.http.jcfg
$ sudo cp janus.transport.pfunix.jcfg.sample janus.transport.pfunix.jcfg
$ sudo mkdir /var/log/janus
$ sudo vi /opt/janus/etc/janus/janus.jcfg
admin_secret = пароль администратора
event_loops = количество ядер
no_media_timer = 2
min_nack_queue = 500
opaqueid_in_api = true
ignore_mdns = true # если не нужны подключения по локальной сети
log_to_stdout = false
log_lo_file = /var/log/janus/janus.log
$ sudo vi /opt/janus/etc/janus/janus.plugin.videoroom.jcfg
$ sudo vi /etc/systemd/system/janus.service
[Unit]
Description=Janus WebRTC Server
After=network.target
$ sudo systemctl enable janus.service
$ sudo systemctl start janus.service
$ sudo vi /var/cs/cs_instance/config/video.yml
enabled: true
conference-server-based-member-limit: 34
conference-server-based-threshold: 3 # Количество участников конференции, после которого используется медиасервер, вместо прямого соединения p2p
max-bandwidth: 2000
max-reference-width: 1280
max-reference-height: 720
max-reference-fps: 30
Для проверки, что конференция идет через медиасервер, необходимо создать конференцию с числом участников >= значения параметра conference-server-based-threshold. После того, как все участники конференции ответят на звонок, выполнить команду:
Заметки из Зазеркалья
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Реализовано в версии 8.3.11.2867.
Для платформы 8.3.11 реализована тестовая версия сервера взаимодействия. Сервер взаимодействия является центральным элементом системы взаимодействия, передающей информацию между клиентскими приложениями и серверами 1С:Предприятия.
Сама система взаимодействия была реализована в предыдущей версии платформы 8.3.10. Она использовала для своей работы публичный экземпляр сервера взаимодействия (wss://1cdialog.com), развернутый на аппаратных мощностях фирмы «1С». Теперь мы подготовили к выпуску сервер взаимодействия в виде отдельного дистрибутива, который вы можете развернуть в локальной сети своей организации.
В состав дистрибутива входят следующие компоненты:
Дистрибутив будет опубликован на портале 1С:ИТС в разделе Обновление программ отдельной строкой. Документация будет доступна в разделе «Разработка и администрирование» на ИТС.
Сервер взаимодействия может быть установлен на компьютеры с операционными системами Microsoft Windows или Linux. Для операционной системы Microsoft Windows в дистрибутиве есть программа установки, которая устанавливает все три компонента на один компьютер, и стандартным образом настраивает их. Это самый простой вариант развертывания сервера взаимодействия.
Кроме этого дистрибутив содержит отдельные установочные пакеты для каждого компонента под все поддерживаемые операционные системы.
Для более сложных сценариев развертывания все компоненты сервера настраиваются с помощью утилиты ring, входящей в состав платформы.
При работе с прикладными решениями на платформе 8.3.11 сервер обеспечивает полную функциональность. Если прикладные решения используют платформу 8.3.10, то не поддерживается функция видеозвонков. Это связано с тем, что в платформе версии 8.3.11 была изменена технология видеозвонков. Теперь они выполняются по технологии peer-to-peer без использования центрального видео-сервера. Поэтому сервер взаимодействия не содержит отдельного медиа-сервера, который используют для видеозвонков прикладные решения на платформе 8.3.10.
Система взаимодействия
Система взаимодействия позволяет пользователям программ «1С:Предприятия» обмениваться текстовыми сообщениями, файлами, устраивать аудио и видеоконференции. Начиная с версии 8.3.16 есть возможность демонстрировать экран своего компьютера в ходе видеозвонка.
Поддерживаются контекстные обсуждения, связанные с конкретными объектами приложения (документами, элементами справочников, отчетами и т. п.). При этом вся переписка связана с объектом приложения и отображается вместе с ним.
С помощью Системы Взаимодействия разработчики прикладных решений могут реализовывать новые, ранее недоступные бизнес-сценарии, например, создавать чат-боты и автоматические ассистенты, облегчающие работу с приложениями, информировать пользователей о событиях, произошедших в приложении и т. п.
Система Взаимодействия доступна также в мобильном клиенте «1С:Предприятия 8».
Архитектура
Механизм обсуждений реализован в клиент-серверной архитектуре. Для взаимодействия между пользователями используется отдельный программный продукт — 1С:Сервер взаимодействия. Он может быть развёрнут в Интернете или в локальной сети предприятия.
Обсуждения
Взаимодействие между пользователями осуществляется с помощью обсуждений. По своему прикладному смыслу обсуждения могут быть двух разных видов. Во-первых, это тематические обсуждения, посвященные какому-либо вопросу: мероприятиям, связанным с открытием нового магазина, вариантам проведения новогоднего праздника или грядущему совещанию у директора.
Во-вторых, это могут быть обсуждения, связанные с конкретными объектами данных: накладными, товарами, поставщиками и т. д. При этом вся переписка отображается в форме этих данных.
Видеозвонки
Функциональность видеозвонков, при наличии микрофона, позволяет звонить другим пользователям и общаться с ними голосом. А при наличии веб-камер пользователи могут ещё и видеть друг друга.
Демонстрация экрана
Совместное использование прикладных решений
В рамках системы взаимодействия поддерживается одновременное использование нескольких прикладных решений. В результате пользователи, работающие в одном приложении (например, «Бухгалтерия предприятия») могут обмениваться сообщениями и видеозвонками с пользователями других приложений (например, «Управление нашей фирмой»).
Для облегчения взаимодействия пользователей, использующих несколько прикладных решений, используется программа «1С:Предприятие — оповещения и запуск».
Внешние пользователи
Интеграция с мессенджером Telegram и социальной сетью ВКонтакте
Взаимодействие с мессенджером Telegram осуществляется через Telegram-бота. Администратор «1С:Предприятия» должен создать такого бота в Telegram и затем зарегистрировать его в системе взаимодействия.
Обмен сообщениями выглядит следующим образом. Пользователь Telegram пишет сообщение боту, система взаимодействия создает нового внешнего пользователя (если такого еще нет) и новое неконтекстное обсуждение (если такого еще нет). Участниками этого обсуждения являются внешний пользователь и пользователи системы взаимодействия, назначенные для участия во внешних обсуждениях.
При появлении новых сообщений в этом обсуждении пользователи системы взаимодействия получают уведомления по общим правилам, а внешний пользователь получает сообщение в Telegram от бота.
Взаимодействие с социальной сетью ВКонтакте организуется другим образом — на основе идентификатора группы ВКонтакте и ключа доступа.
Во встроенном языке реализована объектная модель, позволяющая управлять интеграцией системы взаимодействия с внешними системами.
Интеграция с произвольным приложением через механизм вебхуков (webhook)
Платформа «1С:Предприятие» содержит специальные объекты, боты, которые позволяют организовать общение пользователя с прикладным решением через систему взаимодействия.
Например, пользователь может задать боту вопрос и узнать текущий курс валюты или получить информацию об остатках определенных товаров или сведения о контрагентах.
Функциональность системы взаимодействия
Система взаимодействия «1С» — обзор возможностей, примеры активации и использования
Система взаимодействия «1С» — примеры демонстрации рабочего стола и работы в облаке
Настройка 1С:Сервера взаимодействия
Что необходимо
Минимальный размер оперативной памяти – 4 Гб.
Для выбора версии сервера рекомендуем воспользоваться таблицей
Версия 1С:Сервера взаимодействия | Версия платформы 1С:Предприятие |
---|---|
7.0.25 | 8.3.16 |
6.0.47 | 8.3.15 |
5.0.43 | 8.3.14 |
4.0.73 | 8.3.13 |
Установка на «Linux» (на примере CentOS 7)
$ tar xvzf centos_7.7.1908.x64.tar.gz
$ tar xvjf postgresql_11.5_19.1C_x86_64_rpm.tar.bz2
postgres=»# CREATE DATABASE cs_db;
postgres=# \c cs_db
postgres=# CREATE EXTENSION IF NOT EXISTS «uuid-ossp»;
postgres=# \q
$ exit
# systemctl enable postgresql-11
# systemctl start postgresql-11
— имя или IP-адрес компьютера, на котором установлен сервер взаимодействия и к которому будет подключаться клиентское приложение системы взаимодействия (система «1С:Предприятие»).
/var/cs/cs_instance/logs/
/var/cs/hc_instance/logs/
/var/cs/elastic_instance/logs/
Настройка обмена файлами в системе взаимодействия
Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов.Хранилище должно поддерживать протокол S3 (V2 или V4).
Можно развернуть собственное хранилище:
Или подключиться к существующим:
Необходимо выбрать только один вариант использования хранилища файлов:
Для доступа к серверу хранилища, необходимо задать логин и пароль в переменных среды MINIO_ACCESS_KEY и MINIO_SECRET_KEY, соответственно. Чтобы значения этих переменных устанавливалиь при старте, занесем их инициализацию в /etc/default.
$ sudo vi /etc/default/minio
MINIO_VOLUMES=»»/var/minio/&»quot;
MINIO_ACCESS_KEY=» minio
MINIO_SECRET_KEY=» minio123
$ sudo vi /etc/systemd/system/minio.service
[Unit]
Description=»MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/minio/minio
$ sudo systemctl enable minio.service
$ sudo systemctl start minio.service
Создайте новое хранилище, например cs-bucket
Логин: значение переменной MINIO_ACCESS_KEY,
Пароль: значение переменной MINIO_SECRET_KEY
Для хранилища укажите, что оно работает в режиме «Read and Write».
Для добавления хранилища файлов в базу сервера взаимодействия:
$ su postgres
$ vi /tmp/create_bucket.sql
INSERT INTO public.storage_server(id, type, base_url, container_url, container_name, region, access_key_id, secret_key, signature_version, is_deleted, upload_limit, download_limit, file_size_limit, created_at, updated_at, cdn_url, cdn_key_id, cdn_secret_key, state, cdn_enabled, path_style_access_enabled, bytes_to_keep, days_to_keep, pricing_url)
VALUES(
uuid_generate_v4(), ‘AMAZON’, ‘http://ИМЯ СЕРВЕРА ИЛИ IP:9000’,’http://ИМЯ СЕРВЕРА ИЛИ IP:9000/$
‘cs-bucket’,
»,
‘minio’,
‘minio123’,
‘V2’, false, 1073741824, 1073741824, 104857600, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, NULL, ‘ACTIVE’, false, true, 0, 0, NULL);
Если вы планируете работать в web-клиенте, то необходимо настроить CORS:
Для добавления хранилища файлов в базу сервера взаимодействия: