- Настройка 1С:Сервера взаимодействия и медиасервера
- Что необходимо
- Установка на «Linux» (на примере CentOS 7)
- Настройка обмена файлами в системе взаимодействия
- Подключение информационной базы к серверу взаимодействия
- Подключение медиасервера для проведения видеоконференций
- Заметки из Зазеркалья
- Зачем нужна система взаимодействия?
- Архитектура системы
- Как «включить» систему взаимодействия?
- В каком месте интерфейса находится система взаимодействия?
- Типичные сценарии использования
- Неконтекстное обсуждение
- Контекстное обсуждение
- Видеозвонок
- Область уведомлений
- Неполадки
- Программная работа с системой взаимодействия
- Планы и обратная связь
Настройка 1С:Сервера взаимодействия и медиасервера
Что необходимо
- PostgreSQL – https://releases.1c.ru/project/AddCompPostgre (версия >= 9.5)
- Сервер системы взаимодействия — https://releases.1c.ru/project/CollaborationSystem
Минимальный размер оперативной памяти – 4 Гб.
Для выбора версии сервера рекомендуем воспользоваться таблицей
Версия 1С:Сервера взаимодействия | Версия платформы 1С:Предприятие |
---|---|
10.0.47 | 8.3.19 |
9.0.34 | 8.3.18 |
Установка на «Linux» (на примере CentOS 7)
- Установить Java по инструкции:
https://bell-sw.com/pages/repositories/#yum - Скачать дистрибутивы (версии могут отличаться):
$ 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 ./1ce-installer-cli install
$ sudo rpm -ihv libicu-50.2-3.el7.x86_64.rpm libxslt-1.1.28-5.el7.x86_64.rpm
$ sudo rpm -ihv postgresql11-1c-11.5-19.el7.x86_64.rpm postgresql11-1c-libs-11.5-19.el7.x86_64.rpm postgresql11-1c-contrib-11.5-19.el7.x86_64.rpm postgresql11-1c-server-11.5-19.el7.x86_64.rpm
Задать пароль “postgres” пользователю postgres: Копировать в буфер обмена
$ sudo passwd postgres
$ su postgres
$ /usr/pgsql-11/bin/initdb -D /var/lib/pgsql/11/data
$ psql
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
Установить переменную JAVA_HOME: Копировать в буфер обмена
Установка сервера взаимодействия Копировать в буфер обмена
# useradd cs_user
# mkdir -p /var/cs/cs_instance
# chown cs_user:cs_user /var/cs/cs_instance
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs instance create —dir /var/cs/cs_instance —owner cs_user
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance service create —username cs_user —java-home $JAVA_HOME —stopped
# useradd hc_user
# mkdir -p /var/cs/hc_instance
# chown hc_user:hc_user /var/cs/hc_instance
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring hazelcast instance create —dir /var/cs/hc_instance —owner hc_user
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring hazelcast —instance hc_instance service create —username hc_user —java-home $JAVA_HOME —stopped
# useradd elastic_user
# mkdir -p /var/cs/elastic_instance
# chown elastic_user:elastic_user /var/cs/elastic_instance
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring elasticsearch instance create —dir /var/cs/elastic_instance —owner elastic_user
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring elasticsearch —instance elastic_instance service create —username elastic_user —java-home $JAVA_HOME —stopped
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance jdbc pools —name common set-params —url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance jdbc pools —name common set-params —username postgres
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance jdbc pools —name common set-params —password postgres
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance jdbc pools —name privileged set-params —url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance jdbc pools —name privileged set-params —username postgres
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance jdbc pools —name privileged set-params —password postgres
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance websocket set-params —hostname сs_host
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance websocket set-params —port 9094
cs_host — имя или IP-адрес компьютера, на котором установлен сервер взаимодействия и к которому будет подключаться клиентское приложение системы взаимодействия (система «1С:Предприятие»).
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring hazelcast —instance hc_instance service start
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring elasticsearch —instance elastic_instance service start
# /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring cs —instance cs_instance service start
Проверить, что все запустилось: Копировать в буфер обмена
При необходимости смотреть логи: Копировать в буфер обмена
# firewall-cmd —zone=public —add-port=9094/tcp —permanent
# firewall-cmd —reload
Настройка обмена файлами в системе взаимодействия
Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов. Хранилище должно поддерживать протокол S3 (V2 или V4).
Можно развернуть собственное хранилище:
Или подключиться к существующим:
- Amazon
- Amazon CDN
- Google Cloud
- Google Cloud CDN
- Croc Cloud
- Техносерв
Необходимо выбрать только один вариант использования хранилища файлов:
$ sudo mkdir -p /opt/minio
$ sudo chown user:user /opt/minio
$ sudo mkdir -p /var/minio
$ sudo chown user:user /var/minio
$ cd /opt/minio
$ wget https://dl.min.io/server/minio/release/linux-amd64/minio
$ sudo chmod +x minio
$ sudo firewall-cmd —zone=public —add-port=9000/tcp —permanent
$ sudo firewall-cmd —reload
Для доступа к серверу хранилища, необходимо задать логин и пароль в переменных среды MINIO_ACCESS_KEY и MINIO_SECRET_KEY, соответственно. Чтобы значения этих переменных устанавливалиь при старте, занесем их инициализацию в /etc/default.
Копировать в буфер обмена
$ sudo vi /etc/default/minio
$ sudo vi /etc/systemd/system/minio.service
[Service]
WorkingDirectory=/usr/local/
User=user
Group=user
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c «if [ -z \»$
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no
$ sudo systemctl enable minio.service
$ sudo systemctl start minio.service
В браузере перейдите по ссылке:
Создайте новое хранилище, например cs-bucket
Логин: значение переменной MINIO_ACCESS_KEY,
Пароль: значение переменной MINIO_SECRET_KEY
Для хранилища укажите, что оно работает в режиме «Read and Write».
На сервере взаимодействия выполните команду Копировать в буфер обмена
$ curl -Sf -X POST -H ‘Content-Type: application/json’ -d ‘< "type": "AMAZON", "baseUrl": "http://ИМЯ СЕРВЕРА ИЛИ IP:9000", "containerUrl": "http://ИМЯ СЕРВЕРА ИЛИ IP:9000/$
В данном примере будет использоваться хранилище Amazon
- В браузере открыть ссылку https://console.aws.amazon.com/s3
- Войти или создать аккаунт.
- Нажать кнопку Create bucket .
- Задать имя хранилища, например 1c-cs-bucket-2.
- Перейти по ссылке https://console.aws.amazon.com/iam/home
- В верхнем правом углу нажать на логин и в выпадающем меню выбрать My Security Credentials .
- Раскрыть пункт: Access keys (access key ID and secret access key) .
- Нажать Create New Access Key .
- Нажать Show Access Key .
- Скопировать себе Access Key ID и Secret Access Key. Эти данные понадобятся в запросе на добавление хранилища в базу данных.
Если вы планируете работать в web-клиенте, то необходимо настроить CORS:
$ curl -Sf -X POST -H ‘Content-Type: application/json’ -d ‘< "type": "AMAZON", "baseUrl": "https://s3.amazonaws.com", "containerUrl": "https://$
Подключение информационной базы к серверу взаимодействия
Подключение медиасервера для проведения видеоконференций
$ 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’
/distr
$ git clone https://gitlab.freedesktop.org/libnice/libnice.git
$ cd libnice
$ meson —prefix=/usr build && ninja -C build && sudo ninja -C build install
Установить пакет libmicrohttpd-0.9.59-2.el7.x86_64 Копировать в буфер обмена
$ wget http://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.59.tar.gz
$ tar xvf libmicrohttpd-0.9.59.tar.gz
$ cd libmicrohttpd-0.9.59
$ ./configure —libdir=/usr/lib64
$ make
$ sudo make install
$ sudo ldconfig
/distr
$ wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
$ tar xfv v2.2.0.tar.gz
$ cd libsrtp-2.2.0
$ ./configure —prefix=/usr —enable-openssl —libdir=/usr/lib64
$ make shared_library && sudo make install
Установить пакет libwebsockets Копировать в буфер обмена
/distr
$ git clone https://libwebsockets.org/repo/libwebsockets
$ cd libwebsockets
$ mkdir build
$ cd build
$ cmake -DLWS_MAX_SMP=1 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS=»-fpic» -DLIB_SUFFIX=64 ..
$ make && sudo make install
Установить медиасервер janus от компании 1С Копировать в буфер обмена
/distr
$ git clone https://github.com/1C-Company/janus-gateway
$ cd janus-gateway
$ sh autogen.sh
$ ./configure —disable-data-channels —disable-rabbitmq —disable-mqtt —prefix=/opt/janus —libdir=/usr/lib64
$ make
$ sudo make install
$ 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
Запуск janus в качестве службы Копировать в буфер обмена
$ 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
Открыть порт 8088 и все UDP порты. UDP порты можно ограничить диапазоном, указанном в настройке rtp_port_range (в файле janus.jcfg). Копировать в буфер обмена
$ sudo firewall-cmd —zone=public —add-port=8088/tcp –permanent
$ sudo firewall-cmd —zone=public —add-port=0-65535/udp –permanent
$ sudo firewall-cmd –reload
Подключение медиасервера к системе взаимодействия Копировать в буфер обмена
mediaserver — имя машины или IP-адрес сервера Janus.
Настройка видеоконференций в системе взаимодействия Копировать в буфер обмена
$ 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.10.2168.
Мы реализовали новый механизм, который назвали Система взаимодействия. Это платформенный механизм, передающий информацию между клиентскими приложениями и серверами 1С:Предприятия.
Система взаимодействия предназначена для автоматизации бизнес-процессов, или для помощи в осуществлении бизнес-процессов предприятия.
Взаимодействия могут быть как интерактивные, так и программные. Например, интерактивным взаимодействием может являться передача информации между пользователями при помощи сообщений, сгруппированных в обсуждения.
Система взаимодействия реализована в статусе бета-версии. Её функциональность, описанная далее, не является окончательной, а будет расширяться и совершенствоваться.
Зачем нужна система взаимодействия?
Система взаимодействия предоставляет несколько разных (по своему прикладному смыслу) видов интерактивного взаимодействия. Во-первых, вы можете создавать тематические обсуждения, посвященные какому-либо вопросу: мероприятиям, связанным с открытием нового магазина, вариантам проведения новогоднего праздника или грядущему совещанию у директора.
Во-вторых, вы можете обсуждать вопросы ведения учёта, связанные с конкретными объектами данных: накладными, товарами, поставщиками и т.д. При этом вся переписка будет отображаться в форме этих данных.
И, в-третьих, при наличии микрофона, вы можете звонить другим пользователям. А если у вас и вашего собеседника подключены веб-камеры, вы сможете ещё и видеть друг друга.
В данном случае у администратора отсутствует веб-камера, поэтому при видеозвонке отображается его аватар.
Архитектура системы
Система взаимодействия реализована в клиент-серверной архитектуре. Она состоит из двух частей. Клиентская часть реализована в 1С:Предприятии. Серверная часть представляет собой отдельный программный продукт 1С:Предприятие — Сервер взаимодействия, который может быть развернут в Интернете, или в локальной сети организации.
Использовать систему взаимодействия могут пользователи информационных баз 1С:Предприятия. Для этого информационная база должна быть зарегистрирована в сервере взаимодействия. Авторизацию осуществляет сервер 1С:Предпрития. Всё остальное платформа выполняет автоматически.
На момент написания этой статьи сервер взаимодействия не поставляется в виде отдельного продукта. Но для того, чтобы вы могли пользоваться новым механизмом, в Интернете, на аппаратных мощностях фирмы «1С», мы развернули экземпляр этого сервера, носящий название 1С:Диалог. В данный момент это публичный сервер, которым могут пользоваться все желающие. Мы планируем поддерживать его и в дальнейшем, но условия использования могут быть изменены.
Связь между клиентскими приложениями и сервером взаимодействия осуществляется по протоколу WebSocket. Этот протокол может использовать как открытую, так и защищённую передачу данных, поэтому взаимодействие, как через Интернет, так и в локальной сети, является достаточно безопасным.
Как «включить» систему взаимодействия?
Чтобы в интерфейсе 1С:Предприятия появились элементы системы взаимодействия, нужно зарегистрировать информационную базу в сервере взаимодействия. Это делается в режиме 1С:Предприятие с помощью стандартной функции Управление системой взаимодействия.
Тут вам нужно обратить внимание на то, что эта функция присутствует только в тех информационных базах, в которых созданы пользователи. Пока в информационной базе нет ни одного пользователя, эта стандартная функция будет недоступна.
В текущей реализации эта функция представляет собой простой диалог, с помощью которого вы можете отправить запрос на подключение к сервису 1С:Диалог, получить по почте код регистрации, и ввести его в качестве подтверждения.
Начиная с этого момента каждый пользователь, подключающийся к этой информационной базе, будет видеть элементы системы взаимодействия в своём интерфейсе. Соответственно, чтобы они появились в вашем интерфейсе, или в интерфейсе пользователей, которые уже работали в базе на момент регистрации, вам нужно перезапустить свои клиентские приложения.
Небольшое замечание хочется сделать по поводу адреса электронной почты. Система взаимодействия оперирует понятием абонент. Это физическое лицо или организация, от имени которого выполняется регистрация информационной базы в сервере взаимодействия. Схожее понятие используется и в технологии 1cFresh.
У одного абонента системы взаимодействия может быть зарегистрировано несколько информационных баз. Идентификатором абонента является его адрес электронной почты. При запросе регистрации, если в сервере ещё нет абонента с таким адресом, он создаётся автоматически.
Поэтому вам важно понимать, что адрес электронной почты, который вы указываете при регистрации (интерактивной, или программной), это не «какой-то любой адрес», который можно забыть. Это ключевой идентификатор, который может понадобиться вам для общения со службой поддержки, например.
В каком месте интерфейса находится система взаимодействия?
Интерфейсная часть системы взаимодействия реализована в интерфейсе Такси в тонком клиенте, веб-клиенте и в управляемом режиме работы толстого клиента. Для пользователей система взаимодействия обозначается словом Обсуждения. О том, что в информационной базе доступны обсуждения, вы можете узнать по нескольким признакам.
Во-первых, в центре оповещений появляется команда Обсуждения.
Во-вторых, в панели открытых появляется стандартная закладка Обсуждения.
В-третьих, в заголовке формы объекта, рядом с кнопкой закрытия, появляется команда Обсуждение.
Здесь вам нужно обратить внимание на то, что последняя команда появляется только в тех формах, которые не блокируют окно владельца или весь интерфейс. Как правило, это «содержательные» формы, в которых находится большое количество информации, они обладают собственным прикладным контекстом, в них «есть что обсудить».
В отличие от них формы, блокирующие окно владельца, используются в основном для отображения и редактирования второстепенных данных, не имеющих самостоятельного прикладного значения. Поэтому в таких формах механизм обсуждений не предусмотрен. Например, в форме склада.
Как видите, все инструменты для работы пользователя с сообщениями уже встроены в платформу и появляются автоматически. От вас, как от разработчиков, не требуется никаких действий для того, чтобы пользователи начали обмениваться сообщениями.
Единственное, что могут захотеть пользователи, это указать свои реквизиты в системе взаимодействия: номер телефона и адрес электронной почты. Для этого нужно кликнуть мышью на имени пользователя в заголовке главного окна.
Здесь же, кликнув мышью на стандартном аватаре, они могут заменить его своей фотографией. Но это необязательные действия. Обсуждения будут работать и без этого.
Типичные сценарии использования
Как мы уже рассказывали в самом начале статьи, есть несколько разных видов общения. Теперь мы остановимся на каждом из них подробнее.
Неконтекстное обсуждение
Любой пользователь информационной базы может создать несколько неконтекстных обсуждений. Каждое такое обсуждение является приватным. Это значит, что читать переписку и отправлять сообщения могут только участники данного обсуждения. Остальным пользователям информационной базы данное обсуждение недоступно.
Все неконтекстные обсуждения, в которых участвует пользователь, находятся в основной форме системы взаимодействия. Открыть эту форму можно либо кликнув на закладке Обсуждения в панели открытых, либо по команде Обсуждения из центра оповещений.
По команде +Новое создаётся новое обсуждение. Например, администратор может создать обсуждение, чтобы напомнить пользователям о грядущем совещании, и узнать их планы по участию в этом совещании.
Желательно (но не обязательно) указать тему обсуждения, и обязательно нужно выбрать участников. Подбор участников выполняется с помощью поиска, поэтому достаточно ввести фрагмент имени пользователя, а затем выбрать мышью подходящего. Когда все участники обсуждения указаны, нужно нажать кнопку Создать обсуждение.
Теперь можно вести переписку в этом обсуждении. Вы можете написать сообщение, и отправить его нажатием Enter. Также для отправки сообщения можно использовать кнопку Отправить в нижнем правом углу формы.
В результате каждый участник обсуждения получит оповещение. Оно, как и оповещения пользователя, будет отображено в правом нижнем углу экрана, а кроме этого оно попадёт в центр оповещений.
Если пользователь (в данном случае менеджер по продажам) находится за компьютером и готов принять участие в обсуждении, он может кликнуть по оповещению, и в основной форме системы взаимодействия написать своё сообщение.
В результате администратор, инициировавший это обсуждение, через некоторое время (по мере ответа пользователей) увидит такую переписку:
Аналогичным образом переписка будет выглядеть и у других участников этого обсуждения. Разница будет только в том, какие сообщения выделены цветом. Потому что цветом выделяются собственные сообщения пользователя.
Кликнув на имени пользователя у любого сообщения, можно увидеть реквизиты пользователя и его увеличенный аватар. Зелёная точка означает, что в данный момент пользователь подключён к информационной базе.
Контекстное обсуждение
Контекстные обсуждения, в отличие от рассмотренных выше, являются публичными. На них накладываются ограничения, соответствующие правам доступа на объект данных. То есть все пользователи информационной базы, которым система прав разрешает доступ к данному объекту данных, могут полноценно участвовать в его обсуждении.
Для каждого объекта данных предусмотрено единственное обсуждение. Поэтому ничего создавать не надо, достаточно просто открыть панель обсуждения в форме нужного объекта.
В ней можно написать сообщение, и отправить его клавишей Enter.
Это сообщение сможет прочитать любой пользователь, которому доступен товар Валенки. Но, во-первых, как «любой пользователь» узнает, что тут кто-то что-то написал? А во-вторых, менеджер по закупкам, очевидно, хочет обсудить валенки с конкретным пользователем, с продавцом. Поэтому, прежде чем отправить сообщение, он в поле Кому выбирает того пользователя, которого хочет оповестить о своём сообщении.
Дальше всё происходит так же, как и в предыдущем примере. Продавец получит оповещение. Если он рядом с компьютером, он отреагирует на него. Если же он в данный момент отсутствует, то оповещение исчезнет с экрана. Но, вернувшись к компьютеру, продавец увидит, что в центре оповещений есть новая информация.
По клику на оповещение платформа откроет ему форму того объекта, к которому относится данное оповещение.
Продавец нажмёт кнопку Ответить, напишет ответ, и отправит его. В результате менеджер по закупкам увидит такую переписку:
Отвечая в контекстном обсуждении в поле Кому можно подобрать нескольких пользователей, которых нужно оповестить о своём сообщении.
Как правило, обсуждение происходит в постоянном кругу участников. Поэтому, чтобы не подбирать каждый раз пользователей вручную, можно нажимать на кнопки Ответить и Ответить всем. В этом случае платформа будет автоматически подставлять в поле Кому пользователей из выбранного сообщения.
Как мы уже говорили, на контекстные обсуждения накладываются ограничения, соответствующие правам доступа на объект данных. Читать и писать могут все, кому системой прав разрешён доступ к этому объекту.
А раз так, то один из возможных сценариев работы заключается в том, что пользователь не принимает активного участия в обсуждении, но должен быть в курсе того, «что происходит с объектом». Как ему быть в этом случае? Постоянно открывать форму объекта и смотреть, не появилось ли там что-то новое и важное?
Специально для такого случая мы предусмотрели режим наблюдения. Этот режим включается кликом на колокольчик в заголовке обсуждения.
В режиме наблюдения пользователь автоматически будет получать оповещения о каждом новом сообщении в этом обсуждении. Даже в том случае, если он не указан среди тех, кого автор сообщения хотел оповестить.
Также нужно заметить, что отвечая в контекстном обсуждении, можно ничего не указывать в поле Кому. В этом случае сообщение появится в обсуждении, но никто из пользователей (кроме тех, кто наблюдает за этим обсуждением) не будет извещён об этом. Этот способ можно использовать в тех случаях, когда в прикладном решении уже существует собственная система оповещения, например, по электронной почте. Тогда пользователи, для реагирования на изменения, будут использовать привычную им бизнес-логику, а вот сам текст сообщений (который раньше каким-то образом хранился в информационной базе и отображался в форме) будет теперь храниться и показываться в форме средствами системы взаимодействия.
Видеозвонок
При наличии микрофонов, видеозвонки позволяют общаться голосом «один на один» с любым пользователем информационной базы. А при наличии веб-камер, собеседники могут ещё и видеть друг друга.
Видеозвонок можно выполнить, кликнув на имени пользователя в любом обсуждении и выбрав видеозвонок. В этом случае платформа сразу же начнёт установку соединения с выбранным пользователем.
Также видеозвонок можно выполнить из любого обсуждения, неконтекстного или контекстного. В этом случае нужно будет выбрать пользователя, которому адресован звонок.
В процессе установки соединения в окне видеозвонка отображается аватар пользователя. А в нижней части окна указывается ссылка на обсуждение. Она добавляется автоматически, каким бы образом звонок ни инициировался. В данном случае указана ссылка на обсуждение совещания у директора.
На стороне собеседника появляется входящий звонок. В нём, кроме вызывающего пользователя, также указана ссылка на обсуждение. Таким образом собеседник, если есть необходимость, (после ответа на звонок) может быстро открыть контекст разговора и познакомиться с ним.
После ответа на входящий звонок происходит общение голосом, при этом в окне звонка показывается изображение с веб-камеры собеседника. В примере ниже, как вы уже знаете, у администратора веб-камера не установлена, поэтому менеджер по закупкам видит только его аватар.
Если вызываемый собеседник отсутствует на рабочем месте и не может принять входящий звонок, то через некоторое время вызов будет автоматически прекращён, и у него появится оповещение о пропущенном звонке.
Если видеозвонок выполняется из обсуждения, то платформа автоматически предлагает выбрать собеседника из тех пользователей, которые в этом обсуждении участвуют. В данном случае это единственный пользователь, продавец. Но это не препятствует тому, чтобы в качестве собеседника вручную выбрать любого другого пользователя информационной базы, например, менеджера по продажам.
В заключение нужно сделать пояснение, касающееся бета-версии системы взаимодействия. В ней по-умолчанию функциональность видеозвонков автоматически не включается после регистрации информационной базы в сервере 1С:Диалог. Это связано с тем, что видеозвонки находятся в той стадии разработки, когда мы ещё не можем предоставлять их всем желающим без ограничений. Если вам необходима функциональность видеозвонков, мы можем включить её для вашей базы (баз) по индивидуальному запросу, но не безусловно, а исходя из имеющихся у нас возможностей и технических ограничений.
Область уведомлений
При работе тонкого клиента в Windows после установки соединения с сервером взаимодействия в области уведомлений Windows (system tray) отображается значок клиентского приложения. При получении нового уведомления картинка значка изменяется.
При двойном нажатии на значок активизируется главное окно клиентского приложения и, если есть уведомления, открывается центр уведомлений.
Неполадки
Поскольку сервер взаимодействия является внешним элементом архитектуры по отношению к информационной базе и клиентским приложениям, не исключена ситуация, когда он оказывается неработоспособным, или связь с ним нарушается. В этом случае элементы интерфейса, связанные с обсуждениями, никуда не исчезают, они остаются. А о том, что связь с сервером взаимодействия потеряна, сигнализирует красный треугольник на закладке Обсуждения в панели открытых.
Программная работа с системой взаимодействия
Во встроенном языке мы реализовали объектную модель для работы с системой взаимодействия. Она, в общем, проста и понятна. С помощью свойства глобального контекста СистемаВзаимодействия вы получаете МенеджерСистемыВзаимодействия, и дальше действуете в зависимости от того, что вам нужно.
Основным направлением использования этой объектной модели мы считаем тесную интеграцию системы взаимодействия с бизнес-процессами предприятия. Например, генерацию сообщений в зависимости от каких-то событий, которые происходят с данными в информационной базе.
Если говорить более подробно, то вы можете зарегистрировать информационную базу в сервере взаимодействия, или отменить регистрацию. Можете создать обсуждение и сообщение. Можете получить существующие обсуждения по некоторому отбору. Можете получить оповещения, адресованные текущему пользователю и так далее. В этом нет ничего сложного.
Зато в объектной модели есть одна интересная особенность, о которой хочется рассказать подробнее. Теперь, помимо учётной записи пользователя в информационной базе, появляется ещё одна его учётная запись в системе взаимодействия.
Учётная запись в информационной базе представляется объектом встроенного языка ПользовательИнформационнойБазы. А учётная запись в системе взаимодействия представляется объектом встроенного языка ПользовательСистемыВзаимодействия. И тот и другой объекты указывают на одного и того же пользователя (человека). Более того, эти объекты всегда однозначно связаны друг с другом и, зная один из них, вы всегда можете получить другой.
Поэтому теперь, когда вам нужен какой-то пользователь из имеющихся, или текущий пользователь, вы получаете его в одном или другом механизме, в зависимости от своей задачи.
Например, учётную запись текущего пользователя (человека) в информационной базе вы можете получить так:
А учётную запись того же самого пользователя (человека) в системе взаимодействия, так:
Зная учётную запись пользователя (человека) в информационной базе, вы можете получить соответствующую ей учётную запись этого пользователя (человека) в системе взаимодействия:
Физически это выглядит следующим образом.
Когда пользователь (человек) аутентифицируется (вводит логин/пароль, или другими способами) в 1С:Предприятии, он сопоставляет себя с некоторой учётной записью, имеющейся в информационной базе. Дальше запускается сеанс. Если это первый запуск сеанса этого пользователя после того, как информационная база была зарегистрирована в сервере взаимодействия, то платформа автоматически создаёт для этого пользователя информационной базы учётную запись в сервере взаимодействия. Таким образом получается, что эти записи жёстко связаны друг с другом и указывают на одного и того же пользователя (человека).
Планы и обратная связь
Как мы уже говорили в начале, бета-версия системы взаимодействия содержит только часть функциональности, которую мы собираемся реализовывать. Наши планы заключаются в том, чтобы предоставить возможность удобной интеграции системы взаимодействия с бизнес-процессами автоматизируемого предприятия, реализовать на её основе новые подходы к автоматизации тех задач учёта, которые обычно сопровождаются взаимодействием пользователей между собой.
При этом, конечно, мы будем уделять внимание реализации функционала, удобного и привычного для пользователей других систем взаимодействия, мессенджеров и пр.
Также нас интересует использование системы взаимодействия в реальной среде, потому что существует множество нюансов, связанных с разными браузерами, прокси-серверами и так далее.
И, конечно же, после выпуска этого функционала мы будем готовы рассматривать и обсуждать ваши замечания и пожелания к этой системе.
Источник