Создание телеграм ботов - тема не новая и уже далеко убежала вперед, а новичкам сложно с чего-то начать. Начнем с этой статьи.
1. Первое, что нам нужно, это сам Бот. Открываем Telegram на своем телефоне и в поисковике ищем BotFather - это помощник создания бота. Заходим, запускаем и пишем команду /newbot. В ответ придет сообщение на английском (кому влом переводить: "Хорошо, новый бот. Как будем его называть? Впишите имя своего бота"). Пишем произвольно, что-то типа МояОрганизация. В ответ опять придет сообщение на английском (кому опять влом переводить: "Хорошо. Теперь придумай ник для своего бота, ник обязательно должен заканчиваться на слово "bot""). Пишем что-то типа МояОрганизация_bot. В ответ опять придет сообщение (переводить не буду). В нем нам надо сохранить токен, выглядит он в сообщении так
Use this token to access the HTTP API:
5519894407:AAHE***********kYlaN7AC*************
Вот эта вторая строка и есть наш токен.
2. Для каждого пользователя, которому мы хотим что-то отправить, надо знать его ID. Чтобы его узнать, опять в телеграмме находим бота Get My ID и запускаем, в ответ он пришлет вам ваш ID. Сохраняем его.
3. Переходим к 1С. Сама отправка сообщения достаточно проста:
 
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
TokenTelegramm=ПолучитьTokenTelegramm(); //"111111111:AAHEyAAbz2RpGAAkYlaN7ACyAAAARfi21sU"; 
Ресурс = "bot" + TokenTelegramm + "/sendMessage?chat_id=" + СтрЗаменить(Формат(IDUser, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text= " + Текст;
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,,ЗащищенноеСоединение);
Запрос = Новый HTTPЗапрос(Ресурс);
Ответ = Соединение.Получить(Запрос);  
Если Ответ.КодСостояния=200 тогда
     Сообщить("Успешно");
Иначе
     Сообщить("Ошибка");
КонецЕсли;
В переменную TokenTelegramm надо записать наш Токен, В переменную IDUser указываем ID Пользователя, ну и Текст - всё, что хотим отправить пользователю.
Осталось только придумать, где хранить в базе TokenTelegramm и IDUser для каждого пользователя. Вы можете использовать для этого регистры сведений, справочники, дописать реквизиты в уже имеющиеся справочники и т.д. В этом примере, чтобы не создавать новые объекты и реквизиты, использую встроенный механизм дополнительных реквизитов. Итак, в карточке организации добавляем новый доп.реквизит с названием TokenTelegramm, тип реквизита строка (кто не в курсе: на форме справа сверху нажимаем ЕЩЕ и Изменить состав дополнительных реквизитов).

В карточке организации появится новый реквизит, в него и запишем наш токен.

Аналогично в справочник Пользователи добавим доп.Реквизит TelegrammID, тут будем хранить ID каждого пользователя.
Осталось только обернуть все это в процедуру. Создадим общий модуль TG_Server и пропишем:
 
Процедура ОправитьСообщение(Текст,Получатель="") Экспорт 
	Мас=Новый Массив;
	Если ЗначениеЗаполнено(Получатель) тогда 
		Мас.Добавить(получатель);
	Иначе 
		Запрос=Новый Запрос("
		|ВЫБРАТЬ
		|	ПользователиДополнительныеРеквизиты.Значение КАК Значение
		|ИЗ
		|	Справочник.Пользователи.ДополнительныеРеквизиты КАК ПользователиДополнительныеРеквизиты
		|ГДЕ
		|	ПользователиДополнительныеРеквизиты.Свойство.Заголовок = ""TelegrammID""
		|	И НЕ ПользователиДополнительныеРеквизиты.Значение = """"
		|");
		Рез=Запрос.Выполнить().Выбрать();
		
		ПОка рез.Следующий() Цикл
			Мас.Добавить(СокрЛП(Рез.Значение));
		КонецЦикла;
	КонецЕсли;	
	
	Для Каждого IDUser из Мас Цикл	
		Попытка
			ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
			TokenTelegramm=ПолучитьTokenTelegramm(); //"111111111:AAHEyAAbz2RpGAAkYlaN7ACyAAAARfi21sU"; 
			Ресурс = "bot" + TokenTelegramm + "/sendMessage?chat_id=" + СтрЗаменить(Формат(IDUser, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text= " + Текст;
			Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,,ЗащищенноеСоединение);
			Запрос = Новый HTTPЗапрос(Ресурс);
			Ответ = Соединение.Получить(Запрос);  
			Если Ответ.КодСостояния=200 тогда
				рег=РегистрыСведений.TG_ОтправленныеСообщения.СоздатьМенеджерЗаписи();
				Рег.TelegrammID=IDUser;
				рег.Сообщение=Текст;
				Рег.Записать(Истина);
			КонецЕсли;	
		Исключение   
			//Сообщить(ОписаниеОшибки());
		КонецПопытки;
	КонецЦикла;	
КонецПроцедуры	
Функция ПолучитьTokenTelegramm()
	Запрос=Новый Запрос("
	|ВЫБРАТЬ
	|	ОрганизацииДополнительныеРеквизиты.Значение КАК Значение
	|ИЗ
	|	Справочник.Организации.ДополнительныеРеквизиты КАК ОрганизацииДополнительныеРеквизиты
	|ГДЕ
	|	ОрганизацииДополнительныеРеквизиты.Свойство.Заголовок = &Заголовок
	|");      
	Запрос.УстановитьПараметр("Заголовок","TokenTelegramm");
	Рез=Запрос.Выполнить().Выбрать();
	
	Если Рез.Следующий() тогда 
		Возврат Рез.значение;
	иначе 
		Возврат "";
	КонецЕсли;	
		
	
КонецФункции	
Думаю, тут все понятно, но поясню: в процедуру передается текст сообщения и пользователь получатель, если получатель не указан, сообщение уйдет всем. Из доп. реквизитов вытаскиваем Токен и ID получателей.
Ну и еще процедура для завершения. При записи нового заказа клиента идет оповещение в телеграм
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Если ЭтоНовый() Тогда 
		TG_Сервер.ОправитьСообщение("Оформлен новый заказ №"+ЭтотОбъект["Номер"], Пользователи.ТекущийПользователь());
	КонецЕсли;	
КонецПроцедуры
Готово. Теперь можете сами придумать, откуда и какие сообщения рассылать.
И последнее, в телеграмме находим своего бота через поиск МояОрганизация_bot и подключаемся к нему.
В приложении расширение с данным решением для УНФ 1.5.4.34 Тестировалось на платформе 8.3.20.1613.
Вступайте в нашу телеграмм-группу Инфостарт
 
                                    