1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-19 21:07:53 +02:00

#240 Удаление старого интерфейса телеграмм-бота

This commit is contained in:
GenVP 2020-09-08 23:50:45 +03:00
parent 9b13c6a98e
commit e99bc844c1
7 changed files with 414 additions and 603 deletions

View File

@ -523,9 +523,12 @@
КонецЕсли; КонецЕсли;
//- #190 SZ 16.03.2020 //- #190 SZ 16.03.2020
//+ #240 Пиганов Г.В. 2020-09-08
// +++ 79Vlad 20.12.2018 // +++ 79Vlad 20.12.2018
узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); //узТелеграммСервер.ВыполнитьРассылку(ДопПараметры);
// --- 79Vlad 20.12.2018 // --- 79Vlad 20.12.2018
узТелеграмБот.ОтправитьСообщение(ДопПараметры.ТекстПисьма, Исполнитель);
//- #240 Пиганов Г.В. 2020-09-08
КонецПроцедуры КонецПроцедуры
@ -613,9 +616,12 @@
КонецЕсли; КонецЕсли;
//- #190 SZ 16.03.2020 //- #190 SZ 16.03.2020
//+ #240 Пиганов Г.В. 2020-09-08
// +++ 79Vlad 20.12.2018 // +++ 79Vlad 20.12.2018
узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); //узТелеграммСервер.ВыполнитьРассылку(ДопПараметры);
// --- 79Vlad 20.12.2018 // --- 79Vlad 20.12.2018
узТелеграмБот.ОтправитьСообщение(ДопПараметры.ТекстПисьма, СтарыйИсполнитель);
//- #240 Пиганов Г.В. 2020-09-08
КонецПроцедуры КонецПроцедуры
@ -652,8 +658,11 @@
узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры); узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры);
//+ #240 Пиганов Г.В. 2020-09-08
//Павлюков //Павлюков
узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); //узТелеграммСервер.ВыполнитьРассылку(ДопПараметры);
узТелеграмБот.ОтправитьСообщение(ДопПараметры.ТекстСообщения, МассивНаблюдателей);
//- #240 Пиганов Г.В. 2020-09-08
КонецПроцедуры КонецПроцедуры

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.10">
<CommonModule uuid="8f79d0f2-3bdc-43f6-ae0d-3393a1b1c89a">
<Properties>
<Name>узТелеграммСервер</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Уз телеграмм сервер</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>true</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -1,186 +0,0 @@

