Обсуждения, звонки и чат-боты в 1С: как устроен сервер взаимодействия и когда ставить свой

· 9 мин

Содержание

Сервер взаимодействия 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, rphostrasJava-приложение сервера взаимодействия
ЗадачаВыполняет код конфигурации, работает с СУБД базыДаёт доступ к администрированию кластераСообщения, обсуждения, звонки, внешние каналы
Кто подключаетсяКлиенты 1СУтилита rac, консоли администрированияКлиенты 1С и сервер 1С
ПротоколСобственный протокол 1ССобственный протокол 1СWebSocket (ws или wss)
ХранилищеБаза на MS SQL, PostgreSQL и др.Не хранит данныхСвоя база PostgreSQL
ПортыАгент 1540, менеджер 1541, диапазон рабочих процессов1545 по умолчаниюЗадаётся при настройке экземпляра

Главное отличие: сервер взаимодействия не знает о ваших документах и регистрах. Он хранит только сообщения, связи с объектами (ссылку на документ, к которому привязано обсуждение) и список пользователей.

Сервер взаимодействия не заменяет и не ускоряет сервер 1С:Предприятия. Если база тормозит, его установка ничего не изменит.

Где сервер взаимодействия нужен на практике

Несколько сценариев, ради которых его реально разворачивают.

  1. Обсуждение документа. Менеджер открывает заказ, пишет в обсуждение по этому заказу «проверьте остаток», кладовщик видит сообщение прямо в карточке. Переписка остаётся привязанной к документу.
  2. Уведомления из кода. Конфигурация сама отправляет сообщение: «счёт оплачен», «поступил новый заказ». Пользователь видит его сразу, без обновления списка.
  3. Связь между базами. Сотрудники бухгалтерии и торговли работают в разных базах, но при регистрации на одном сервере могут писать друг другу.
  4. Внешние мессенджеры. Клиент пишет в Telegram, сообщение попадает в обсуждение в 1С, ответ уходит обратно. Так строят простую поддержку без отдельной CRM.
  5. Чат-боты. Бот на встроенном языке отвечает на типовые вопросы: статус заказа, остаток, задолженность.
  6. Звонки внутри компании. Видеосвязь между филиалами без отдельного сервиса конференций.

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

Как сообщение проходит от отправителя до получателя

Схема полезна при поиске неисправностей: понятно, на каком шаге искать обрыв.

  1. Регистрация базы. Администратор один раз регистрирует информационную базу на сервере взаимодействия. База получает свой идентификатор, сервер — запись о ней.
  2. Подключение клиента. При запуске клиент 1С открывает WebSocket-соединение с сервером взаимодействия и держит его открытым. Важная деталь: клиент подключается к серверу взаимодействия напрямую, а не через сервер 1С.
  3. Отправка. Пользователь пишет сообщение. Клиент передаёт его на сервер взаимодействия.
  4. Сохранение. Сервер записывает сообщение в PostgreSQL и передаёт текст в Elasticsearch для поиска.
  5. Доставка. Сервер находит открытые соединения получателей и отправляет сообщение им. Если получатель не в сети, он увидит его при следующем подключении.
  6. Серверная логика. Если сообщение предназначено боту или пришло из внешнего канала, сервер взаимодействия передаёт его серверу 1С, где выполняется обработчик конфигурации.

Из пункта 2 следует практический вывод: порт сервера взаимодействия должен быть доступен с каждого рабочего места, включая удалённых сотрудников. Открыть его только для сервера 1С недостаточно.

Звонки идут иначе. Сервер взаимодействия лишь согласует соединение, а аудио и видео передаёт медиасервер. Для него нужны отдельные сетевые разрешения, обычно UDP-трафик.

Развёртывание и администрирование своего сервера

Порядок работ при установке собственного сервера взаимодействия:

  1. Подготовьте машину. Linux или Windows, Java нужной версии, PostgreSQL, Elasticsearch. Под базу сообщений заведите отдельную базу и пользователя PostgreSQL.
  2. Создайте экземпляр. Утилитой ring создайте экземпляр сервера взаимодействия и зарегистрируйте его как службу.
  3. Задайте параметры. Адрес и порт для WebSocket, строку подключения к PostgreSQL, адрес Elasticsearch, при кластере — параметры Hazelcast.
  4. Запустите службу и убедитесь в журнале, что она подключилась к базе и к Elasticsearch без ошибок.
  5. Откройте порт на файрволе для всех клиентов 1С.
  6. Зарегистрируйте базу. В типовых конфигурациях на БСП настройка находится в разделе Администрирование, в группе настроек «Обсуждения». В форме подключения укажите адрес своего сервера вместо облачного по умолчанию.

