Сразу договоримся, что уведомлять можно не только из 1С, но и, в принципе, с градусника - лишь бы он умел отправлять HTTP-запросы. А ещё чат-бот - это, конечно, скорее про диалог, но это совсем другая история, до которой обязательно доберёмся.
У нас в компании чат-бота зовут Осип М. Так повелось. Уведомляет менеджеров об отгрузке/оплате заказов, бухгалтеров о расчете себестоимости в специальном приватном канале, используется пользователями для двухфакторной авторизации, информирует системных администраторов о всякой технине, пишет ответственным об изменении цен и ещё очень много всяких, простигосподе, кейсов. В общем, передовик.
А мы с вами давайте пройдём этот путь с начала и создадим чат-бота по имени Scooter.
Шаг 1. Создаём бота в Битрикс24
Идём в "Разработчикам" -> Добавить чат-бот.
Здесь выберем "Информировать сотрудников в чате"
Название бота - Как его будут видеть другие пользователи. У нас это Scooter.
URL обработчик бота - здесь самое сложное. Нужно на каком-то сервере разместить исполняемый php-файл. На текущий момент это не критично, бот даже без этого файла будет работать. Но молчаливо, как партизан. Пока нас всё устраивает, позже доберёмся и до этого
Тип бота - оставляем как есть, т.е. - Чат-бот, ответы сразу

Жмём "Создать бота".
После того как нажали "Создать бота" битрикс заполнит остальные технические поля. Они понадобятся для дальнейшей настройки. Прямо с этой страницы уже можно попробовать нашего бота. Вставим в DIALOG_ID ID своего аккаунта в Битрикс, а в поле MESSAGE "How Much Is the Fish". И жмём выполнить!
Жёлтым цветом на предыдущей картинке я пометил ТОКЕН. Никому не сообщайте его. Его спрашивают ТОЛЬКО мошенники.
Если всё правильно, то в Битрикс24 Вам прилетит первое сообщение.

У нас в компании строго-настрого запрещено лазить в чат, если у тебя нет фотокарточки, поэтому добавляем фотокарточку боту и делаем его узнаваемым.
С Битрикс24 всё.
Шаг 2. 1С
Заранее прошу прощения за английский язык, черезполосицу и так далее. Я в детстве упал с велосипеда, но, как известно, сильный не тот, кто падал, а тот кто поднимался и продолжал писать 1С.
Код я максимально упростил для наглядности. В реальной жизни, конечно, нужно добавить обработку ошибок, ответов и прочие нужности-полезности.
Для начала опишем небольшую функцию для создания подключения.
Функция создатьСоединениеBITRIX24()
АдресBITRIX24 = "ЗДЕСЬ_ВАШ_ДОМЕН_БИТРИКС_.ru";
ssl = новый ЗащищенноеСоединениеOpenSSL(новый СертификатКлиентаWindows(),новый СертификатыУдостоверяющихЦентровWindows());
возврат новый HTTPСоединение(АдресBITRIX24,,,,,5,ssl);
КонецФункции
Функция для отправки сообщения от лица бота.
Обратите внимание на строку запроса. Её надо взять из настройки бота в Битрикс - Вебхук для вызова rest api. У меня это "rest/26/ВАШ_ТОКЕН/imbot.message.add.json?", у вас же будет также, только по-другому.
Функция отправитьСообщениевBITRIX24()
httpConnect = создатьСоединениеBITRIX24();
ПараметрыЗапроса = новый структура;
ПараметрыЗапроса.insert("DIALOG_ID", IDПользователяПолучателя);
ПараметрыЗапроса.insert("CLIENT_ID", "ВАШ_CLIENT_ID");
ПараметрыЗапроса.insert("BOT_ID", "ВАШ_BOT_ID");
ПараметрыЗапроса.insert("MESSAGE", ТекстСообщения);
ПараметрыЗапроса.insert("SYSTEM", ?(Системное, "Y", "N"));
ПараметрыЗапросаТекстом = собратьТелоGetЗапроса(ПараметрыЗапроса);
ЗапросТекстом = Строка("rest/26/ВАШ_ТОКЕН/imbot.message.add.json?" + ПараметрыЗапросаТекстом);
HTTPЗапрос = новый HTTPЗапрос(ЗапросТекстом);
Попытка
Результат = httpConnect.Получить(HTTPЗапрос);
Исключение
Возврат ЛОЖЬ;
КонецПопытки;
КонецФункции
Небольшая вспомогательная функция, которая собирает тело запроса.
function собратьТелоGetЗапроса(_params)
_array = new array;
for each i in _params do
if ТипЗнч(i.Значение) = ТИП("Строка")
or ТипЗнч(i.Значение) = ТИП("Число") then
_value = КодироватьСтроку(i.Значение, СпособКодированияСтроки.КодировкаURL);
_array.add(СтрШаблон("%1=%2", i.Ключ, _value));
elsIf ТипЗнч(i.Значение) = ТИП("Массив") then
_arrayData = new array;
_n = 0;
for each j in i.Значение do
_arrayData.add(i.Ключ + "[" + _n + "]=" + КодироватьСтроку(j, СпособКодированияСтроки.КодировкаURL));
_n = _n + 1;
endDo;
_array.add(СтрСоединить(_arrayData,"&"));
endIf;
endDo;
return СтрСоединить(_array, "&");
endFunction
Для наглядности сделаем обработку с отправкой сообщения.
Bitrix ID пользователя - это, очевидно, ID пользователя в Битрикс24. Его можно добыть разными средствами, но об этом не в этой статье. (если нужно отправить не личное сообщение, а в группу - то можно указать идентификатор группы, он выглядит так = "chat<ID>")
Обратите внимание, что я добавил реквизит "Системное". В коде отправки сообщения передаётся параметром SYSTEM. От него зависит, как ваше сообщение будет выглядеть в Битрикс.

И получаем наши уведомления в Битрикс24

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