Функция ПолучитьМассивПолучателей(МассивПользователейКому) Экспорт
МассивПолучателейТелеграмм = Новый Массив();
Для Каждого пПользователь из МассивПользователейКому Цикл
Если НЕ пПользователь.узИспользоватьРассылкуЧерезТелеграмм Тогда
Продолжить;
Конецесли;
Если НЕ ЗначениеЗаполнено(пПользователь.узИДПользователяТелеграмм) Тогда
Продолжить;
Конецесли;
НастройкаТелеграмм = Новый Структура();
НастройкаТелеграмм.Вставить("ИД",пПользователь.узИДПользователяТелеграмм);
НастройкаТелеграмм.Вставить("узИДПользователяТелеграмм",пПользователь.узИДПользователяТелеграмм);
НастройкаТелеграмм.Вставить("Пользователь",пПользователь);
МассивПолучателейТелеграмм.Добавить(НастройкаТелеграмм);
КонецЦикла;
Возврат МассивПолучателейТелеграмм;
КонецФункции
Процедура ВыполнитьРассылку(ДопПараметры) Экспорт
ТокенБота = Константы.узТелеграмм_ТокенБота.Получить();
Если Не ЗначениеЗаполнено(ТокенБота) Тогда
Возврат;
КонецЕсли;
Если НЕ ДопПараметры.Свойство("МассивПользователейКому") Тогда
Если ДопПараметры.Свойство("ПользовательКому") Тогда
МассивПользователейКому = Новый Массив();
МассивПользователейКому.Добавить(ДопПараметры.ПользовательКому);
ДопПараметры.Вставить("МассивПользователейКому",МассивПользователейКому);
Конецесли;
Конецесли;
МассивПользователейДляОтправки = ПолучитьМассивПолучателей(ДопПараметры.МассивПользователейКому);
Если МассивПользователейДляОтправки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
// +++ Григорьев 12.12.2018
//ТекстПисьма = СтрЗаменить(ДопПараметры.ТекстПисьма, "#", "");
ТекстПисьма = ЗаменитьЗарезервированныеСимволы(ДопПараметры.ТекстПисьма);
// --- Григорьев 12.12.2018
ВТДопПараметры = Новый Структура();
Для каждого ЭлДопПараметры из ДопПараметры Цикл
ВТДопПараметры.Вставить(ЭлДопПараметры.Ключ, ЭлДопПараметры.Значение);
КонецЦикла;
ВТДопПараметры.Вставить("МассивПользователейДляОтправки",МассивПользователейДляОтправки);
ВТДопПараметры.Вставить("ТекстПисьма",ТекстПисьма);
ВТДопПараметры.Вставить("ТокенБота",ТокенБота);
ИспользоватьПроксиДляОтправки = Справочники.узКонстанты.ПолучитьЗначениеКонстанты(
"ТелеграммИспользоватьПроксиДляОтправки",Тип("Булево"),Ложь,Истина,Истина);
Если ИспользоватьПроксиДляОтправки Тогда
ВыполнитьРассылку_ЧерезПрокси(ВТДопПараметры);
Иначе
ВыполнитьРассылку_БезПрокси(ВТДопПараметры);
Конецесли;
КонецПроцедуры
Процедура ВыполнитьРассылку_ЧерезПрокси(ДопПараметры)
МассивПользователейДляОтправки = ДопПараметры.МассивПользователейДляОтправки;
ТекстПисьма = ДопПараметры.ТекстПисьма;
ТемаПисьма = ДопПараметры.ТемаПисьма;
пОбработка = Обработки.узРаботаСТелеграм.Создать();
пОбработка.ОтправитьСообщениеTelegram(ТекстПисьма, МассивПользователейДляОтправки);
КонецПроцедуры
Процедура ВыполнитьРассылку_БезПрокси(ДопПараметры)
МассивПользователейДляОтправки = ДопПараметры.МассивПользователейДляОтправки;
ТекстПисьма = ДопПараметры.ТекстПисьма;
ТемаПисьма = ДопПараметры.ТемаПисьма;
ТокенБота = ДопПараметры.ТокенБота;
Для Каждого элемПолучатель Из МассивПользователейДляОтправки Цикл
Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&parse_mode=Markdown&disable_web_page_preview=true";
//Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&disable_web_page_preview=true";
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос(Ресурс);
Ответ = Соединение.Получить(ЗапросHTTP);
Если Не Ответ.КодСостояния = 200 Тогда
ЗаписьЖурналаРегистрации("Телеграмм.Отправка", УровеньЖурналаРегистрации.Ошибка,,
, "Не смогли отправить пользователю <"+элемПолучатель.ИД+":"+элемПолучатель.Пользователь+">");
КонецЕсли;
КонецЦикла;
КонецПроцедуры // +++ Григорьев 12.12.2018
////////////////////////////////////////////////////////////////////////////////
//
// Функция ЗаменитьЗарезервированныеСимволы
//
// Описание:
// Выполняет замену основных зарезервированных символов для протокола URL
//
// Параметры:
// ОбрабатываемаяСтрока - <Тип.Строка> - исходная строка для обработки
//
// Возвращаемое значение:
// Результат - <Тип.Строка> - обработанная строка
//
Функция ЗаменитьЗарезервированныеСимволы(ОбрабатываемаяСтрока = Неопределено) Экспорт
Если ОбрабатываемаяСтрока = Неопределено или НЕ ЗначениеЗаполнено(ОбрабатываемаяСтрока) Тогда
Возврат ОбрабатываемаяСтрока;
КонецЕсли;
пТелеграммИспользоватьЗаменуСимволовВДругуюКодировку = Справочники.узКонстанты.ПолучитьЗначениеКонстанты(
"ТелеграммИспользоватьЗаменуСимволовВДругуюКодировку",Тип("Булево"),,Истина,Истина);
Если пТелеграммИспользоватьЗаменуСимволовВДругуюКодировку Тогда
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(37),"%25"); // "%"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(33),"%21"); // "!"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(34),"%22"); // """ (кавычка)
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(35),"%23"); // "#"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(36),"%24"); // "$"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(38),"%26"); // "&"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(39),"%27"); // "'"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(42),"%2A"); // "*"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(44),"%2C"); // ","
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(58),"%3A"); // ":"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(59),"%3B"); // ";"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(60),"%3C"); // "<"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(61),"%3D"); // "="
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(62),"%3E"); // ">"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(63),"%3F"); // "?"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(91),"%5B"); // "["
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(93),"%5D"); // "]"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(94),"%5E"); // "^"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(96),"%60"); // "`"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(123),"%7B"); // "{"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(124),"%7C"); // "|"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(125),"%7D"); // "}"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,Символ(32),"%20"); // " " (пробел)
Иначе
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%25",Символ(37) ); // "%"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%21",Символ(33) ); // "!"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%22",Символ(34) ); // """ (кавычка)
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%23",Символ(35) ); // "#"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%24",Символ(36) ); // "$"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%26",Символ(38) ); // "&"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%27",Символ(39) ); // "'"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%2A",Символ(42) ); // "*"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%2C",Символ(44) ); // ","
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%3A",Символ(58) ); // ":"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%3B",Символ(59) ); // ";"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%3C",Символ(60) ); // "<"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%3D",Символ(61) ); // "="
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%3E",Символ(62) ); // ">"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%3F",Символ(63) ); // "?"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%5B",Символ(91) ); // "["
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%5D",Символ(93) ); // "]"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%5E",Символ(94) ); // "^"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%60",Символ(96) ); // "`"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%7B",Символ(123)); // "{"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%7C",Символ(124)); // "|"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%7D",Символ(125)); // "}"
ОбрабатываемаяСтрока = СтрЗаменить(ОбрабатываемаяСтрока,"%20",Символ(32) ); // " " (пробел)
Конецесли;
Возврат ОбрабатываемаяСтрока;
КонецФункции //ЗаменитьЗарезервированныеСимволы // --- Григорьев 12.12.2018

View File

@ -1005,7 +1005,6 @@
<CommonModule>узОбновлениеИнформационнойБазы</CommonModule> <CommonModule>узОбновлениеИнформационнойБазы</CommonModule>
<CommonModule>узОбщийМодульКлиент</CommonModule> <CommonModule>узОбщийМодульКлиент</CommonModule>
<CommonModule>узОбщийМодульСервер</CommonModule> <CommonModule>узОбщийМодульСервер</CommonModule>
<CommonModule>узТелеграммСервер</CommonModule>
<CommonModule>узРаботаСБуферомОбменаКлиент</CommonModule> <CommonModule>узРаботаСБуферомОбменаКлиент</CommonModule>
<CommonModule>узТелеграмБот</CommonModule> <CommonModule>узТелеграмБот</CommonModule>
<CommonModule>узТелеграмБотКоманды</CommonModule> <CommonModule>узТелеграмБотКоманды</CommonModule>

