1С СЕРВЕР ВЗАИМОДЕЙСТВИЯ: ЧТО ЭТО, КОМПОНЕНТЫ И УСТАНОВКА

1С СЕРВЕР ВЗАИМОДЕЙСТВИЯ: ЧТО ЭТО, КОМПОНЕНТЫ И УСТАНОВКА

Сервер взаимодействия — что за зверь?

Сервер взаимодействия, система взаимодействия — это механизм, позволяющий обмениваться сообщениями и событиями между клиентскими приложениями, сервером 1С:Предприятия и пользователями одной или нескольких информационных баз в реальном времени. На нём построены чаты 1С, уведомления о событиях и push-подписки.

В состав дистрибутива входят три компонента:

  • Сервер системы взаимодействия — ядро, принимает WebSocket-соединения от клиентов.
  • Распределённое хранилище Hazelcast. В нём хранятся сессии пользователей, подписки на события, очереди сообщений.
  • Поисковый кластер Elasticsearch. Используется для подбора пользователей и полнотекстового поиска по истории сообщений.

Сервер взаимодействия можно установить на Windows или Linux. Под Windows в дистрибутиве есть программа-инсталлятор, которая ставит все три компонента на одну машину и стандартным образом настраивает их между собой — самый простой вариант для старта. Под Linux компоненты разворачиваются отдельными пакетами вручную.

Способы установки — что выбрать

У сервера взаимодействия четыре типовых сценария развёртывания. Ниже — короткое сравнение, у каждого варианта есть отдельная подробная инструкция:

  • Windows Server (этот материал, раздел ниже) — официальный инсталлятор с GUI, минимум ручной настройки. Подходит, если у вас уже есть инфраструктура на Windows Server и не хочется разбираться с Linux-командами.
  • Ubuntu Server (без Docker) — установка deb-пакетами напрямую на голый Linux, полный контроль над каждым сервисом (OpenJDK, PostgreSQL, Hazelcast, Elasticsearch по отдельности). Подходит, если хотите управлять сервисами через systemd напрямую.
  • Docker — Dockerfile + docker-compose, всё поднимается одной командой, легко переносить между серверами и включать в CI/CD.
  • Yandex Cloud — не установка с нуля, а переезд уже работающего сервера (обычно с Windows) на Ubuntu-ВМ в облаке, с переносом истории сообщений.

Отдельно — обмен файлами через Amazon S3: это не способ установки, а надстройка над уже работающим сервером взаимодействия для передачи файлов через объектное хранилище.

Лицензирование и цена

Сервер взаимодействия распространяется в составе технологической платформы 1С:Предприятие 8 и требует действующей лицензии на сервер 1С — отдельно «лицензия на сервер взаимодействия» не продаётся. Вопрос обычно не «сколько стоит сервер взаимодействия», а «какая лицензия сервера 1С нужна, чтобы он заработал». Актуальные цены и условия поставки уточняйте в официальном прайс-листе фирмы «1С» или у своего партнёра-франчайзи — эти цифры меняются, поэтому здесь мы их сознательно не приводим.

Установка на Windows Server

Вот и я в своё время решил разобраться с этой системой. Скачал официальный дистрибутив 1С:Сервер взаимодействия, посмотрел ролики по установке — развернул чистую виртуалку и повторил шаги. Сходу ничего не заработало.

Прогнал по инструкции с ИТС — тоже мимо. Попробовал другую версию дистрибутива — не завелась. Начал разбираться в логах и обнаружил, что после установки инсталлятором не создаётся один из конфигурационных файлов — из-за этого сервис не мог подняться. Проблема решается вручную через утилиту ring, которая идёт в комплекте с дистрибутивом.

Устанавливать будем сервер взаимодействия версии 8.0.15 (платформа 1С — 8.3.17 и новее). Официальный дистрибутив для Windows скачивается с сайта ИТС и запускается обычным GUI-мастером — он ставит сервер, Hazelcast и Elasticsearch на одну машину и настраивает их между собой автоматически.

Типичная проблема после установки: не настроен WebSocket

Если после установки инсталлятором сервис поднимается, но клиенты не могут подключиться — почти наверняка не заданы параметры WebSocket-сервера. Задаются они через утилиту ring из командной строки:

ring cs --instance cs websocket set-params --hostname localhost 
ring cs --instance cs websocket set-params --port 9000 

После этого проверьте, что сервис поднялся, обратившись к health-эндпоинту:

http://localhost:8087/rs/health

Если в ответ приходит JSON со статусом "status":"UP" — сервис работает. Если не отвечает вовсе — проверьте те же параметры WebSocket и посмотрите логи сервиса; похожая диагностика подробно разобрана в инструкции по Ubuntu — там процесс полностью ручной и каждый шаг виден в консоли, что удобно и для диагностики похожих проблем на Windows.

FAQ

Сервер взаимодействия — это то же самое, что сервер 1С:Предприятия?
Нет. Сервер 1С:Предприятия обслуживает информационные базы и бизнес-логику конфигураций. Сервер взаимодействия — отдельный сервис для обмена сообщениями, подписок и уведомлений между клиентами; он подключается к информационной базе, но не заменяет собой рабочий сервер 1С.

За что отвечает сервер взаимодействия в связке с СУБД?
Сам сервер взаимодействия не хранит бизнес-данные в СУБД информационной базы — он использует собственное хранилище (PostgreSQL для очереди и истории сообщений в связке с Hazelcast и Elasticsearch, см. раздел «Из чего состоит» выше). С основной СУБД информационной базы 1С он напрямую не связан.

Можно ли поставить сервер взаимодействия без Docker и без облака?
Да, это самый гибкий вариант — см. установку на голый Ubuntu Server.

Нужен ли отдельный сервер, или можно на той же машине, где стоит 1С?
Технически можно развернуть на одной машине с сервером 1С, но Hazelcast и Elasticsearch заметно нагружают память и диск — на продакшене с активной перепиской лучше выносить сервер взаимодействия на отдельную виртуалку.