Обсуждения, звонки и чат-боты в 1С: как устроен сервер взаимодействия и когда ставить свой
Содержание
Сервер взаимодействия 1С — отдельное приложение, которое обслуживает систему взаимодействия платформы 1С:Предприятие 8.3: обсуждения, личные сообщения, уведомления, аудио- и видеозвонки, чат-ботов и связь с внешними мессенджерами. Данные базы он не синхронизирует и документы между базами не передаёт.
Самое частое заблуждение звучит так: «сервер взаимодействия нужен для обмена данными между базами». Нет. Для обмена документами и справочниками служат планы обмена, HTTP- и веб-сервисы, 1С:Шина. Сервер взаимодействия работает с людьми и сообщениями, а не с проводками. Он нужен, чтобы пользователи разных баз и рабочих мест общались прямо из 1С, а внешние каналы вроде Telegram приходили в программу как обычные обсуждения.
Что такое сервер взаимодействия и зачем его ставят
Система взаимодействия появилась в платформе 8.3.10. С тех пор в типовых конфигурациях на БСП есть «Обсуждения»: можно написать коллеге, обсудить конкретный документ, позвонить по видео, не выходя из программы.
Сама платформа эти сообщения не хранит. Ей нужен внешний сервер, который:
- 💬 принимает и раздаёт сообщения между пользователями;
- 🗂 хранит историю обсуждений и вложения;
- 🔔 доставляет уведомления в реальном времени, без перезапуска клиента;
- 📞 соединяет участников аудио- и видеозвонков;
- 🤖 связывает базу с внешними каналами: мессенджерами и чат-ботами.
Вариантов сервера два:
| Вариант | Где работает | Кто обслуживает | Когда подходит |
|---|---|---|---|
| Облачный сервис 1С:Диалог | Серверы фирмы 1С | Фирма 1С | Небольшая компания, есть выход в интернет |
| Свой 1С:Сервер взаимодействия | Ваш сервер или ВМ | Ваш администратор | Закрытый контур, требования к хранению данных, много пользователей |
Свой сервер — это и есть продукт «1С:Сервер взаимодействия». Он ставится отдельно от сервера 1С:Предприятия и может жить на другой машине.
Из чего состоит сервер взаимодействия
Внутри это не одна служба, а связка компонентов. Каждый отвечает за своё, и при сбое полезно знать, кто за что.
| Компонент | Что делает | Что сломается без него |
|---|---|---|
| Сервер взаимодействия (Java-приложение) | Принимает подключения клиентов и серверов 1С по WebSocket, маршрутизирует сообщения | Всё: клиенты не подключатся |
| PostgreSQL | Хранит пользователей, обсуждения, сообщения, вложения | Сервер не стартует или не сохраняет историю |
| Elasticsearch | Полнотекстовый поиск по сообщениям | Поиск в обсуждениях |
| Hazelcast | Общий кэш и связь узлов, если серверов несколько | Работа в кластере из нескольких узлов |
| Медиасервер | Аудио- и видеозвонки | Звонки, при этом переписка работает |
Для запуска нужна Java. Конкретную версию и поддерживаемые сборки смотрите в требованиях к вашему выпуску сервера взаимодействия: они меняются от релиза к релизу.
Настраивают сервер утилитой ring — той же, что знакома по установке компонентов 1С. Через неё создают экземпляр сервера, регистрируют службу, задают адрес и порт для WebSocket-подключений, параметры подключения к PostgreSQL и Elasticsearch. Полный список команд для вашей версии выводит ring help.
Компоненты можно разнести по разным машинам: PostgreSQL на сервер СУБД, Elasticsearch на отдельную ВМ. На старте для 50–100 пользователей обычно хватает одной машины со всем набором.
Чем он отличается от сервера 1С:Предприятия и RAS
Названия похожи, поэтому их часто путают. На деле это три разных продукта с разными задачами.
| Сервер 1С:Предприятия | RAS | Сервер взаимодействия | |
|---|---|---|---|
| Процессы | ragent, rmngr, rphost | ras | Java-приложение сервера взаимодействия |
| Задача | Выполняет код конфигурации, работает с СУБД базы | Даёт доступ к администрированию кластера | Сообщения, обсуждения, звонки, внешние каналы |
| Кто подключается | Клиенты 1С | Утилита rac, консоли администрирования | Клиенты 1С и сервер 1С |
| Протокол | Собственный протокол 1С | Собственный протокол 1С | WebSocket (ws или wss) |
| Хранилище | База на MS SQL, PostgreSQL и др. | Не хранит данных | Своя база PostgreSQL |
| Порты | Агент 1540, менеджер 1541, диапазон рабочих процессов | 1545 по умолчанию | Задаётся при настройке экземпляра |
Главное отличие: сервер взаимодействия не знает о ваших документах и регистрах. Он хранит только сообщения, связи с объектами (ссылку на документ, к которому привязано обсуждение) и список пользователей.
Сервер взаимодействия не заменяет и не ускоряет сервер 1С:Предприятия. Если база тормозит, его установка ничего не изменит.
Где сервер взаимодействия нужен на практике
Несколько сценариев, ради которых его реально разворачивают.
- Обсуждение документа. Менеджер открывает заказ, пишет в обсуждение по этому заказу «проверьте остаток», кладовщик видит сообщение прямо в карточке. Переписка остаётся привязанной к документу.
- Уведомления из кода. Конфигурация сама отправляет сообщение: «счёт оплачен», «поступил новый заказ». Пользователь видит его сразу, без обновления списка.
- Связь между базами. Сотрудники бухгалтерии и торговли работают в разных базах, но при регистрации на одном сервере могут писать друг другу.
- Внешние мессенджеры. Клиент пишет в Telegram, сообщение попадает в обсуждение в 1С, ответ уходит обратно. Так строят простую поддержку без отдельной CRM.
- Чат-боты. Бот на встроенном языке отвечает на типовые вопросы: статус заказа, остаток, задолженность.
- Звонки внутри компании. Видеосвязь между филиалами без отдельного сервиса конференций.
Свой сервер вместо облака выбирают, когда интернет на рабочих местах закрыт, когда переписку нельзя хранить за пределами компании или когда пользователей много и нужна предсказуемая скорость.
Как сообщение проходит от отправителя до получателя
Схема полезна при поиске неисправностей: понятно, на каком шаге искать обрыв.
- Регистрация базы. Администратор один раз регистрирует информационную базу на сервере взаимодействия. База получает свой идентификатор, сервер — запись о ней.
- Подключение клиента. При запуске клиент 1С открывает WebSocket-соединение с сервером взаимодействия и держит его открытым. Важная деталь: клиент подключается к серверу взаимодействия напрямую, а не через сервер 1С.
- Отправка. Пользователь пишет сообщение. Клиент передаёт его на сервер взаимодействия.
- Сохранение. Сервер записывает сообщение в PostgreSQL и передаёт текст в Elasticsearch для поиска.
- Доставка. Сервер находит открытые соединения получателей и отправляет сообщение им. Если получатель не в сети, он увидит его при следующем подключении.
- Серверная логика. Если сообщение предназначено боту или пришло из внешнего канала, сервер взаимодействия передаёт его серверу 1С, где выполняется обработчик конфигурации.
Из пункта 2 следует практический вывод: порт сервера взаимодействия должен быть доступен с каждого рабочего места, включая удалённых сотрудников. Открыть его только для сервера 1С недостаточно.
Звонки идут иначе. Сервер взаимодействия лишь согласует соединение, а аудио и видео передаёт медиасервер. Для него нужны отдельные сетевые разрешения, обычно UDP-трафик.
Развёртывание и администрирование своего сервера
Порядок работ при установке собственного сервера взаимодействия:
- Подготовьте машину. Linux или Windows, Java нужной версии, PostgreSQL, Elasticsearch. Под базу сообщений заведите отдельную базу и пользователя PostgreSQL.
- Создайте экземпляр. Утилитой
ringсоздайте экземпляр сервера взаимодействия и зарегистрируйте его как службу. - Задайте параметры. Адрес и порт для WebSocket, строку подключения к PostgreSQL, адрес Elasticsearch, при кластере — параметры Hazelcast.
- Запустите службу и убедитесь в журнале, что она подключилась к базе и к Elasticsearch без ошибок.
- Откройте порт на файрволе для всех клиентов 1С.
- Зарегистрируйте базу. В типовых конфигурациях на БСП настройка находится в разделе
Администрирование, в группе настроек «Обсуждения». В форме подключения укажите адрес своего сервера вместо облачного по умолчанию.
Для работы через интернет
используйте защищённое соединение wss. Практичный путь — поставить перед сервером взаимодействия обратный прокси (например, nginx) с действительным сертификатом. Самоподписанный сертификат клиенты 1С примут не везде, а на мобильных устройствах проблемы почти гарантированы.
Что делать в повседневной работе
- 💾 Резервные копии. История обсуждений лежит в PostgreSQL сервера взаимодействия, а не в базе 1С. Выгрузка
.dtеё не содержит. Бэкап базы сообщений настраивайте отдельно. - 🔍 Индекс поиска. Если Elasticsearch пересоздали или потеряли данные, поиск по старым сообщениям пропадёт до переиндексации. Переписка при этом сохраняется.
- 📈 Рост базы. Вложения в обсуждениях раздувают базу PostgreSQL. Следите за местом на диске.
- 🔄 Обновления. Перед обновлением сервера взаимодействия сделайте копию его базы PostgreSQL. Служба при обновлении останавливается: у пользователей пропадут обсуждения и оборвутся звонки, поэтому выбирайте нерабочее время.
Копия базы и регистрация
Приём, о котором вспоминают слишком поздно. Копия информационной базы, развёрнутая из .dt или скопированная файлово, наследует регистрацию в системе взаимодействия. Тестовая копия начинает видеть рабочие обсуждения, а уведомления из неё могут уйти реальным пользователям.
Сразу после развёртывания копии отключите в ней систему взаимодействия или отмените регистрацию. В типовых конфигурациях это делается в тех же настройках «Обсуждений». Отменять регистрацию нужно именно в копии: если по ошибке сделать это в рабочей базе, пользователи потеряют доступ к обсуждениям.
Неполадки сервера взаимодействия: где искать причину
Большинство проблем укладывается в несколько симптомов. Идите по цепочке из раздела про путь сообщения: клиент → сеть → сервер → PostgreSQL → Elasticsearch.
Test-NetConnection в PowerShell). Если с сервера 1С порт доступен, а с клиента нет — правило файрвола открыто не для всех.Перезапуск службы сервера взаимодействия обрывает соединения всех пользователей и идущие звонки. Работа в 1С при этом не прерывается, но обсуждения будут недоступны, пока служба не поднимется. Делайте перезапуск вне рабочего времени или предупредите сотрудников.
Когда свой сервер взаимодействия не нужен
Ставить и обслуживать свой сервер имеет смысл не всегда. Отказаться от него стоит, если:
- ✅ Пользователей немного и интернет открыт. Облачный 1С:Диалог закрывает обсуждения и звонки без отдельной машины и администратора.
- ✅ Нужен обмен данными, а не общение. Документы и справочники между базами передают планы обмена, HTTP-сервисы, 1С:Шина. Сервер взаимодействия эту задачу не решает.
- ✅ В компании уже есть корпоративный мессенджер. Если сотрудники живут в нём, проще отправлять туда уведомления из 1С через HTTP-запрос к API мессенджера.
- ✅ Нужны только оповещения по событиям. Письмо по электронной почте из регламентного задания проще поддерживать, чем отдельный сервер.
| Задача | Чем решить |
|---|---|
| Переписка внутри одной-двух баз, интернет есть | 1С:Диалог |
| Закрытый контур, требования к хранению переписки | Свой сервер взаимодействия |
| Перенос документов между базами | Планы обмена, конвертация данных |
| Интеграция с внешней учётной системой | HTTP-сервисы, веб-сервисы, 1С:Шина |
| Уведомления в существующий мессенджер | HTTP-запрос к API мессенджера из 1С |
Переход с облака на свой сервер возможен и позже. Учтите, что историю переписки из облака автоматически на свой сервер никто не переносит: начинайте с того варианта, на котором планируете остаться.