1. Создадим бота в Telegram. Для этого добавим себе в контакты системного бота "BotFather".
- Посылаем ему команду /newbot
- Далее посылаем "имя бота"
- После этого "BotFather" сообщаем token нового бота.
2. Создадим группу в Telegram и добавим в нее бота
3. Чтобы отправлять сообщения из 1с в группу Telegram нам нужно узнать номер группы
Нужно запустить ссылку https://api.telegram.org/bot-token-/getUpdates в браузере вместо -token- подставляем token бота
Будет получен примерно такой результат:
{"ok":true,"result":[{"update_id":158999999, "my_chat_member":{"chat":{"id":-4213302483,"title":"\u0422\u0435\u0441\u0442 \u0447\u0430\u0442\u0430","type":"group","all_members_are_administrators":true},"from":
Номер группы в этом примере -4213302483 (номер группы всегда со знаком минус)
4. В 1С создадим обработку с одной кнопкой
&НаКлиенте
Процедура ОтправитьВТелеграм(Команда)
ОтправитьВТелеграмНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОтправитьВТелеграмНаСервере()
Параметры1 = Новый Структура("АдресТелегарм,token,IdGroup");
Параметры1.АдресТелегарм = "api.telegram.org";
Параметры1.token = "7423432772:testtesttesttesttesttest";
Параметры1.IdGroup = "-4213302483";
Сообщение = "<b>Номер заказа:</b> 123
|<b>Дата заказа:</b> 20.06.2024
|<b>Клиент:</b> ООО Тест
|<b>Номенклатура:</b> лист
|<b>Количество:</b> 120шт";
ОтправитьСообщениеВТелеграм(Параметры1,Сообщение);
КонецПроцедуры
&НаСервере
Процедура ОтправитьСообщениеВТелеграм(Параметры1,Сообщение)
Если ЗначениеЗаполнено(Сообщение) Тогда
СтрокаПараметров = "chat_id="+Параметры1.IdGroup+"&parse_mode=html&text="+Сообщение;
ВыполнитьHTTPЗапрос("GET",Параметры1.АдресТелегарм,"/bot"+Параметры1.token+"/sendMessage",СтрокаПараметров);
КонецЕсли;
КонецПроцедуры
функция ВыполнитьHTTPЗапрос(Метод,АдресСайта,АдресРесурса,СтрокаПараметров)
HTTPЗапрос = Новый HTTPЗапрос;
HTTPЗапрос.Заголовки.Вставить("Connection", "keep-alive");
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPЗапрос.Заголовки.Вставить(Метод + " /enter HTTP/1.1");
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаПараметров, "utf-8");
HTTPЗапрос.АдресРесурса = АдресРесурса;
Попытка
Соединение1 = Новый HTTPСоединение(
АдресСайта, // сервер (хост)
443, // порт, по умолчанию для http используется 80, для https 443
, // пользователь для доступа к серверу (если он есть)
, // пароль для доступа к серверу (если он есть)
, // здесь указывается прокси, если он есть
30, // таймаут в секундах, 0 или пусто - не устанавливать
Новый ЗащищенноеСоединениеOpenSSL()
);
ОтветHTTP = Соединение1.ОтправитьДляОбработки(HTTPЗапрос);
Ответ = ОтветHTTP.ПолучитьТелоКакСтроку();
Исключение
Ответ = ОписаниеОшибки();
КонецПопытки;
Возврат Ответ;
КонецФункции
В группу Telegram пришло сообщение
Тестировал на платформе 1С:Предприятие 8.3 (8.3.24.1342).