Система взаимодействия в платформе 1С:Предприятие 8.3 — это мощный механизм, который позволяет не только организовывать чаты между пользователями, но и решать сложные технические задачи, такие как мгновенная передача уведомлений с сервера на клиентское приложение. В этой статье мы подробно разберем, как использовать бесплатные возможности системы, как зарегистрировать свою информационную базу и как программно реализовать отправку сообщений.
Перед началом работы важно разобраться в архитектуре решения. Система взаимодействия может работать в двух режимах:
Проанализируем ситуацию: если ваша задача — просто отправлять уведомления и бюджет ограничен, использование сервиса 1С:Диалог будет оптимальным решением. Технически работа с облаком и локальным сервером из кода 1С практически не отличается.
Для того чтобы начать работу, информационную базу необходимо зарегистрировать. Разберем этот процесс по шагам:
После этого ваша база станет частью экосистемы взаимодействия, и пользователи смогут обмениваться сообщениями, а система — отправлять уведомления.
Традиционно в 1С существовала проблема: сервер не мог инициировать действие на стороне клиента. Программистам приходилось использовать «костыли» в виде регламентных заданий, которые каждые несколько секунд опрашивали сервер на наличие новых данных. Система взаимодействия решает эту проблему через протокол WebSocket, поддерживая постоянное открытое соединение.
Рассмотрим пример кода, который позволяет отправить сообщение конкретному пользователю. Для этого нам нужно сначала найти обсуждение (чат) с этим пользователем, а затем создать в нем сообщение.
// Пример функции для отправки уведомления пользователю
Процедура ОтправитьУведомлениеПользователю(ИмяПользователяПриемника, ТекстСообщения) Экспорт
// 1. Получаем пользователя системы взаимодействия
ПользовательПриемник = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователяПриемника);
ИдентификаторПользователя = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(ПользовательПриемник.УникальныйИдентификатор);
// 2. Ищем существующее неконтекстное обсуждение (тет-а-тет)
МассивУчастников = Новый Массив;
МассивУчастников.Добавить(ИдентификаторПользователя);
МассивУчастников.Добавить(СистемаВзаимодействия.ТекущийПользователь());
Отбор = Новый ОтборСистемыВзаимодействия;
Отбор.Участники = МассивУчастников;
СписокОбсуждений = СистемаВзаимодействия.ПолучитьОбсуждения(Отбор);
ПеременнаяОбсуждение = Неопределено;
Если СписокОбсуждений.Количество() > 0 Тогда
ПеременнаяОбсуждение = СписокОбсуждений[0];
Иначе
// Если обсуждения нет, создаем новое
ПеременнаяОбсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
ПеременнаяОбсуждение.Участники = МассивУчастников;
ПеременнаяОбсуждение.Записать();
КонецЕсли;
// 3. Создаем и отправляем сообщение
НовоеСообщение = СистемаВзаимодействия.СоздатьСообщение(ПеременнаяОбсуждение.Идентификатор);
НовоеСообщение.Текст = ТекстСообщения;
НовоеСообщение.Записать();
КонецПроцедуры
При вызове этого кода на сервере, у пользователя на клиенте мгновенно появится всплывающее окно уведомления (если настроено) или новое сообщение в панели обсуждений.
В обсуждениях часто возникает вопрос: как подключить внешний вебхук (например, от мессенджера или сайта), чтобы данные попали в систему взаимодействия? Начиная с версии платформы 8.3.15, это стало возможным через механизм Интеграций.
Выясним причину, почему это важно: интеграции позволяют связать 1С с внешним миром без написания сложных HTTP-сервисов вручную. Рассмотрим, как это работает:
ИнтеграцияСистемыВзаимодействия можно настроить профиль для Telegram или VK.ВнешняяСистема. В этом случае 1С генерирует уникальный URL (webhook), на который ваша внешняя система может присылать POST-запросы в формате JSON.Если вы все же решили потратить 50 000 рублей и поставить свой сервер, проанализируем необходимые компоненты. Локальный сервер взаимодействия — это не просто .exe файл, а целый стек технологий:
Важный момент по видеозвонкам: Система взаимодействия поддерживает видеосвязь и демонстрацию экрана. В облаке «1С:Диалог» это работает сразу. В локальной версии вам потребуется дополнительно настроить TURN-сервер (например, Coturn), чтобы видеопоток мог проходить через сетевые экраны и NAT.
Система взаимодействия — это не только замена корпоративному мессенджеру, но и полноценная шина для передачи событий между сервером и клиентом. Использование бесплатного сервиса 1С-Диалог позволяет внедрить этот функционал без дополнительных затрат. Разберем еще раз ключевые объекты: СистемаВзаимодействия.СоздатьСообщение() — ваш основной инструмент для уведомлений, а Интеграции — способ связи с внешним миром.