Сервер взаимодействия 1С: настройка с нуля до работающего чата

· 9 мин

Содержание

Сервер взаимодействия работает только с клиент-серверной базой на кластере 1С. Файловый вариант его не поддерживает, поэтому подключение начинается с проверки, где лежит ваша база. Дальше — поставить сам сервис, зарегистрировать его в кластере, включить в базе и проверить обмен сообщениями между двумя пользователями.

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

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

Это отдельный сервис платформы, который обслуживает систему взаимодействия: личные и групповые чаты, обсуждения вокруг документов, видеозвонки, уведомления, список контактов. Без него кнопки «Обсуждения» и «Чат» в программе работают вхолостую или не показываются вовсе.

Подключать его имеет смысл, когда:

  • 💬 сотрудникам нужен внутренний мессенджер, привязанный к документам 1С;
  • 📎 нужно обсуждать конкретный счёт, заказ или заявку прямо в карточке;
  • 🔔 важны быстрые уведомления внутри программы, а не по почте;
  • 🔍 нужен поиск по истории переписки.

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

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

Что подготовить до установки

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

Что проверитьКак
Режим базыКлиент-серверная, а не файловая. Смотрите строку подключения в списке баз
Версия платформыСерверная часть и клиенты одной линейки 8.3; на старых релизах отдельные возможности недоступны
Хранилище сообщенийОтдельная база на PostgreSQL или MS SQL Server, не та, где лежит учёт
Полнотекстовый поискДля поиска по переписке нужен Elasticsearch; без него чаты работают, но искать по ним нельзя

Сервисной базе под сообщения выделяйте отдельную базу данных на сервере СУБД. Смешивать её с учётной не нужно: объём переписки растёт быстро, а резервные копии и обслуживание у этих баз разные.

Про сеть заранее договоритесь с администратором:

  1. Клиентские компьютеры должны достучаться до сервера взаимодействия по порту, который вы зададите при настройке.
  2. Сам сервис должен видеть сервер СУБД и, если используете поиск, Elasticsearch (его стандартный порт — 9200).
  3. Если пользователи подключаются снаружи, нужен обратный прокси с TLS, а не проброс «голого» порта в интернет.

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

Установка сервера взаимодействия по шагам

Шаг 1. Поставьте компонент

Сервер взаимодействия входит в дистрибутив платформы как отдельный компонент. Запустите установщик серверной части платформы на машине, где будет работать сервис, и отметьте компонент в списке. Если платформа уже стоит, запустите установку повторно и выберите «Изменить».

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

Шаг 2. Подготовьте базу для сообщений

Создайте на сервере СУБД пустую базу и учётную запись с правами владельца этой базы. Кодировка UTF-8 для PostgreSQL. Запомните имя базы, адрес сервера и логин: они понадобятся на следующем шаге.

Шаг 3. Настройте и запустите сервис

Параметры сервиса — адрес, порт, подключение к базе сообщений, учётные данные — задаются при его регистрации. Точный набор параметров и команд зависит от релиза платформы, поэтому сверяйтесь с документацией той версии, что у вас стоит. Общий порядок такой:

  1. Задайте подключение к базе хранения сообщений.
  2. Укажите адрес, на котором сервис принимает соединения.
  3. Зарегистрируйте сервис как службу ОС (в Windows — службы, в Linux — systemd) с автозапуском.
  4. Запустите службу и убедитесь, что она осталась в состоянии «работает», а не упала через несколько секунд.

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

Как зарегистрировать сервер взаимодействия в кластере 1С

Служба сама по себе ещё ничего не делает: кластер должен знать, что она есть. Регистрация выполняется в консоли администрирования серверов 1С (оснастка «Администрирование серверов 1С Предприятия»).

Порядок действий:

  1. Откройте консоль и подключитесь к нужному кластеру.
  2. Найдите в дереве раздел, относящийся к серверу взаимодействия. Если не видите его, значит, версия консоли старше платформы или компонент не поставлен.
  3. Добавьте новый сервер и укажите адрес и порт, которые вы задали на предыдущем шаге.
  4. Сохраните и проверьте статус: он должен показывать, что сервер доступен.

Адрес указывайте тот, по которому его увидят клиенты, а не localhost. Классическая ловушка: на самом сервере всё работает, а на рабочих местах чат не открывается. Причина в том, что клиентам отдали адрес, который существует только внутри сервера.

Используйте DNS-имя, а не IP. Когда сервер переедет, менять придётся одну запись, а не настройки во всех базах.

Включение системы взаимодействия в информационной базе

Теперь сообщите самой базе, что обмен сообщениями включён и где искать сервер.

  1. Откройте базу в режиме Конфигуратор либо, если в вашей конфигурации есть соответствующий раздел, в обычном режиме через раздел администрирования. Название пункта различается между конфигурациями, поэтому используйте поиск по форме настроек по слову «взаимодействие».
  2. Укажите, что база использует сервер взаимодействия, и выберите зарегистрированный сервер.
  3. Сохраните настройки и перезапустите клиентов.

Дальше по порядку:

  • Пользователям нужно право на использование обсуждений. В типовых конфигурациях оно входит в базовые роли, но у ограниченных профилей его иногда нет.
  • Список пользователей системы взаимодействия формируется из пользователей базы. Если человек добавлен недавно, он может не появиться в контактах, пока не зайдёт в программу.
  • Включите полнотекстовый поиск по сообщениям, если Elasticsearch подготовлен.
