Как реализовать систему уведомлений и чат в 1С с помощью Системы взаимодействия?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Архитектура и варианты развертывания системы

Проанализируем техническую составляющую. Система взаимодействия — это не просто часть программного кода, а отдельный программный компонент, работающий на протоколе WebSocket. Это обеспечивает мгновенную передачу данных между клиентами без необходимости постоянного опроса сервера (polling).

Существует два основных способа развертывания системы:

  1. Облачный сервис 1cDialog.com: Это самый простой вариант. Если у вашей организации есть действующий договор ИТС, вы можете зарегистрировать свою информационную базу в облаке 1С. Все сообщения в этом случае будут храниться на серверах компании «1С».
  2. Локальный сервер (On-premise): Если требования безопасности запрещают передачу данных вовне, рассмотрим установку собственного «Сервера системы взаимодействия». Для этого потребуется среда исполнения Java (JRE) и система управления базами данных PostgreSQL для хранения истории переписки. Этот вариант подходит для крупных предприятий и тех, кто предпочитает полный контроль над данными.

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

Прежде чем приступать к написанию кода, необходимо связать информационную базу с сервером взаимодействия. Проанализируем этот процесс. В пользовательском режиме (или через код) нужно перейти в раздел управления системой взаимодействия. Если используется облако, потребуется указать адрес электронной почты, на который придет код подтверждения.

Для программной регистрации в «голой» конфигурации можно использовать следующий метод:


ПараметрыРегистрации = СистемаВзаимодействия.СоздатьПараметрыРегистрацииИнформационнойБазы();
ПараметрыРегистрации.АдресЭлектроннойПочты = "admin@company.ru";
ПараметрыРегистрации.АдресСервера = "wss://1cdialog.com"; // или ваш локальный адрес
СистемаВзаимодействия.ЗарегистрироватьИнформационнуюБазу(ПараметрыРегистрации);

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

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

Теперь разберем ситуацию, когда нам нужно программно инициировать отправку сообщения от одного пользователя другому. В Системе взаимодействия существуют понятия Обсуждение и Сообщение. Рассмотрим пример кода для отправки уведомления:


// 1. Найдем или создадим обсуждение между двумя пользователями
МассивУчастников = Новый Массив;
МассивУчастников.Добавить(ПользовательА_Идентификатор);
МассивУчастников.Добавить(ПользовательБ_Идентификатор);

КлючОбсуждения = "Уведомление_О_Заказе_123"; // Произвольный уникальный ключ
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
Обсуждение.Ключ = КлючОбсуждения;
Обсуждение.Участники = МассивУчастников;
Обсуждение.Наименование = "Новое сообщение от системы";
Обсуждение.Записать();

// 2. Создадим и отправим само сообщение
НовоеСообщение = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор);
НовоеСообщение.Текст = "Вам пришло новое сообщение от пользователя А. Пожалуйста, ознакомьтесь.";
НовоеСообщение.Записать();

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

Обработка события получения сообщения

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


Процедура ПриНачалеРаботыСистемы()
    // Подключаем обработчик
    СистемаВзаимодействия.ПодключитьОбработчикОповещенияОНовыхСообщениях(Новый ОписаниеОповещения("ОбработкаНовогоСообщения", ЭтотОбъект));
КонецПроцедуры

Процедура ОбработкаНовогоСообщения(Сообщение, ДополнительныеПараметры) Экспорт
    // Проверяем текст или ключ обсуждения
    Если Найти(Сообщение.Текст, "ВАЖНО") > 0 Тогда
        ПоказатьПредупреждение(, Сообщение.Текст, 0, "Новое уведомление!");
    КонецЕсли;
КонецПроцедуры

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

Контекстные обсуждения и интеграция с объектами

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

Для реализации такой функции достаточно в свойствах формы установить флаг «Контекстное обсуждение» и указать основной реквизит (например, Объект.Ссылка). Платформа сама создаст чат и обеспечит его работу.

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

Рассмотрим расширенные возможности, которые появились в последних версиях платформы (8.3.23 и выше). Система взаимодействия позволяет интегрировать 1С с Telegram и VK. Это означает, что сообщения из внешнего мессенджера будут приходить в интерфейс 1С, а ответ менеджера уйдет обратно пользователю в Telegram.

Для создания чат-ботов используется объект БотСистемыВзаимодействия. Бот может:

Новинки платформы: реакции и цитирование

Проанализируем современные возможности интерфейса. Начиная с последних релизов, разработчики могут программно управлять реакциями на сообщения. Если в теме форума упоминалась необходимость триггера на определенный эмодзи, это стало возможным через анализ свойств сообщения. Также реализована поддержка цитирования (тредов) и редактирования сообщений, что делает работу в 1С такой же удобной, как в привычных мессенджерах.

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

← На главную