Оповещения боту из 1С за 31 минуту
Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.
Привет! Привет! Привет!
Без лишней воды сразу к процессу. АКТУАЛЬНО НА 01.08.2020г.
Сперва нам нужно завести свой Телеграмм (если нет), и зайти в него. Я использовал портабл версию телеги (https://dl.tlgrm.click/desktop/win_portable). Думаю тут проблем не должно быть.
Теперь ищем всеотца ботов. Для этого в поиск вводим BotFather. Должно получиться как представлено ниже.
Данный НПС по средства текстовых команд поможет нам создать наше детище. Жмем запустить или пишем /start. Он выдаст нам список команд. Интересует «/newbot». Теперь необходимо ввести имя нового бота (можно использовать православные букъвы). Далее вводим его типо ID которое должно начинаться с «@» и заканчиваться «bot», при этом быть уникальным (в дальнейшем наименование бота). Методом «проб и ошибок» у вас получится. После всего этого нас поздравят с созданием и дадут токен. Это то, как можно обратиться в будущем к боту формата *********:*********************************** (в дальнейшем токен).
Бот у нас есть. Теперь создадим телеграмм канал и добавим туда бота. Заходим в меню телеграмма — создать канал. Нам предложат ввести название канала. Далее добавить участника, вводим наименование бота и добавляем с админскими правами. В канале могут писать только администраторы и сообщения будут приходить от имя канала, все остальные участники — только смотрят.
Работа с телеграмм на этом заканчивается и переходим к 1с.
Единственная тонкость с которой придется заморочиться — прокси. 1с на отрез отказывается давать команды в телеграмм без прокси Роскомнадзор блокирует прямое подключение (Спасибо комментаторам). До того как сайт телеграмма поместили в черный список все прекрасно и без прокси работало. Как это обойти? Сейчас расскажу.
Вся отправка заключается в одной процедуре (если не заморачиваться с проверкой на дурака и обработкой результата).
&НаСервереБезКонтекста Процедура СообщитьНаСервере(Chat_id, Token, ТекстСообщения, proxy, Port) ИнтернетПрокси = Новый ИнтернетПрокси(Ложь); // необходим, что бы обойти блокировки ИнтернетПрокси.Установить("https",proxy,Число(Port), "", "", Ложь);// заполняем порт и ip Соединение = Новый HTTPСоединение("api.telegram.org",443,,,ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL());//создаем соединение ПараметрыЗапроса = "?chat_id=" //параметр команды который говорит в какой чат писать боту + Формат(Chat_id, "ЧГ=0") //вводим имя чата формата @***** + "&text=" //параметр команды который говорит что писать боту + КодироватьСтроку(ТекстСообщения,СпособКодированияСтроки.КодировкаURL);//меняем кодировку для гиперссылки ТекстЗапросаHTTP = "bot" //ключ - что работаем с ботом + Token // id бота + "/sendMessage" //команда к действию - написать сообщение + ПараметрыЗапроса; //собственно параметры команды //кусок кода заставляющий бота работать Запрос = Новый HTTPЗапрос(ТекстЗапросаHTTP); Ответ = Соединение.ОтправитьДляОбработки(Запрос); КонецПроцедуры
на входе нам понадобится:
Chat_id — название канала формата @*****
Token — токен
ТекстСообщения — строка, которою наше детище произнесет.
proxy и Port.
Последние два берутся со сторонних ресурсов. Я использовал Порты и прокси. Просто копируем от туда два значения и подаем на вход процедуры.
Разработал на платформе 1С:Предприятие 8.3 (8.3.12.1855)
Надеюсь, принесет кому-то пользу и сэкономит немного времени!