Написал для себя, чтобы уведомлять сотрудников нашей организации об изменениях в документах. Пробовал другие подобные обработки, но они не имели прокси сервера и были громоздкими. Поэтому решил немного сделать по-своему.
Прокси можете изменить под себя на любой другой.
Тестировал на платформе версии 1с 8.3.11
Конфигурация 1с не имеет значение. Главное чтобы было на УправляемыхФормах.
1. Запускаете обработку
2. Указываете Token чатбота Телеграм. Как получить токен и как создать чатБота Телеграм — можете загуглить — это просто, но могу пояснить:
а) Чтобы создать ЧатБота надо добавить себе в телеграме @BotFather — он выдаст инструкцию по созданию. Остается задать логин ЧатБоту. После этого вы получите Токен.
б) Чтобы пользователи могли получать сообщения от 1с надо чтобы они добавили себе вашего новосозданного ЧатБота.
3. Указываете ID пользователя Телеграм. Как узнать свой ID — нажмите на @userinfobot в Телеграме. Напишите например "привет". Получите свой id. Либо ваш знакомый может таким же способом получить свой ID и отправить его Вам что бы вы по его id отправили сообщение. Сообщение придёт от ЧатБота.
4. Пишите сообщение и нажимаете "Отправить". Готово!
Вот весь код обработки:
&НаСервере
Процедура ОправитьНаСервере()
Если НЕ ЗначениеЗаполнено(ТекстСообщения) Тогда
Возврат;
КонецЕсли;
ПроксиСервер = "socks5://jqlwb.teletype.live"; // Собственно вот здесь мы и обращаемся через socks5
ПроксиПорт = 1080;
ПроксиПользователь = "telegram";
ПроксиПароль = "telegram";
ИнтернетПрокси = Новый ИнтернетПрокси;
ИнтернетПрокси.Установить("https", ПроксиСервер, ПроксиПорт, ПроксиПользователь, ПроксиПароль);
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Ресурс = "bot" + Token + "/sendMessage?chat_id=" + СтрЗаменить(Формат(ID, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text= " + ТекстСообщения;
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,ИнтернетПрокси,,ЗащищенноеСоединение);
Запрос = Новый HTTPЗапрос(Ресурс);
Ответ = Соединение.Получить(Запрос);
КодСостояния = Ответ.КодСостояния;
СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
Если КодСостояния=200 тогда
ЧтениеОтвета = Новый ЧтениеJSON;
ЧтениеОтвета.УстановитьСтроку(СтрокаОтвета);
РезультатСтруктура = ПрочитатьJSON(ЧтениеОтвета);
Если РезультатСтруктура.ok = Истина Тогда
СтруктураMessage = РезультатСтруктура.result;
КонецЕсли;
Иначе
Сообщить("КодСостояния "+КодСостояния);
Сообщить(СтрокаОтвета);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Оправить(Команда)
ОправитьНаСервере();
КонецПроцедуры
Спасибо, просто и понятно. Прокси сервер используемый в обработке выбран случайно или есть критерии выбора ?
(1)Благодарю! Прокси выбрал первый попавшийся.
Спасибо! А то после блокировки перестало работать, не знал как правильно прописать прокси!
Можно еще от бота в группы писать, если бота в эти группы включить
Не отправляет:
Ошибка работы с интернет. Не могу установить соединение.
Парни, проблема в прокси сервере, вот рабочий код для подключения
Показать
Рабочие прокси берите с сайтаhttps://hidemyna.me/ru/proxy-list/?type=s#list
Просто оставлю это тут
https://gist.github.com/PlugFox/5f62e43c56941e4c5a244de2422ee7f8
Пример отправки сообщений и файлов в телеграм (даже без задействования жесткого диска)