Проверка перед включением для всех пользователей
Выполнено: 0 / 6

Как проверить, что подключение работает

Не включайте всех сразу. Возьмите двух тестовых пользователей и два компьютера.

  1. Войдите под первым пользователем и откройте обсуждения (иконка с пузырём в панели программы).
  2. Найдите второго пользователя в контактах и напишите ему.
  3. На втором компьютере сообщение должно появиться без обновления страницы и перезапуска.
  4. Ответьте и убедитесь, что оба направления работают.
  5. Откройте любой документ, нажмите кнопку обсуждения и пригласите коллегу: сообщение должно быть привязано к документу.

Чего ждать, если всё в порядке: сообщение доходит за секунду-две, в списке контактов виден статус «в сети», уведомление всплывает даже при свёрнутом окне.

Если поиск включён, проверьте и его: отправьте уникальное слово и найдите его через строку поиска по сообщениям. Индексация идёт с небольшой задержкой, так что подождите минуту.

Типичные ошибки и что с ними делать

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

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

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

Прямого «REST API мессенджера» у сервера взаимодействия нет. Его задача — доставка сообщений между клиентами 1С. Но вокруг него строится несколько практичных сценариев.

Уведомления из внешних систем

Внешняя система (CRM, сайт, мониторинг) может отправить данные в 1С по HTTP-сервису, а уже 1С при получении создаст сообщение или обсуждение в системе взаимодействия. Получается цепочка: внешний вызов → HTTP-сервис конфигурации → программное создание сообщения.

Схема в таблице:

ШагЧто происходит
1Внешняя система вызывает опубликованный HTTP-сервис 1С
2Обработчик проверяет авторизацию и разбирает тело запроса
3Код через встроенные объекты системы взаимодействия создаёт сообщение нужному получателю
4Пользователь видит уведомление в чате

HTTP-сервис нужно опубликовать на веб-сервере и защитить: отдельный пользователь с минимальными правами, HTTPS, ограничение по адресам.

Чат-боты

Система взаимодействия поддерживает ботов: программу, которая от имени «пользователя» отвечает на сообщения. Бот удобен, чтобы отдавать сводки (остатки, статус заказа) по команде из чата. Логика пишется в конфигурации, а не на стороне сервера.

Не давайте боту и HTTP-сервису административную учётную запись. Достаточно роли, которая позволяет создавать сообщения и читать нужные данные.

Мобильный клиент

Для мобильного приложения сервер взаимодействия должен быть доступен снаружи. Это единственный случай, когда его нужно выводить в интернет. Делайте это через обратный прокси, обязательно с TLS и ограничением по числу запросов.

Как не потерять сообщения и не завалить сервер

Подключить сервис мало, его нужно сопровождать.

  • 💾 Резервные копии. Базу сообщений бэкапьте отдельно от учётной, по своему расписанию. Переписку восстановить из учётной базы нельзя.
  • 📈 Рост объёма. Файлы и картинки в чатах разрастаются быстро. Ограничьте размер вложений и раз в квартал смотрите размер базы.
  • 🔄 Обновления. После обновления платформы обновляйте и сервер взаимодействия: рассинхрон версий — частая причина «внезапных» сбоев.
  • 👀 Мониторинг. Настройте оповещение, если служба остановилась. Иначе вы узнаете об этом от пользователей.
  • 🔐 Доступ. Сократите круг тех, кто может менять настройки сервера и видеть содержимое базы сообщений: переписка — это персональные данные.

Когда выносить сервис на отдельную машину

Типичная картина: кластер 1С и сервер взаимодействия живут на одном сервере, пока пользователей мало. Тревожные признаки, что пора разделять:

  • 🐌 в часы пик 1С тормозит, а в мониторинге растёт загрузка процессора из-за звонков и пересылки файлов;
  • 💽 диск с базой сообщений заполняется быстрее, чем диск с учётной базой;
  • 🧯 перезапуск кластера для обновления каждый раз обрывает чаты, а команда этого не хочет.

Перенос не страшен: меняется адрес в регистрации сервера в кластере, а база сообщений остаётся на своём месте. Сделайте его в нерабочее время и сразу проверьте обмен двумя тестовыми пользователями.

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

Нужна ли отдельная лицензия на сервер взаимодействия?
Отдельной платы за сам сервис нет, но пользователи должны быть подключены через лицензии на клиентские места, как и в обычной работе с базой. Условия для вашей схемы лицензирования уточняйте у обслуживающей организации.
Можно ли подключить сервер взаимодействия к файловой базе?
Нет. Система взаимодействия работает только с клиент-серверными базами. Файловую базу сначала переносят на сервер СУБД.
Обязателен ли Elasticsearch?
Для самих чатов нет. Он нужен только для полнотекстового поиска по сообщениям. Без него можно общаться, но искать по истории не получится.
Где хранится переписка?
В отдельной базе сервера взаимодействия на PostgreSQL или MS SQL Server, а не в учётной базе. В учётной хранятся лишь связи сообщений с объектами.
Сколько пользователей выдержит один сервер?
Зависит от железа и активности: файлы и видеозвонки нагружают сильнее текста. Для сотен пользователей закладывайте отдельную машину и наблюдайте нагрузку по первым неделям работы.
Можно ли ограничить, кто с кем общается?
Стандартными настройками круг общения жёстко не ограничивается: видны пользователи базы. Для разграничения используют отдельные базы или роли доступа к обсуждениям.