Для работы через интернет используйте защищённое соединение wss. Практичный путь — поставить перед сервером взаимодействия обратный прокси (например, nginx) с действительным сертификатом. Самоподписанный сертификат клиенты 1С примут не везде, а на мобильных устройствах проблемы почти гарантированы.

Перед регистрацией базы на своём сервере
Выполнено: 0 / 6

Что делать в повседневной работе

  • 💾 Резервные копии. История обсуждений лежит в PostgreSQL сервера взаимодействия, а не в базе 1С. Выгрузка .dt её не содержит. Бэкап базы сообщений настраивайте отдельно.
  • 🔍 Индекс поиска. Если Elasticsearch пересоздали или потеряли данные, поиск по старым сообщениям пропадёт до переиндексации. Переписка при этом сохраняется.
  • 📈 Рост базы. Вложения в обсуждениях раздувают базу PostgreSQL. Следите за местом на диске.
  • 🔄 Обновления. Перед обновлением сервера взаимодействия сделайте копию его базы PostgreSQL. Служба при обновлении останавливается: у пользователей пропадут обсуждения и оборвутся звонки, поэтому выбирайте нерабочее время.

Копия базы и регистрация

Приём, о котором вспоминают слишком поздно. Копия информационной базы, развёрнутая из .dt или скопированная файлово, наследует регистрацию в системе взаимодействия. Тестовая копия начинает видеть рабочие обсуждения, а уведомления из неё могут уйти реальным пользователям.

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

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

Большинство проблем укладывается в несколько симптомов. Идите по цепочке из раздела про путь сообщения: клиент → сеть → сервер → PostgreSQL → Elasticsearch.

Диагностика: выберите симптом

Перезапуск службы сервера взаимодействия обрывает соединения всех пользователей и идущие звонки. Работа в 1С при этом не прерывается, но обсуждения будут недоступны, пока служба не поднимется. Делайте перезапуск вне рабочего времени или предупредите сотрудников.

Когда свой сервер взаимодействия не нужен

Ставить и обслуживать свой сервер имеет смысл не всегда. Отказаться от него стоит, если:

  • ✅ Пользователей немного и интернет открыт. Облачный 1С:Диалог закрывает обсуждения и звонки без отдельной машины и администратора.
  • ✅ Нужен обмен данными, а не общение. Документы и справочники между базами передают планы обмена, HTTP-сервисы, 1С:Шина. Сервер взаимодействия эту задачу не решает.
  • ✅ В компании уже есть корпоративный мессенджер. Если сотрудники живут в нём, проще отправлять туда уведомления из 1С через HTTP-запрос к API мессенджера.
  • ✅ Нужны только оповещения по событиям. Письмо по электронной почте из регламентного задания проще поддерживать, чем отдельный сервер.
ЗадачаЧем решить
Переписка внутри одной-двух баз, интернет есть1С:Диалог
Закрытый контур, требования к хранению перепискиСвой сервер взаимодействия
Перенос документов между базамиПланы обмена, конвертация данных
Интеграция с внешней учётной системойHTTP-сервисы, веб-сервисы, 1С:Шина
Уведомления в существующий мессенджерHTTP-запрос к API мессенджера из 1С

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

Частые вопросы

Нужна ли отдельная лицензия 1С на пользователей обсуждений?
Пользователи обсуждений — это пользователи базы 1С, они работают по своим клиентским лицензиям. Условия поставки самого 1С:Сервера взаимодействия уточняйте у партнёра 1С на момент покупки.
Можно ли поставить сервер взаимодействия на ту же машину, что и сервер 1С?
Можно, для небольших компаний это обычная практика. При росте нагрузки сначала выносят Elasticsearch и PostgreSQL, затем сам сервер взаимодействия.
Работает ли система взаимодействия в файловой базе?
Да. Регистрация базы на сервере взаимодействия не требует клиент-серверного режима, подключаются клиенты.
Хранится ли переписка в базе 1С?
Нет. Сообщения и вложения хранятся на сервере взаимодействия. В базе 1С остаётся только регистрация и связь обсуждений с объектами.
Работают ли обсуждения в веб-клиенте и мобильном приложении?
Да, система взаимодействия поддерживается и в веб-клиенте, и в мобильном клиенте. Для внешних подключений нужен wss с действительным сертификатом.