1cdialog com не работает

Система взаимодействия в 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/:

Ring и сервер взаимодействия

Сервер взаимодействия включает в себя севера Hazelcast и Elasticsearch, которые можно скачивать и устанавливать отдельно, но в нашем случае я выбрал общий вариант.

Во время установки потребуется ввести логин и пароль от учетной записи PostgreSQL.

После установки (если все пройдет нормально) все необходимые сервисы будут запущены, проверить это можно зайдя по адресу http://localhost:8087/rs/health . Если все нормально, то результат будет примерно таким:

Проверка состояния сервера взаимодействий

Запустить и остановить компоненты системы можно как и все остальные службы:

Службы сервера взаимодействий

А также при помощи утилиты Ring:

ring hazelcast —instance service start(stop)
ring elasticsearch —instance service start(stop)
ring cs —instance service start(stop)

, , — название экземпляра соответствующего сервера.

Настройки сервера взаимодействий в моем случае находятся тут:

В этой папке находится достаточно много файлов и соответственно немало настроек, описывать которые в этой статье я не буду, ибо статья обзорная. Небольшие изменения внесу только в файл com._1c.ecs.websocket.yml :

Настройка WebSocket

Изменить параметры можно при помощи утилиты Ring. Подробнее об имеющихся параметрах можно узнать на сайте ИТС или из справки утилиты Ring:

Утилита Ring

Подключение и использование

Для подключения к сервису 1cDialog.com нужно пройти в меню «Все функции»-«Стандартные»-«Управление системой взаимодействия». В открывшемся окне нужно указать адрес эл. почты (валидный), на него пришлют код регистрации, этот код нужно вставить в соответствующее поле и нажать кнопку «Зарегистрировать».

Регистрация в сервисе 1cDialog.com

Для подключения к собственному серверу взаимодействий потребуется специальная обработка — CollaborationSystemRegister.epf , которую можно скачать там же, где и сам сервер. В этой обработке нужно указать адрес для подключения (который настраивается в файле com._1c.ecs.websocket.yml ) и адрес эл. почты:

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

Очевидное использование системы взаимодействия (разнообразное общение между пользователями) нас не интересует. Рассмотрим возможности которые предоставляет свойство глобального контекста СистемаВзаимодействия. В качестве примера рассмотрим создание простого каркаса для бота, который реагирует на команды пользователей. Под командами пользователей подразумеваются сообщения какого-то определенного вида. Итак, в модуль исполняемый на клиенте поместим код такого вида:

Источник

Настройка 1С:Сервера взаимодействия


Что необходимо


  1. PostgreSQL – https://releases.1c.ru/project/AddCompPostgre (версия >=» 9.5)
  2. Сервер системы взаимодействия — https://releases.1c.ru/project/CollaborationSystem

Минимальный размер оперативной памяти – 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)

$ sudo yum install -y java-1.8.0-openjdk

  • Скачать дистрибутивы (версии могут отличаться):
  • $ tar xvzf centos_7.7.1908.x64.tar.gz

    $ tar xvjf postgresql_11.5_19.1C_x86_64_rpm.tar.bz2

    Установка пакетов сервера взаимодействия:
    Копировать в буфер обмена

    # rpm -ihv 1ce_cs_elasticsearch_5.6.12_12.x86_64.rpm 1ce_cs_server_7.0.25_1.x86_64.rpm 1ce_cs_hazelcast_3.9.4_1.x86_64.rpm 1c_enterprise_ring_0.8.2_1.x86_64.rpm

    # rpm -ihv libicu-50.2-3.el7.x86_64.rpm libxslt-1.1.28-5.el7.x86_64.rpm
    # 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:
    Копировать в буфер обмена

    $ /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
    # systemctl enable postgresql-11
    # systemctl start postgresql-11

    Установка сервера взаимодействия
    Копировать в буфер обмена

    # useradd cs_user
    # mkdir -p /var/cs/cs_instance
    # chown cs_user:cs_user /var/cs/cs_instance
    # /opt/1C/1CE/x86_64/ring/ring cs instance create —dir /var/cs/cs_instance —owner cs_user
    # /opt/1C/1CE/x86_64/ring/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/x86_64/ring/ring hazelcast instance create —dir /var/cs/hc_instance —owner hc_user
    # /opt/1C/1CE/x86_64/ring/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/x86_64/ring/ring elasticsearch instance create —dir /var/cs/elastic_instance —owner elastic_user
    # /opt/1C/1CE/x86_64/ring/ring elasticsearch —instance elastic_instance service create —username elastic_user —java-home $JAVA_HOME —stopped

    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance jdbc set-params —url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance jdbc set-params —username postgres
    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance jdbc set-params —password postgres
    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance jdbc-privileged set-params —url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance jdbc-privileged set-params —username postgres
    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance jdbc-privileged set-params —password postgres

    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance websocket set-params —hostname
    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance websocket set-params —port 8087

    — имя или IP-адрес компьютера, на котором установлен сервер взаимодействия и к которому будет подключаться клиентское приложение системы взаимодействия (система «1С:Предприятие»).

    # /opt/1C/1CE/x86_64/ring/ring hazelcast —instance hc_instance service start
    # /opt/1C/1CE/x86_64/ring/ring elasticsearch —instance elastic_instance service start
    # /opt/1C/1CE/x86_64/ring/ring cs —instance cs_instance service start

    /var/cs/cs_instance/logs/
    /var/cs/hc_instance/logs/
    /var/cs/elastic_instance/logs/

    # firewall-cmd —zone=»public —add-port=8087/tcp» —permanent

    Настройка обмена файлами в системе взаимодействия

    Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов.Хранилище должно поддерживать протокол S3 (V2 или V4).

    Можно развернуть собственное хранилище:

    Или подключиться к существующим:

    1. Amazon
    2. Amazon CDN
    3. Google Cloud
    4. Google Cloud CDN
    5. Croc Cloud
    6. Техносерв

    Необходимо выбрать только один вариант использования хранилища файлов:

    $ 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

    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

    [Service]
    WorkingDirectory=/usr/local/
    User=user
    Group=user
    EnvironmentFile=/etc/default/minio
    ExecStartPre=/bin/bash -c «if [ -z \»$\» ]; then echo \»Variable MINIO_VOLUMES not set in /etc/default/minio\»; exit 1; fi»
    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».

    Для добавления хранилища файлов в базу сервера взаимодействия:

    $ 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);

    $ psql -U postgres —dbname=cs_db —file=/tmp/create_bucket.sql

    Если вы планируете работать в web-клиенте, то необходимо настроить CORS:

    • Откройте хранилище в браузере (или перейдите по ссылке https://console.aws.amazon.com/s3/buckets/ /?region=»eu-west-1)
    • Permissions / CORS Configuration
    • Настройка с максимальным уровнем доступа: Копировать в буфер обмена

    Для добавления хранилища файлов в базу сервера взаимодействия:

    Источник

    Оцените статью