View File

@ -1,401 +1,402 @@
 
Функция ПолучитьНастройкиДляРаботыСТелеграм() // #240 Пиганов Г.В. 2020-09-08
//Функция ПолучитьНастройкиДляРаботыСТелеграм()
пНастройкиДляРаботыСТелеграм = Новый Структура; //
// пНастройкиДляРаботыСТелеграм = Новый Структура;
//ТокенТелеграмБота = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТокенТелеграмБота", //
// Тип("Строка"),,Ложь); // //ТокенТелеграмБота = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТокенТелеграмБота",
//Если Не ЗначениеЗаполнено(ТокенТелеграмБота) Тогда // // Тип("Строка"),,Ложь);
// Возврат; // //Если Не ЗначениеЗаполнено(ТокенТелеграмБота) Тогда
//КонецЕсли; // // Возврат;
// //КонецЕсли;
пВсеНастройкиПолучены = Истина; //
пТокенТелеграмБота = Константы.узТелеграмм_ТокенБота.Получить(); // пВсеНастройкиПолучены = Истина;
Если Не ЗначениеЗаполнено(пТокенТелеграмБота) Тогда // пТокенТелеграмБота = Константы.узТелеграмм_ТокенБота.Получить();
пВсеНастройкиПолучены = Ложь; // Если Не ЗначениеЗаполнено(пТокенТелеграмБота) Тогда
КонецЕсли; // пВсеНастройкиПолучены = Ложь;
// КонецЕсли;
пМассивНастроекПроксиСерверов = РегистрыСведений.узПроксиСерверы.ПолучитьМассивНастроекПроксиСерверов(); //
пМассивНастроекПроксиСерверовКоличество = пМассивНастроекПроксиСерверов.Количество(); // пМассивНастроекПроксиСерверов = РегистрыСведений.узПроксиСерверы.ПолучитьМассивНастроекПроксиСерверов();
// + #232 Ruflex @RomanUpworksTeam // пМассивНастроекПроксиСерверовКоличество = пМассивНастроекПроксиСерверов.Количество();
//Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда // // + #232 Ruflex @RomanUpworksTeam
// пВсеНастройкиПолучены = Ложь; // //Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда
//КонецЕсли; // // пВсеНастройкиПолучены = Ложь;
// - #232 Ruflex @RomanUpworksTeam // //КонецЕсли;
// // - #232 Ruflex @RomanUpworksTeam
пНастройкиДляРаботыСТелеграм.Вставить("ТокенТелеграмБота", пТокенТелеграмБота); //
пНастройкиДляРаботыСТелеграм.Вставить("МассивНастроекПроксиСерверов", пМассивНастроекПроксиСерверов); // пНастройкиДляРаботыСТелеграм.Вставить("ТокенТелеграмБота", пТокенТелеграмБота);
пНастройкиДляРаботыСТелеграм.Вставить("НомерТекущейНастройкиПрокси", 0); // пНастройкиДляРаботыСТелеграм.Вставить("МассивНастроекПроксиСерверов", пМассивНастроекПроксиСерверов);
пНастройкиДляРаботыСТелеграм.Вставить("ВсеНастройкиПолучены", пВсеНастройкиПолучены); // пНастройкиДляРаботыСТелеграм.Вставить("НомерТекущейНастройкиПрокси", 0);
Если пВсеНастройкиПолучены = Ложь Тогда // пНастройкиДляРаботыСТелеграм.Вставить("ВсеНастройкиПолучены", пВсеНастройкиПолучены);
ЗаписьЖурналаРегистрации("Телеграмм.Настройки", УровеньЖурналаРегистрации.Ошибка,, // Если пВсеНастройкиПолучены = Ложь Тогда
, "Не смогли получить настройки телеграм"); // ЗаписьЖурналаРегистрации("Телеграмм.Настройки", УровеньЖурналаРегистрации.Ошибка,,
// , "Не смогли получить настройки телеграм");
КонецЕсли;
// КонецЕсли;
Возврат пНастройкиДляРаботыСТелеграм; //
// Возврат пНастройкиДляРаботыСТелеграм;
КонецФункции //
//КонецФункции
Процедура ПрочитатьСообщенияTelegram() Экспорт
//Процедура ПрочитатьСообщенияTelegram() Экспорт
НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм(); //
Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда // НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм();
Возврат; // Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда
КонецЕсли; // Возврат;
// КонецЕсли;
Если ЗначениеЗаполнено(MaxMessangeID) Тогда //
ИДПоследнегоПринятогоСообщения = MaxMessangeID; // Если ЗначениеЗаполнено(MaxMessangeID) Тогда
Иначе // ИДПоследнегоПринятогоСообщения = MaxMessangeID;
ИДПоследнегоПринятогоСообщения = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТелеграмMaxMessangeID", Тип("Строка"),,Ложь); // Иначе
КонецЕсли; // ИДПоследнегоПринятогоСообщения = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТелеграмMaxMessangeID", Тип("Строка"),,Ложь);
// КонецЕсли;
//
Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/getUpdates" + ?(ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения), "?offset=" + ИДПоследнегоПринятогоСообщения, ""); //
ЗапросHTTP = Новый HTTPЗапрос(Ресурс); // Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/getUpdates" + ?(ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения), "?offset=" + ИДПоследнегоПринятогоСообщения, "");
ЗапросHTTP.Заголовки.Вставить("Content-type", "keep-alive"); // ЗапросHTTP = Новый HTTPЗапрос(Ресурс);
// ЗапросHTTP.Заголовки.Вставить("Content-type", "keep-alive");
Ответ = Неопределено; //
ВыполнитьЗапросHTTP_Telegram(Ответ, // Ответ = Неопределено;
ЗапросHTTP, // ВыполнитьЗапросHTTP_Telegram(Ответ,
НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов, // ЗапросHTTP,
НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси, // НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов,
Истина); // НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси,
// Истина);
Если Ответ = Неопределено //
Или Ответ.КодСостояния < 200 // Если Ответ = Неопределено
Или Ответ.КодСостояния >= 300 Тогда // Или Ответ.КодСостояния < 200
// Или Ответ.КодСостояния >= 300 Тогда
ЗаписьЖурналаРегистрации("Телеграм.ПолучениеСообщений", УровеньЖурналаРегистрации.Ошибка,,
, "Не смогли получить сообщения телеграм"); // ЗаписьЖурналаРегистрации("Телеграм.ПолучениеСообщений", УровеньЖурналаРегистрации.Ошибка,,
Возврат; // , "Не смогли получить сообщения телеграм");
КонецЕсли; // Возврат;
// КонецЕсли;
ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку(); //
HTTPОтвет = ОтветСтрокаJSON; // ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку();
пЧтениеJSON = Новый ЧтениеJSON; // HTTPОтвет = ОтветСтрокаJSON;
пЧтениеJSON.УстановитьСтроку(ОтветСтрокаJSON); // пЧтениеJSON = Новый ЧтениеJSON;
ОтветСоответсвие = ПрочитатьJSON(пЧтениеJSON, Истина);//(пЧтениеJSON, Ложь, , , "ФункцияВосстановленияJSON", ЭтотОбъект); // пЧтениеJSON.УстановитьСтроку(ОтветСтрокаJSON);
пЧтениеJSON.Закрыть(); // ОтветСоответсвие = ПрочитатьJSON(пЧтениеJSON, Истина);//(пЧтениеJSON, Ложь, , , "ФункцияВосстановленияJSON", ЭтотОбъект);
// пЧтениеJSON.Закрыть();
Если ОтветСоответсвие["ok"] <> Истина Тогда //
Возврат; // Если ОтветСоответсвие["ok"] <> Истина Тогда
КонецЕсли; // Возврат;
// КонецЕсли;
МассивResult = ОтветСоответсвие["result"]; //
ИДПоследнегоПринятогоСообщения = Неопределено; // МассивResult = ОтветСоответсвие["result"];
// ИДПоследнегоПринятогоСообщения = Неопределено;
ТЗПользователиТелеграмм = ПолучитьТЗПользователиТелеграмм();
// ТЗПользователиТелеграмм = ПолучитьТЗПользователиТелеграмм();
Для Каждого СоответсвиеMessange Из МассивResult Цикл //
// Для Каждого СоответсвиеMessange Из МассивResult Цикл
ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ="); //
СоответсвиеMessange_message = СоответсвиеMessange.Получить("message"); // ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ=");
Если СоответсвиеMessange_message = Неопределено Тогда // СоответсвиеMessange_message = СоответсвиеMessange.Получить("message");
Продолжить; // Если СоответсвиеMessange_message = Неопределено Тогда
КонецЕсли; // Продолжить;
ДатаСообщения = '19700101' + СоответсвиеMessange_message["date"] +7*60*60; // КонецЕсли;
СоответсвиеFrom = СоответсвиеMessange_message["from"]; // ДатаСообщения = '19700101' + СоответсвиеMessange_message["date"] +7*60*60;
пLastName = СоответсвиеFrom["last_name"]; // СоответсвиеFrom = СоответсвиеMessange_message["from"];
пFirstName = СоответсвиеFrom["first_name"]; // пLastName = СоответсвиеFrom["last_name"];
пСhatИД = Формат(СоответсвиеMessange_message["chat"]["id"], "ЧГ="); // пFirstName = СоответсвиеFrom["first_name"];
Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда // пСhatИД = Формат(СоответсвиеMessange_message["chat"]["id"], "ЧГ=");
MessageText = СоответсвиеMessange_message.Получить("text"); // Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда
// MessageText = СоответсвиеMessange_message.Получить("text");
// + Иванов А.Б. 2020-07-11
// Если Найти(MessageText, "/addwork") <> 0 Тогда // // + Иванов А.Б. 2020-07-11
// Запрос = Новый Запрос; // // Если Найти(MessageText, "/addwork") <> 0 Тогда
// Запрос.Текст = // // Запрос = Новый Запрос;
// "ВЫБРАТЬ ПЕРВЫЕ 1 // // Запрос.Текст =
// | Пользователи.Ссылка КАК Пользователь // // "ВЫБРАТЬ ПЕРВЫЕ 1
// |ИЗ // // | Пользователи.Ссылка КАК Пользователь
// | Справочник.Пользователи КАК Пользователи // // |ИЗ
// |ГДЕ // // | Справочник.Пользователи КАК Пользователи
// | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм"; // // |ГДЕ
// // // | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм";
// Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД)); // //
// // // Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД));
// РезультатЗапроса = Запрос.Выполнить(); // //
// Если РезультатЗапроса.Пустой() Тогда // // РезультатЗапроса = Запрос.Выполнить();
// Продолжить; // // Если РезультатЗапроса.Пустой() Тогда
// КонецЕсли; // // Продолжить;
// // // КонецЕсли;
// Выборка = РезультатЗапроса.Выбрать(); // //
// Пока Выборка.Следующий() Цикл // // Выборка = РезультатЗапроса.Выбрать();
// ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); // // Пока Выборка.Следующий() Цикл
// ТекущиеДелаОбъект.Автор = Выборка.Пользователь; // // ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
// ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); // // ТекущиеДелаОбъект.Автор = Выборка.Пользователь;
// ТекущиеДелаОбъект.Записать(); // // ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", "");
// КонецЦикла; // // ТекущиеДелаОбъект.Записать();
// // // КонецЦикла;
// КонецЕсли; // //
// // КонецЕсли;
Если Найти(MessageText, "/addwork") = 0 Тогда //
Продолжить; // Если Найти(MessageText, "/addwork") = 0 Тогда
КонецЕсли; // Продолжить;
// КонецЕсли;
пузИДПользователяТелеграмм = Число(пСhatИД); //
// пузИДПользователяТелеграмм = Число(пСhatИД);
ПараметрыОтбора=Новый Структура(); //
ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм); // ПараметрыОтбора=Новый Структура();
НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора); // ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм);
ВсегоНайденныеСтроки = НайденныеСтроки.Количество(); // НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора);
ТекстОшибки = ""; // ВсегоНайденныеСтроки = НайденныеСтроки.Количество();
Если ВсегоНайденныеСтроки = 1 тогда // ТекстОшибки = "";
СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0]; // Если ВсегоНайденныеСтроки = 1 тогда
ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда // СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0];
ТекстОшибки = "Ошибка! Найдено более 1 строки"; // ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда
Иначе // ТекстОшибки = "Ошибка! Найдено более 1 строки";
ТекстОшибки = "Ошибка! Не найдена строка"; // Иначе
Конецесли; // ТекстОшибки = "Ошибка! Не найдена строка";
// Конецесли;
Если ЗначениеЗаполнено(ТекстОшибки) Тогда //
ТекстОшибки = ТекстОшибки // Если ЗначениеЗаполнено(ТекстОшибки) Тогда
+" в ""ТЗПользователиТелеграмм"" для "; // ТекстОшибки = ТекстОшибки
Для каждого ЭлементОтбора из ПараметрыОтбора цикл // +" в ""ТЗПользователиТелеграмм"" для ";
ТекстОшибки = ТекстОшибки // Для каждого ЭлементОтбора из ПараметрыОтбора цикл
+" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]"; // ТекстОшибки = ТекстОшибки
Конеццикла; // +" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]";
ВызватьИсключение ТекстОшибки; // Конеццикла;
Конецесли; // ВызватьИсключение ТекстОшибки;
// Конецесли;
ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); //
ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь; // ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); // ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь;
ТекущиеДелаОбъект.Записать(); // ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", "");
// - Иванов А.Б. 2020-07-11 // ТекущиеДелаОбъект.Записать();
// // - Иванов А.Б. 2020-07-11
//
ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда //
// ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда
КонецЕсли; //
// КонецЕсли;
КонецЦикла; //
// КонецЦикла;
//
Если ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения) Тогда //
Справочники.узКонстанты.УстановитьЗначениеКонстанты("ТелеграмMaxMessangeID", ИДПоследнегоПринятогоСообщения); // Если ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения) Тогда
MaxMessangeID = ИДПоследнегоПринятогоСообщения; // Справочники.узКонстанты.УстановитьЗначениеКонстанты("ТелеграмMaxMessangeID", ИДПоследнегоПринятогоСообщения);
КонецЕсли; // MaxMessangeID = ИДПоследнегоПринятогоСообщения;
// КонецЕсли;
КонецПроцедуры //
//КонецПроцедуры
Функция ПолучитьТЗПользователиТелеграмм()
//Функция ПолучитьТЗПользователиТелеграмм()
Запрос = Новый Запрос; //
Запрос.Текст = "ВЫБРАТЬ // Запрос = Новый Запрос;
| МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь, // Запрос.Текст = "ВЫБРАТЬ
| Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм // | МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь,
|ИЗ // | Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм
| Справочник.Пользователи КАК Пользователи // |ИЗ
|ГДЕ // | Справочник.Пользователи КАК Пользователи
| Пользователи.узИДПользователяТелеграмм <> 0 // |ГДЕ
| // | Пользователи.узИДПользователяТелеграмм <> 0
|СГРУППИРОВАТЬ ПО // |
| Пользователи.узИДПользователяТелеграмм"; // |СГРУППИРОВАТЬ ПО
// | Пользователи.узИДПользователяТелеграмм";
ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить(); //
// ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить();
Возврат ТЗПользователиТелеграмм; //
// Возврат ТЗПользователиТелеграмм;
КонецФункции //
//КонецФункции
Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт
//Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт
Если МассивПользователейДляОтправки.Количество() = 0 Тогда //
// ++ 79Vlad 20.06.2019 #174 \\ // Если МассивПользователейДляОтправки.Количество() = 0 Тогда
Если УведомлятьОРезультате Тогда // // ++ 79Vlad 20.06.2019 #174 \\
Сообщение = Новый СообщениеПользователю; // Если УведомлятьОРезультате Тогда
Сообщение.Текст = "Сообщение не отправлено, т.к. не указан получатель."; // Сообщение = Новый СообщениеПользователю;
Сообщение.Сообщить(); // Сообщение.Текст = "Сообщение не отправлено, т.к. не указан получатель.";
КонецЕсли; // Сообщение.Сообщить();
// -- 79Vlad 20.06.2019 #174 // КонецЕсли;
Возврат; // // -- 79Vlad 20.06.2019 #174
КонецЕсли; // Возврат;
// КонецЕсли;
НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм(); //
Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда // НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм();
// ++ 79Vlad 20.06.2019 #174 \\ // Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда
Если УведомлятьОРезультате Тогда // // ++ 79Vlad 20.06.2019 #174 \\
Сообщение = Новый СообщениеПользователю; // Если УведомлятьОРезультате Тогда
Сообщение.Текст = "Сообщение не отправлено, т.к. не смогли получить настройки телеграм."; // Сообщение = Новый СообщениеПользователю;
Сообщение.Сообщить(); // Сообщение.Текст = "Сообщение не отправлено, т.к. не смогли получить настройки телеграм.";
КонецЕсли; // Сообщение.Сообщить();
// -- 79Vlad 20.06.2019 #174 // КонецЕсли;
Возврат; // // -- 79Vlad 20.06.2019 #174
КонецЕсли; // Возврат;
// КонецЕсли;
Для Каждого Пользователь Из МассивПользователейДляОтправки Цикл
// Для Каждого Пользователь Из МассивПользователейДляОтправки Цикл
ИДПользователяТелеграм = Пользователь.узИДПользователяТелеграмм; //
// ИДПользователяТелеграм = Пользователь.узИДПользователяТелеграмм;
Если Не ЗначениеЗаполнено(ИДПользователяТелеграм) Тогда //
Продолжить; // Если Не ЗначениеЗаполнено(ИДПользователяТелеграм) Тогда
КонецЕсли; // Продолжить;
// КонецЕсли;
//ТекстСообщения = СтрЗаменить(ТекстСообщения, "#", ""); //
СообщениеОтправлено = Ложь; // //ТекстСообщения = СтрЗаменить(ТекстСообщения, "#", "");
// СообщениеОтправлено = Ложь;
// Данные =
// "{ // // Данные =
//|""chat_id"":"""+Формат(Выборка.ИДПользователяТелеграмм, "ЧГ=")+""", // // "{
//|""text"":""Текст"", // //|""chat_id"":"""+Формат(Выборка.ИДПользователяТелеграмм, "ЧГ=")+""",
//|""reply_markup"": { // //|""text"":""Текст"",
//| ""inline_keyboard"": [ // //|""reply_markup"": {
//| [{ // //| ""inline_keyboard"": [
//| ""text"": ""ОбъектСогласования"", // //| [{
//| ""url"":""http://192.168.13.130/BPS/ru_RU/#e1cib/data/Справочник.бпсПредметыСогласований?ref=838318dbf213445c11e8e41681645d42"" // //| ""text"": ""ОбъектСогласования"",
//| }] // //| ""url"":""http://192.168.13.130/BPS/ru_RU/#e1cib/data/Справочник.бпсПредметыСогласований?ref=838318dbf213445c11e8e41681645d42""
//|] // //| }]
//|} // //|]
//|} "; // //|}
// //|} ";
Структура = Новый Соответствие;
Структура.Вставить("chat_id",Формат(ИДПользователяТелеграм, "ЧГ=")); // Структура = Новый Соответствие;
Структура.Вставить("text", ТекстСообщения); // Структура.Вставить("chat_id",Формат(ИДПользователяТелеграм, "ЧГ="));
// Структура.Вставить("text", ТекстСообщения);
// ++ 79Vlad 20.06.2019 #174 \\ //
Структура.Вставить("parse_mode","Markdown"); // // ++ 79Vlad 20.06.2019 #174 \\
Структура.Вставить("disable_web_page_preview","true"); // Структура.Вставить("parse_mode","Markdown");
// -- 79Vlad 20.06.2019 #174 // Структура.Вставить("disable_web_page_preview","true");
// // -- 79Vlad 20.06.2019 #174
Массив_reply_markup = Новый Массив; //
// Массив_reply_markup = Новый Массив;
//Пример создания конпки в телеграм //
//Если ЗначениеЗаполнено(Выборка.ОбъектБД) // //Пример создания конпки в телеграм
// И ЗначениеЗаполнено(АдресПубликации) Тогда // //Если ЗначениеЗаполнено(Выборка.ОбъектБД)
// // // И ЗначениеЗаполнено(АдресПубликации) Тогда
// Структура_inline_keyboard = Новый Структура; // //
// Структура_inline_keyboard.Вставить("text", Строка(Выборка.ОбъектБД)); // // Структура_inline_keyboard = Новый Структура;
// Структура_inline_keyboard.Вставить("url", АдресПубликации + "#" + ПолучитьНавигационнуюСсылку(Выборка.ОбъектБД)); // // Структура_inline_keyboard.Вставить("text", Строка(Выборка.ОбъектБД));
// // // Структура_inline_keyboard.Вставить("url", АдресПубликации + "#" + ПолучитьНавигационнуюСсылку(Выборка.ОбъектБД));
// Массив_reply_markup.Добавить(Структура_inline_keyboard); // //
//КонецЕсли; // // Массив_reply_markup.Добавить(Структура_inline_keyboard);
//Массив_inline_keyboard = Новый Массив; // //КонецЕсли;
//Массив_inline_keyboard.Добавить(Массив_reply_markup); // //Массив_inline_keyboard = Новый Массив;
// // //Массив_inline_keyboard.Добавить(Массив_reply_markup);
//Структура_reply_markup = Новый Структура; // //
//Структура_reply_markup.Вставить("inline_keyboard",Массив_inline_keyboard); // //Структура_reply_markup = Новый Структура;
// // //Структура_reply_markup.Вставить("inline_keyboard",Массив_inline_keyboard);
//Структура.Вставить("reply_markup", Структура_reply_markup); // //
// //Структура.Вставить("reply_markup", Структура_reply_markup);
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON; //
ЗаписьJSON = Новый ЗаписьJSON; // ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); // ЗаписьJSON = Новый ЗаписьJSON;
ЗаписатьJSON(ЗаписьJSON, Структура); // ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
Данные = ЗаписьJSON.Закрыть(); // ЗаписатьJSON(ЗаписьJSON, Структура);
// Данные = ЗаписьJSON.Закрыть();
Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/sendMessage"; //
ЗапросHTTP = Новый HTTPЗапрос(Ресурс); // Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/sendMessage";
ЗапросHTTP.Заголовки.Вставить("Content-type", "application/json"); // ЗапросHTTP = Новый HTTPЗапрос(Ресурс);
ЗапросHTTP.УстановитьТелоИзСтроки(Данные); // ЗапросHTTP.Заголовки.Вставить("Content-type", "application/json");
// ЗапросHTTP.УстановитьТелоИзСтроки(Данные);
Ответ = Неопределено;
ВыполнитьЗапросHTTP_Telegram(Ответ, // Ответ = Неопределено;
ЗапросHTTP, // ВыполнитьЗапросHTTP_Telegram(Ответ,
НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов, // ЗапросHTTP,
НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси); // НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов,
Если Ответ = Неопределено // НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси);
Или Ответ.КодСостояния < 200 // Если Ответ = Неопределено
Или Ответ.КодСостояния >= 300 Тогда // Или Ответ.КодСостояния < 200
// Или Ответ.КодСостояния >= 300 Тогда
ЗаписьЖурналаРегистрации("Телеграм.ОтправкаСообщений", УровеньЖурналаРегистрации.Ошибка,, //
, "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]"); // ЗаписьЖурналаРегистрации("Телеграм.ОтправкаСообщений", УровеньЖурналаРегистрации.Ошибка,,
Иначе // , "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]");
СообщениеОтправлено = Истина; // Иначе
КонецЕсли; // СообщениеОтправлено = Истина;
// КонецЕсли;
// ++ 79Vlad 20.06.2019 #174 \\ //
Если УведомлятьОРезультате Тогда // // ++ 79Vlad 20.06.2019 #174 \\
ТекстУведомления = "Сообщение удачно отправлено" ; // Если УведомлятьОРезультате Тогда
Если НЕ СообщениеОтправлено Тогда // ТекстУведомления = "Сообщение удачно отправлено" ;
ТекстУведомления = "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]. Подробнее смотрите в журнале регистрации." // Если НЕ СообщениеОтправлено Тогда
КонецЕсли; // ТекстУведомления = "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]. Подробнее смотрите в журнале регистрации."
Сообщение = Новый СообщениеПользователю; // КонецЕсли;
Сообщение.Текст = ТекстУведомления; // Сообщение = Новый СообщениеПользователю;
Сообщение.Сообщить(); // Сообщение.Текст = ТекстУведомления;
КонецЕсли; // Сообщение.Сообщить();
// -- 79Vlad 20.06.2019 #174 // КонецЕсли;
// // -- 79Vlad 20.06.2019 #174
КонецЦикла; //
// КонецЦикла;
КонецПроцедуры
//КонецПроцедуры
Процедура ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON = Ложь)
//Процедура ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON = Ложь)
Ответ = Неопределено; //
// Ответ = Неопределено;
// + #232 Ruflex @RomanUpworksTeam //
///+Ruflex // // + #232 Ruflex @RomanUpworksTeam
///-Ruflex // ///+Ruflex
//Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) ) Тогда // ///-Ruflex
// Возврат; // //Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) ) Тогда
//КонецЕсли; // // Возврат;
// //КонецЕсли;
Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда //
// Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда
Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) Тогда //
Возврат; // Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) Тогда
КонецЕсли; // Возврат;
// КонецЕсли;
НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси]; //
ИнтернетПрокси = Новый ИнтернетПрокси(Ложь); // НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси];
ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь); // ИнтернетПрокси = Новый ИнтернетПрокси(Ложь);
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,30,Новый ЗащищенноеСоединениеOpenSSL()); // ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь);
// Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,30,Новый ЗащищенноеСоединениеOpenSSL());
Иначе //
// Иначе
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL()); //
// Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL());
КонецЕсли; //
// + #232 Ruflex @RomanUpworksTeam // КонецЕсли;
// // + #232 Ruflex @RomanUpworksTeam
Попытка
// Попытка
Ответ = Соединение.ОтправитьДляОбработки(ЗапросHTTP); //
Если Ответ.КодСостояния < 200 Или Ответ.КодСостояния >= 300 Тогда // Ответ = Соединение.ОтправитьДляОбработки(ЗапросHTTP);
НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; // Если Ответ.КодСостояния < 200 Или Ответ.КодСостояния >= 300 Тогда
РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); // НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
Ответ = Неопределено; // РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); // Ответ = Неопределено;
Возврат; // ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
КонецЕсли; // Возврат;
// КонецЕсли;
ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку(); //
// ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку();
Если ВОтветОжидаемJSON
И СтрНайти(НРег(ОтветСтрокаJSON), "<html>") <> 0 Тогда //прокси может уже не работать, или внесен в гос реестр // Если ВОтветОжидаемJSON
// И СтрНайти(НРег(ОтветСтрокаJSON), "<html>") <> 0 Тогда //прокси может уже не работать, или внесен в гос реестр
НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; //
РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); // НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
Ответ = Неопределено; // РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); // Ответ = Неопределено;
Возврат; // ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
// Возврат;
Иначе //
// Иначе
РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, 1);
Возврат; // РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, 1);
// Возврат;
КонецЕсли; //
// КонецЕсли;
Исключение //
// Исключение
// + #232 Ruflex @RomanUpworksTeam //
//НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; // // + #232 Ruflex @RomanUpworksTeam
//РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); // //НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
//ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); // //РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
// //ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда //
// Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда
НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); // НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); // РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
// ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
Конецесли; //
// - #232 Ruflex @RomanUpworksTeam // Конецесли;
КонецПопытки // // - #232 Ruflex @RomanUpworksTeam
// КонецПопытки
КонецПроцедуры //
//КонецПроцедуры

View File

@ -2,18 +2,21 @@
&НаСервере &НаСервере
Процедура ОтправитьСообщениеНаСервере() Процедура ОтправитьСообщениеНаСервере()
//+ #240 Пиганов Г.В. 2020-09-08
//+ #174 Кравцов А.В. 2019-06-06 //+ #174 Кравцов А.В. 2019-06-06
//МассивПользователейДляОтправки = Новый Массив; //МассивПользователейДляОтправки = Новый Массив;
//МассивПользователейДляОтправки.Добавить(ЭтотОбъект.ПользовательДляОтправки); //МассивПользователейДляОтправки.Добавить(ЭтотОбъект.ПользовательДляОтправки);
МассивПользователейКому = Новый Массив; //МассивПользователейКому = Новый Массив;
МассивПользователейКому.Добавить(ЭтотОбъект.ПользовательДляОтправки); //МассивПользователейКому.Добавить(ЭтотОбъект.ПользовательДляОтправки);
МассивПользователейДляОтправки = узТелеграммСервер.ПолучитьМассивПолучателей(МассивПользователейКому); //МассивПользователейДляОтправки = узТелеграммСервер.ПолучитьМассивПолучателей(МассивПользователейКому);
//- #174 Кравцов А.В. 2019-06-06 //- #174 Кравцов А.В. 2019-06-06
пОбъект = РеквизитФормыВЗначение("Объект"); //пОбъект = РеквизитФормыВЗначение("Объект");
// ++ 79Vlad 20.06.2019 #174 \\ // ++ 79Vlad 20.06.2019 #174 \\
//пОбъект.ОтправитьСообщениеTelegram(ЭтотОбъект.ТескстСообщенияДляОтправки, МассивПользователейДляОтправки); //пОбъект.ОтправитьСообщениеTelegram(ЭтотОбъект.ТескстСообщенияДляОтправки, МассивПользователейДляОтправки);
пОбъект.ОтправитьСообщениеTelegram(ЭтотОбъект.ТескстСообщенияДляОтправки, МассивПользователейДляОтправки,Истина); //пОбъект.ОтправитьСообщениеTelegram(ЭтотОбъект.ТескстСообщенияДляОтправки, МассивПользователейДляОтправки,Истина);
// -- 79Vlad 20.06.2019 #174 // -- 79Vlad 20.06.2019 #174
узТелеграмБот.ОтправитьСообщение(ЭтотОбъект.ТескстСообщенияДляОтправки, ЭтотОбъект.ПользовательДляОтправки, Истина);
//- #240 Пиганов Г.В. 2020-09-08
КонецПроцедуры КонецПроцедуры
@ -25,9 +28,17 @@
&НаСервере &НаСервере
Процедура ПрочитатьСообщенияНаСервере() Процедура ПрочитатьСообщенияНаСервере()
пОбъект = РеквизитФормыВЗначение("Объект"); //+ #240 Пиганов Г.В. 2020-09-08
пОбъект.ПрочитатьСообщенияTelegram(); //пОбъект = РеквизитФормыВЗначение("Объект");
ЗначениеВРеквизитФормы(пОбъект, "Объект"); //пОбъект.ПрочитатьСообщенияTelegram();
//ЗначениеВРеквизитФормы(пОбъект, "Объект");
Ответ = Неопределено;
НовыеСообщения = узТелеграмБот.ПолучитьНовыеСообщения(Объект.MaxMessangeID, Ответ);
Объект.HTTPОтвет = Ответ.ПолучитьТелоКакСтроку();
Для Каждого Сообщение Из НовыеСообщения Цикл
узТелеграмБотКоманды.ОбработатьКомандыСообщения(Сообщение);
КонецЦикла;
//- #240 Пиганов Г.В. 2020-09-08
КонецПроцедуры КонецПроцедуры

View File

@ -16,7 +16,7 @@
<Picture/> <Picture/>
<Content> <Content>
<xr:Item xsi:type="xr:MDObjectRef">Constant.узТелеграмм_ТокенБота</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">Constant.узТелеграмм_ТокенБота</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.узТелеграммСервер</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">8f79d0f2-3bdc-43f6-ae0d-3393a1b1c89a</xr:Item>
</Content> </Content>
</Properties> </Properties>
<ChildObjects/> <ChildObjects/>