Сервер взаимодействия 1С: настройка с нуля до работающего чата
Содержание
Сервер взаимодействия работает только с клиент-серверной базой на кластере 1С. Файловый вариант его не поддерживает, поэтому подключение начинается с проверки, где лежит ваша база. Дальше — поставить сам сервис, зарегистрировать его в кластере, включить в базе и проверить обмен сообщениями между двумя пользователями.
Весь путь занимает от получаса до пары часов. Основное время уходит на подготовку: версии, порты, база для хранения сообщений.
Что даёт сервер взаимодействия и когда он нужен
Это отдельный сервис платформы, который обслуживает систему взаимодействия: личные и групповые чаты, обсуждения вокруг документов, видеозвонки, уведомления, список контактов. Без него кнопки «Обсуждения» и «Чат» в программе работают вхолостую или не показываются вовсе.
Подключать его имеет смысл, когда:
- 💬 сотрудникам нужен внутренний мессенджер, привязанный к документам 1С;
- 📎 нужно обсуждать конкретный счёт, заказ или заявку прямо в карточке;
- 🔔 важны быстрые уведомления внутри программы, а не по почте;
- 🔍 нужен поиск по истории переписки.
Если людей в базе пять-десять и все сидят в одном офисе, обычный мессенджер проще. Выигрыш сервера взаимодействия — в привязке к данным 1С и в том, что переписка остаётся внутри вашей инфраструктуры.
Сервер взаимодействия не заменяет обмен данными между базами. Он не переносит документы и справочники, только сообщения и связанные с ними ссылки.
Что подготовить до установки
Сначала проверьте четыре вещи. Пропуск любой из них потом выливается в часы отладки.
| Что проверить | Как |
|---|---|
| Режим базы | Клиент-серверная, а не файловая. Смотрите строку подключения в списке баз |
| Версия платформы | Серверная часть и клиенты одной линейки 8.3; на старых релизах отдельные возможности недоступны |
| Хранилище сообщений | Отдельная база на PostgreSQL или MS SQL Server, не та, где лежит учёт |
| Полнотекстовый поиск | Для поиска по переписке нужен Elasticsearch; без него чаты работают, но искать по ним нельзя |
Сервисной базе под сообщения выделяйте отдельную базу данных на сервере СУБД. Смешивать её с учётной не нужно: объём переписки растёт быстро, а резервные копии и обслуживание у этих баз разные.
Про сеть заранее договоритесь с администратором:
- Клиентские компьютеры должны достучаться до сервера взаимодействия по порту, который вы зададите при настройке.
- Сам сервис должен видеть сервер СУБД и, если используете поиск, Elasticsearch (его стандартный порт —
9200). - Если пользователи подключаются снаружи, нужен обратный прокси с TLS, а не проброс «голого» порта в интернет.
Перед любыми изменениями на рабочем сервере сделайте резервную копию информационной базы и согласуйте окно работ. Перезапуск служб кластера прервёт сеансы пользователей.
Установка сервера взаимодействия по шагам
Шаг 1. Поставьте компонент
Сервер взаимодействия входит в дистрибутив платформы как отдельный компонент. Запустите установщик серверной части платформы на машине, где будет работать сервис, и отметьте компонент в списке. Если платформа уже стоит, запустите установку повторно и выберите «Изменить».
Ставить сервис можно на тот же сервер, где работает кластер 1С, или на отдельный. Для небольшой базы хватает одного сервера. Если пользователей сотни, а в чатах гоняют файлы и видео, выносите сервис отдельно.
Шаг 2. Подготовьте базу для сообщений
Создайте на сервере СУБД пустую базу и учётную запись с правами владельца этой базы. Кодировка UTF-8 для PostgreSQL. Запомните имя базы, адрес сервера и логин: они понадобятся на следующем шаге.
Шаг 3. Настройте и запустите сервис
Параметры сервиса — адрес, порт, подключение к базе сообщений, учётные данные — задаются при его регистрации. Точный набор параметров и команд зависит от релиза платформы, поэтому сверяйтесь с документацией той версии, что у вас стоит. Общий порядок такой:
- Задайте подключение к базе хранения сообщений.
- Укажите адрес, на котором сервис принимает соединения.
- Зарегистрируйте сервис как службу ОС (в Windows — службы, в Linux — systemd) с автозапуском.
- Запустите службу и убедитесь, что она осталась в состоянии «работает», а не упала через несколько секунд.
Если служба стартует и сразу останавливается, не перезапускайте её по кругу. Откройте журнал службы: почти всегда там написано, что не получилось подключиться к базе или занят порт.
Как зарегистрировать сервер взаимодействия в кластере 1С
Служба сама по себе ещё ничего не делает: кластер должен знать, что она есть. Регистрация выполняется в консоли администрирования серверов 1С (оснастка «Администрирование серверов 1С Предприятия»).
Порядок действий:
- Откройте консоль и подключитесь к нужному кластеру.
- Найдите в дереве раздел, относящийся к серверу взаимодействия. Если не видите его, значит, версия консоли старше платформы или компонент не поставлен.
- Добавьте новый сервер и укажите адрес и порт, которые вы задали на предыдущем шаге.
- Сохраните и проверьте статус: он должен показывать, что сервер доступен.
Адрес указывайте тот, по которому его увидят клиенты, а не localhost. Классическая ловушка: на самом сервере всё работает, а на рабочих местах чат не открывается. Причина в том, что клиентам отдали адрес, который существует только внутри сервера.
Используйте DNS-имя, а не IP. Когда сервер переедет, менять придётся одну запись, а не настройки во всех базах.
Включение системы взаимодействия в информационной базе
Теперь сообщите самой базе, что обмен сообщениями включён и где искать сервер.
- Откройте базу в режиме Конфигуратор либо, если в вашей конфигурации есть соответствующий раздел, в обычном режиме через раздел администрирования. Название пункта различается между конфигурациями, поэтому используйте поиск по форме настроек по слову «взаимодействие».
- Укажите, что база использует сервер взаимодействия, и выберите зарегистрированный сервер.
- Сохраните настройки и перезапустите клиентов.
Дальше по порядку:
- Пользователям нужно право на использование обсуждений. В типовых конфигурациях оно входит в базовые роли, но у ограниченных профилей его иногда нет.
- Список пользователей системы взаимодействия формируется из пользователей базы. Если человек добавлен недавно, он может не появиться в контактах, пока не зайдёт в программу.
- Включите полнотекстовый поиск по сообщениям, если Elasticsearch подготовлен.
Как проверить, что подключение работает
Не включайте всех сразу. Возьмите двух тестовых пользователей и два компьютера.
- Войдите под первым пользователем и откройте обсуждения (иконка с пузырём в панели программы).
- Найдите второго пользователя в контактах и напишите ему.
- На втором компьютере сообщение должно появиться без обновления страницы и перезапуска.
- Ответьте и убедитесь, что оба направления работают.
- Откройте любой документ, нажмите кнопку обсуждения и пригласите коллегу: сообщение должно быть привязано к документу.
Чего ждать, если всё в порядке: сообщение доходит за секунду-две, в списке контактов виден статус «в сети», уведомление всплывает даже при свёрнутом окне.
Если поиск включён, проверьте и его: отправьте уникальное слово и найдите его через строку поиска по сообщениям. Индексация идёт с небольшой задержкой, так что подождите минуту.
Типичные ошибки и что с ними делать
9200, и запустите индексацию заново.Отдельно про сертификаты. Если внешний доступ идёт через обратный прокси с TLS, браузерный и мобильный клиенты не подключатся при просроченном или самоподписанном сертификате. В логах это выглядит как обрывы соединения без внятной причины. Проверьте срок действия сертификата раньше, чем начнёте разбирать саму 1С.
Интеграция сервера взаимодействия с внешними системами
Прямого «REST API мессенджера» у сервера взаимодействия нет. Его задача — доставка сообщений между клиентами 1С. Но вокруг него строится несколько практичных сценариев.
Уведомления из внешних систем
Внешняя система (CRM, сайт, мониторинг) может отправить данные в 1С по HTTP-сервису, а уже 1С при получении создаст сообщение или обсуждение в системе взаимодействия. Получается цепочка: внешний вызов → HTTP-сервис конфигурации → программное создание сообщения.
Схема в таблице:
| Шаг | Что происходит |
|---|---|
| 1 | Внешняя система вызывает опубликованный HTTP-сервис 1С |
| 2 | Обработчик проверяет авторизацию и разбирает тело запроса |
| 3 | Код через встроенные объекты системы взаимодействия создаёт сообщение нужному получателю |
| 4 | Пользователь видит уведомление в чате |
HTTP-сервис нужно опубликовать на веб-сервере и защитить: отдельный пользователь с минимальными правами, HTTPS, ограничение по адресам.
Чат-боты
Система взаимодействия поддерживает ботов: программу, которая от имени «пользователя» отвечает на сообщения. Бот удобен, чтобы отдавать сводки (остатки, статус заказа) по команде из чата. Логика пишется в конфигурации, а не на стороне сервера.
Не давайте боту и HTTP-сервису административную учётную запись. Достаточно роли, которая позволяет создавать сообщения и читать нужные данные.
Мобильный клиент
Для мобильного приложения сервер взаимодействия должен быть доступен снаружи. Это единственный случай, когда его нужно выводить в интернет. Делайте это через обратный прокси, обязательно с TLS и ограничением по числу запросов.
Как не потерять сообщения и не завалить сервер
Подключить сервис мало, его нужно сопровождать.
- 💾 Резервные копии. Базу сообщений бэкапьте отдельно от учётной, по своему расписанию. Переписку восстановить из учётной базы нельзя.
- 📈 Рост объёма. Файлы и картинки в чатах разрастаются быстро. Ограничьте размер вложений и раз в квартал смотрите размер базы.
- 🔄 Обновления. После обновления платформы обновляйте и сервер взаимодействия: рассинхрон версий — частая причина «внезапных» сбоев.
- 👀 Мониторинг. Настройте оповещение, если служба остановилась. Иначе вы узнаете об этом от пользователей.
- 🔐 Доступ. Сократите круг тех, кто может менять настройки сервера и видеть содержимое базы сообщений: переписка — это персональные данные.
Когда выносить сервис на отдельную машину
Типичная картина: кластер 1С и сервер взаимодействия живут на одном сервере, пока пользователей мало. Тревожные признаки, что пора разделять:
- 🐌 в часы пик 1С тормозит, а в мониторинге растёт загрузка процессора из-за звонков и пересылки файлов;
- 💽 диск с базой сообщений заполняется быстрее, чем диск с учётной базой;
- 🧯 перезапуск кластера для обновления каждый раз обрывает чаты, а команда этого не хочет.
Перенос не страшен: меняется адрес в регистрации сервера в кластере, а база сообщений остаётся на своём месте. Сделайте его в нерабочее время и сразу проверьте обмен двумя тестовыми пользователями.