Нет соединения с сервером взаимодействия 1с
В начале апреля фирма «1С» выпустила новую версию платформы – 8.3.10.
Новые возможности получились весьма «вкусными». В этой статье мы рассмотрим Систему взаимодействий.
Если коротко, то это Skype (или Telegram) внутри конфигурации 1С. О таком корпоративном мессенджере давно мечтали руководители и IT-шники :)
И вот чудо свершилось – теперь можно звонить, общаться текстом и устраивать конференции между сотрудниками не покидая 1С. И все это может привязано к объектам – конкретным документам, договорам, контрагентам, …
Начнем рассмотрение Системы взаимодействия с самых основ.
Концепция
Сначала давайте рассмотрим, что из себя представляет «1С:Предприятие». Этот программный комплекс построен по классической трёхзвенной архитектуре. Представить его можно в следующем виде:
Есть клиентская часть, серверная часть и база данных. Передача данных между клиентом и сервером происходит при помощи серверного вызова, а доступ к базе данных возможен только со стороны сервера.
Подробнее про серверные вызовы можно прочитать в статье «Как работает серверный вызов в 1С». Для данного же материала важно отметить следующий факт – инициировать серверный вызов для передачи данных возможно только на клиентской части.
Но давайте вернёмся к «Системе взаимодействий»! Для начала обратимся к документации и посмотрим – что же скрывается под таким громким названием?
Под термином «видеозвонок» понимается любой возможный вариант общения двух пользователей, который включает в себя как только голосовой канал общения, так и полноценный видеозвонок (голосовая информация и изображение).
Исходя из описания, получается что фирма «1С» встроила в платформу «мессенджер» для общения пользователей между собой. «Наконец-то!» – воскликнут одни. «Зачем?» – вопрошают другие. Оставим эту дискуссию для комментариев, а пока продолжим рассматривать «Систему взаимодействий» дальше.
Логично, что общение имеет смысл в том случае, когда в системе работают два или более пользователей. В среде «1С:Предприятие» для каждого пользователя организуется своя рабочая область. Поэтому [в клиент-серверном варианте] несколько клиентских подключений к информационной базе можно представить следующим образом:
Но! Клиентские процессы работают каждый в своей рабочей области и не имеют пересечений. Единственная возможность передачи информации – через серверную часть.
Рисунок 3 – Схема запуска клиентской частью обработчика ожидания для периодического запроса к серверной части
Как видим, общение клиентских частей таким образом возможно, но оно имеет свои особенности.
Но самое главное: увеличится нагрузка на самое узкое место системы – соединение между клиентом и сервером (особенно в момент передачи потока медиа). Поэтому фирме «1С» надо было найти иное решение задачи взаимодействия пользователей.
Понятное дело, что пользователей может быть больше двух. А значит, организовывать прямой канал «клиент» – «клиент» нецелесообразно, нужен некий «маршрутизатор» – серверная часть «Системы взаимодействий».
Встроить этот «маршрутизатор» в серверную часть «1С:Предприятие», по уже понятным нам причинам, нецелесообразно. Поэтому («в-третьих»), дополнительно необходимо определиться с расположением серверной части «Системы взаимодействий».
Итак, у нас получилось несколько «пазлов», сложив которые, мы увидим полную картину о «Системе взаимодействий». Давайте прямо сейчас это и сделаем!
Серверную часть «Системы взаимодействий» разработчики фирмы «1С» реализовали в виде отдельного программного продукта «1С:Предприятие – Сервер взаимодействия», который в будущем может быть развернут как в рамках локальной сети конкретной организации, так и в интернете в виде сервиса. Клиентскую часть системы разработчики встроили в платформу «1С:Предприятие».
Вопрос с оперативной двусторонней передачей информации между клиентом и сервером «Системы взаимодействий» решился без «изобретения велосипеда»: на помощь пришёл современный протокол WebSocket (далее WS). В качестве «вишенки на торте» – этот протокол позволяет передавать информацию в зашифрованном виде, что обеспечивает защиту передаваемой информации.
Стоит отметить, что при совершении видеовызовов по протоколу WS передается лишь служебная информация для инициализации звонка. Передача видео происходит с использованием других технологий, встроенных в «Систему взаимодействий».
Сложив всё вместе, получаем следующую схему:
Получается, для того чтобы этот функционал начали активно использовать даже те, кто работает в программах «1С:Предприятие» давно, необходимо, чтобы он был единым целым с существующей системой, а не «чем-то сбоку». А для этого необходимо, чтобы «Система взаимодействий» «видела» пользователей информационной базы.
Но как «Система взаимодействий» узнает о пользователях информационной базы, если это отдельный сервис?
Для каждого пользователя в информационной базе 1С создается новый пользователь в «системе взаимодействия». Это происходит автоматически при первой аутентификации пользователя информационной базы после подключения её к сервису. При этом уникальный идентификатор нового адресата для взаимодействий сохраняется как в базе данных, так и в сервисе.
Получается, что все желающие будут пользоваться одним «маршрутизатором»? Как это возможно, как не запутаться – где чья информационная база и кому можно управлять её подключением к сервису?
Идентификация абонента выполняется по адресу электронной почты, и он может являться владельцем одной или нескольких информационных баз, подключенных к «Системе взаимодействий».
Неконтекстные обсуждения представляют собой чаты общего характера, доступные только тем пользователям, которые были добавлены в беседу. При помощи них можно устраивать групповые совещания с ограниченным кругом участников.
Такой подход позволяет закрыть все потребности в удалённом общении пользователей – от «Марья Ивановна, посмотри отгрузку номер 330 от 31 декабря – там цена почему-то занижена…» до управленческих конференций.
Стоит отметить, что пока нет возможности выполнять групповые видеовызовы, и будет ли развитие в этом направлении – информации на текущий момент нет.
Внимание! К моменту публикации этой статьи фирма «1С» уже опубликовала некоторые особенности платформы 8.3.11, в которых сообщается об изменении механизма работы «Системы взаимодействий» в части видеовызовов.
В платформе 8.3.10 технология видеозвонков была реализована при помощи центрального видео-сервера, встроенного в сервер «Системы взаимодействий». Скорее всего, тестирование данного механизма показало большую нагрузку на серверную часть «Системы взаимодействий» при совершении пользователями звонков. И уже в следующей версии платформы [8.3.11] видеовызовы будут выполняться по технологии peer-to-peer.
Также, разработчики «приоткрыли завесу» над технологиями, которые они использовали при создании «Системы взаимодействий». Например, для хранения сессий пользователей, подписок на события и прочей служебной информации они используют распределенное хранилище Hazelcast.
Ну что, наверное уже хочется попробовать «Систему взаимодействий»? Сейчас мы расскажем, как начать её использовать.
Подключение
Начать работать с «Системой взаимодействий» можно на любой, даже пустой, конфигурации, если используется платформа «8.3.10». Для этого необходимо убедиться, что свойство Режим совместимости установлено в значение Не использовать:
Когда условия в информационной базе соблюдены, можно начинать использовать «Систему взаимодействий». Для этого необходимо её сначала подключить к сервису «1С:Диалог». Управление подключением к «Системе взаимодействий» производится в пользовательском режиме «1С:Предприятие» при помощи соответствующей стандартной функции, доступной через главное меню программы в разделе Все функции:
В случае, если информационная база ещё не подключена к сервису «1С:Диалог», откроется следующая форма:
Когда вы укажете адрес электронной почты, на который сервис «1С:Диалог» сможет выслать регистрационную информацию, на него придёт письмо примерно следующего содержания:
Цифровой код из письма (на рисунке подсвечен желтым цветом), необходимо использовать для завершения регистрации при помощи диалогового окна подтверждения регистрации следующего вида:
Интуитивно понятно, что в поле Адрес электронной почты абонента необходимо указать электронную почту, которая была использована на первом шаге регистрации, а в поле Код регистрации – код из письма. При указании некорректных данных в этих полях ввода «Система взаимодействий» вернёт ошибку «Отказано в доступе» и регистрация не будет завершена.
Поле Наименование информационной базы заполняется произвольными символами (как показала практика, можно использовать даже спец. символы).
Напомню, что идентификация информационной базы в «Системе взаимодействий» происходит по Уникальному идентификатору, который автоматически создаётся в момент регистрации, хранится и в «Системе взаимодействий» и в базе данных и не может быть установлен или изменён самостоятельно. Символы, введённые в поле Наименование информационной базы, никакого влияния на это не оказывают.
После этого в текущем сеансе «1С:Предприятие» объекты «Системы взаимодействий» автоматически активизируются без перезапуска клиента. Остальным пользователям для получения возможности участвовать в обсуждениях и получать/выполнять звонки, необходимо выполнить перезапуск сеанса работы в информационной базе.
- Регистрационный номер лицензионной программы 1С и ИНН организации, на которую приобреталась эта программа
- Электронную почту абонента сервиса
- Планируемое количество пользователей.
Каждая заявка анализируется, и по результатам рассмотрения открывается доступ к видео-вызовам или присылается отказ.
Доступ к тестированию видеозвонков открывается абоненту и действует на все информационные базы, подключенные этим абонентом к сервису.
Использование «Системы взаимодействий» «в картинках»
А теперь заглянем в использование системы. Но только совсем чуть-чуть… Как говорится – «для затравочки»!
Настройка 1С:Сервера взаимодействия и медиасервера
$ 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 passwd postgres
$ su postgres
$ /usr/pgsql-11/bin/initdb -D /var/lib/pgsql/11/data
$ psql
$ exit
$ sudo systemctl enable postgresql-11
$ sudo systemctl start postgresql-11
Проверить, что все запустилось: Копировать в буфер обмена
При необходимости смотреть логи: Копировать в буфер обмена
Настройка обмена файлами в системе взаимодействия
Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов. Хранилище должно поддерживать протокол S3 (V2 или V4).
Можно развернуть собственное хранилище:
Или подключиться к существующим:
- Amazon
- Amazon CDN
- Google Cloud
- Google Cloud CDN
- Croc Cloud
- Техносерв
Необходимо выбрать только один вариант использования хранилища файлов:
$ 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 \"$\" ]; 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
В данном примере будет использоваться хранилище Amazon
Если вы планируете работать в web-клиенте, то необходимо настроить CORS:
Подключение информационной базы к серверу взаимодействия
Подключение медиасервера для проведения видеоконференций
$ sudo yum install git
$ mkdir ~/distr
$ cd ~/distr
$ 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 ~/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
$ sudo mkdir /var/log/janus
$ sudo vi /opt/janus/etc/janus/janus.jcfg
$ 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 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.
Для проверки, что конференция идет через медиасервер, необходимо создать конференцию с числом участников >= значения параметра conference-server-based-threshold. После того, как все участники конференции ответят на звонок, выполнить команду:
Разберем ошибку с кодом « 10061 (0х0000274D) », когда 1С отказывает в подключении клиента к серверу. В чем может быть причина.
Техническое описание
server_addr=tcp:// descr=:10061(0х0000274D): Подключение не установлено, т. к. конечный компьютер отверг запрос на подключение;
Описание проблемы
Клиент 1С не может установить соединение с сервером. Что-то «мешает».
Возможные проверки
- Проверьте работу «Агента сервера 1С:Предприятия 8.3» — служба должна быть в состоянии «Выполняется», а также обратите внимание на диапазоны используемых портов (они прописаны в параметрах запуска службы — например, по умолчанию — « -regport 1541 -port 1540 -range 1560:1591 »).
- На сервере 1С должно быть разрешено сетевое обнаружение . Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом\Дополнительные параметры общего доступа.
- Настройки брандмауэра на сервере — порты (п. 1) должны быть разрешены в правилах и открыты для входящих подключений . Если роль брандмауэра выполняет антивирус или другое ПО — смотрите настройки вашего сетевого экрана. Или временно отключите брандмауэр (антивирус), чтобы исключить влияние этих правил.
- Рекомендуется понизить приоритет ipv6 , оставить главным ipv4. Особенности и правильный способ отключения через реестр — в статье . После настройки выполните команду ping по имени/адресу сервера — должен отвечать ipv4.
- На клиенте 1С выполните проверку доступности порта с помощью консольной команды. Она покажет, есть ли соединение на порт сервера.
6. Перезагрузите сервер 1С . Бывают случаи, когда требуется перезагрузка или некорректно удалено защитное ПО, которое может блокировать порты.
✅ Успехов вам. Проверяйте до победы — пусть все получится, и подключения к серверу 1С восстановятся.
А потом расскажите, что именно помогло в вашем случае. Это будет полезно для других, кто столкнется с подобной ошибкой.
⚡ Подписывайтесь на канал или задавайте вопрос на сайте — постараемся помочь всеми техническими силами. Безопасной и производительной работы в Windows и 1С.
Система взаимодействия — это механизм появившийся в технологической платформе 8.3.10. Это механизм позволяет клиентским приложениям, серверу и пользователям взаимодействовать между собой. В этой статье я попробую рассказать обо всем этом более подробно.
Общая информация
Итак, как уже было сказано выше, система взаимодействия позволяет осуществлять различные виды взаимодействия между приложениями, сервером и пользователями. Цель создания такой системы — упростить автоматизацию бизнес-процессов и предоставить пользователям простое средство коммуникации.
По видам, взаимодействия можно разделить на:
- Не интерактивные — когда информацией обмениваются только подсистемы прикладного решения (без участия живых людей);
- Только интерактивные — когда все участники взаимодействия являются живыми людьми;
- Смешанные — когда человек общается с подсистемой прикладного решения (своего рода робот, отвечающий на запросы).
Неконтекстные обсуждения — не привязанные к какому-либо объекту информационной базы. Участвовать могут любые пользователи выбранные инициатором обсуждения. Обсуждений такого вида может быть сколько угодно.
Контекстные обсуждения — привязаны к конкретному объекту информационной базы. Доступ к обсуждению имеют те пользователи, которые имеют доступ к обсуждаемому объекту. Для каждого объекта может существовать только одно обсуждение.
Сервер взаимодействия
Для начала раздобудем все, что потребуется (устанавливать в этом же порядке):
-
; ;
- Ring;
- Сервер взаимодействия (64-bit);
Ring и сервер взаимодействия
Сервер взаимодействия включает в себя севера Hazelcast и Elasticsearch, которые можно скачивать и устанавливать отдельно, но в нашем случае я выбрал общий вариант.
Во время установки потребуется ввести логин и пароль от учетной записи PostgreSQL.
Проверка состояния сервера взаимодействий
Запустить и остановить компоненты системы можно как и все остальные службы:
Службы сервера взаимодействий
А также при помощи утилиты 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:
Подключение и использование
Для подключения к собственному серверу взаимодействий потребуется специальная обработка — CollaborationSystemRegister.epf , которую можно скачать там же, где и сам сервер. В этой обработке нужно указать адрес для подключения (который настраивается в файле com._1c.ecs.websocket.yml ) и адрес эл. почты:
Доброго времени суток друзья, столкнулся с проблемой, не могу разобраться с ее решением. Обо всем по порядку.
Не так давно, мы начали переход на 1С БП 3.0 и все что на ней основано, по сравнению с 2.0 тормозить она стала раз в 5 больше, базы открывались от 2 до 5 минут! Решение пришло быстро, MS SQL Server.
Так как для меня это первый опыт его настройки, начал я тренироваться в виртуальной машине Hyper-V, все работало более менее, пока я не загрузил туда БД сельхоз отдела, примерно через 2 - 3 часа работы сервер перестает работать, базы не подключается, даже напрямую на этом же сервере. В локальной сети выходит ошибка "1541 descr = сервер не доступен (не отвечает, завершается аварийно или порт занят другим приложением". Сначала я грешил на сетевую карту, потом на брандмауер (его отключение тоже не помогло), и вот вчера я взял физический сервер, все настроил установил, перенес базы и буквально час назад та же беда! Все драйвера обновлены, мощности сервера должно хватать (Xeon X5606 2.13 Ghz/24Gb RAM DDR3 1333/LAN 1Gb) у сети топология "Звезда". Последнее на что грешу то что сервер не включен в домен Active Directory, но тогда почему и на самом сервере база отваливается?
Кратко о ПО:
1С Предприятие 8.3.8.2088
MS SQL Server 2014 SP1
Windows Server 2008R2
Буду рад любому совету.
Дополнено:
Аналогичная проблема проявляется на Debian. С одной базой УТ10 работает нормально. При переносе старой БД (бухгалтерия) с файлового варианта на SQL (postgres) периодически раз в 1-2 недели базы становятся недоступными до перезапуска службы srv1cv83. Есть ощущение что чем больше баз переносится тем меньше срок работы до перезапуска, так при переносе 5 БД срок работы был 2-3 дня.
К одной базе УТ10 доступ осуществляется локально (на одной машине), при добавлении других баз работа с ними начинается через клиентов по сети, но в момент сбоя базы недоступны ни в каком виде до перезапуска службы srv1cv83.
В технологическом журнале из подозрительного можно выделить только следующее:
Читайте также: