diff --git a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl index 2f892b608..b291ba0b9 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl @@ -523,9 +523,12 @@ КонецЕсли; //- #190 SZ 16.03.2020 + //+ #240 Пиганов Г.В. 2020-09-08 // +++ 79Vlad 20.12.2018 - узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); + //узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); // --- 79Vlad 20.12.2018 + узТелеграмБот.ОтправитьСообщение(ДопПараметры.ТекстПисьма, Исполнитель); + //- #240 Пиганов Г.В. 2020-09-08 КонецПроцедуры @@ -613,9 +616,12 @@ КонецЕсли; //- #190 SZ 16.03.2020 + //+ #240 Пиганов Г.В. 2020-09-08 // +++ 79Vlad 20.12.2018 - узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); + //узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); // --- 79Vlad 20.12.2018 + узТелеграмБот.ОтправитьСообщение(ДопПараметры.ТекстПисьма, СтарыйИсполнитель); + //- #240 Пиганов Г.В. 2020-09-08 КонецПроцедуры @@ -652,8 +658,11 @@ узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры); + //+ #240 Пиганов Г.В. 2020-09-08 //Павлюков - узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); + //узТелеграммСервер.ВыполнитьРассылку(ДопПараметры); + узТелеграмБот.ОтправитьСообщение(ДопПараметры.ТекстСообщения, МассивНаблюдателей); + //- #240 Пиганов Г.В. 2020-09-08 КонецПроцедуры diff --git a/src/cf/CommonModules/узТелеграммСервер.xml b/src/cf/CommonModules/узТелеграммСервер.xml deleted file mode 100644 index f3fc03858..000000000 --- a/src/cf/CommonModules/узТелеграммСервер.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - узТелеграммСервер - - - ru - Уз телеграмм сервер - - - - false - false - true - false - false - true - false - DontUse - - - \ No newline at end of file diff --git a/src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl b/src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl deleted file mode 100644 index 675902fce..000000000 --- a/src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl +++ /dev/null @@ -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 - - - diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml index d4faa1c72..782063788 100644 --- a/src/cf/Configuration.xml +++ b/src/cf/Configuration.xml @@ -1005,7 +1005,6 @@ узОбновлениеИнформационнойБазы узОбщийМодульКлиент узОбщийМодульСервер - узТелеграммСервер узРаботаСБуферомОбменаКлиент узТелеграмБот узТелеграмБотКоманды diff --git a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl index 1ef0a942e..8db909bbf 100644 --- a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl +++ b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl @@ -1,401 +1,402 @@  -Функция ПолучитьНастройкиДляРаботыСТелеграм() - - пНастройкиДляРаботыСТелеграм = Новый Структура; - - //ТокенТелеграмБота = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТокенТелеграмБота", - // Тип("Строка"),,Ложь); - //Если Не ЗначениеЗаполнено(ТокенТелеграмБота) Тогда - // Возврат; - //КонецЕсли; - - пВсеНастройкиПолучены = Истина; - пТокенТелеграмБота = Константы.узТелеграмм_ТокенБота.Получить(); - Если Не ЗначениеЗаполнено(пТокенТелеграмБота) Тогда - пВсеНастройкиПолучены = Ложь; - КонецЕсли; +// #240 Пиганов Г.В. 2020-09-08 +//Функция ПолучитьНастройкиДляРаботыСТелеграм() +// +// пНастройкиДляРаботыСТелеграм = Новый Структура; +// +// //ТокенТелеграмБота = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТокенТелеграмБота", +// // Тип("Строка"),,Ложь); +// //Если Не ЗначениеЗаполнено(ТокенТелеграмБота) Тогда +// // Возврат; +// //КонецЕсли; +// +// пВсеНастройкиПолучены = Истина; +// пТокенТелеграмБота = Константы.узТелеграмм_ТокенБота.Получить(); +// Если Не ЗначениеЗаполнено(пТокенТелеграмБота) Тогда +// пВсеНастройкиПолучены = Ложь; +// КонецЕсли; - - пМассивНастроекПроксиСерверов = РегистрыСведений.узПроксиСерверы.ПолучитьМассивНастроекПроксиСерверов(); - пМассивНастроекПроксиСерверовКоличество = пМассивНастроекПроксиСерверов.Количество(); - // + #232 Ruflex @RomanUpworksTeam - //Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда - // пВсеНастройкиПолучены = Ложь; - //КонецЕсли; - // - #232 Ruflex @RomanUpworksTeam - - пНастройкиДляРаботыСТелеграм.Вставить("ТокенТелеграмБота", пТокенТелеграмБота); - пНастройкиДляРаботыСТелеграм.Вставить("МассивНастроекПроксиСерверов", пМассивНастроекПроксиСерверов); - пНастройкиДляРаботыСТелеграм.Вставить("НомерТекущейНастройкиПрокси", 0); - пНастройкиДляРаботыСТелеграм.Вставить("ВсеНастройкиПолучены", пВсеНастройкиПолучены); - Если пВсеНастройкиПолучены = Ложь Тогда - ЗаписьЖурналаРегистрации("Телеграмм.Настройки", УровеньЖурналаРегистрации.Ошибка,, - , "Не смогли получить настройки телеграм"); +// +// пМассивНастроекПроксиСерверов = РегистрыСведений.узПроксиСерверы.ПолучитьМассивНастроекПроксиСерверов(); +// пМассивНастроекПроксиСерверовКоличество = пМассивНастроекПроксиСерверов.Количество(); +// // + #232 Ruflex @RomanUpworksTeam +// //Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда +// // пВсеНастройкиПолучены = Ложь; +// //КонецЕсли; +// // - #232 Ruflex @RomanUpworksTeam +// +// пНастройкиДляРаботыСТелеграм.Вставить("ТокенТелеграмБота", пТокенТелеграмБота); +// пНастройкиДляРаботыСТелеграм.Вставить("МассивНастроекПроксиСерверов", пМассивНастроекПроксиСерверов); +// пНастройкиДляРаботыСТелеграм.Вставить("НомерТекущейНастройкиПрокси", 0); +// пНастройкиДляРаботыСТелеграм.Вставить("ВсеНастройкиПолучены", пВсеНастройкиПолучены); +// Если пВсеНастройкиПолучены = Ложь Тогда +// ЗаписьЖурналаРегистрации("Телеграмм.Настройки", УровеньЖурналаРегистрации.Ошибка,, +// , "Не смогли получить настройки телеграм"); - КонецЕсли; - - Возврат пНастройкиДляРаботыСТелеграм; - -КонецФункции +// КонецЕсли; +// +// Возврат пНастройкиДляРаботыСТелеграм; +// +//КонецФункции -Процедура ПрочитатьСообщенияTelegram() Экспорт - - НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм(); - Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда - Возврат; - КонецЕсли; - - Если ЗначениеЗаполнено(MaxMessangeID) Тогда - ИДПоследнегоПринятогоСообщения = MaxMessangeID; - Иначе - ИДПоследнегоПринятогоСообщения = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТелеграмMaxMessangeID", Тип("Строка"),,Ложь); - КонецЕсли; - - - Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/getUpdates" + ?(ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения), "?offset=" + ИДПоследнегоПринятогоСообщения, ""); - ЗапросHTTP = Новый HTTPЗапрос(Ресурс); - ЗапросHTTP.Заголовки.Вставить("Content-type", "keep-alive"); - - Ответ = Неопределено; - ВыполнитьЗапросHTTP_Telegram(Ответ, - ЗапросHTTP, - НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов, - НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси, - Истина); - - Если Ответ = Неопределено - Или Ответ.КодСостояния < 200 - Или Ответ.КодСостояния >= 300 Тогда +//Процедура ПрочитатьСообщенияTelegram() Экспорт +// +// НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм(); +// Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда +// Возврат; +// КонецЕсли; +// +// Если ЗначениеЗаполнено(MaxMessangeID) Тогда +// ИДПоследнегоПринятогоСообщения = MaxMessangeID; +// Иначе +// ИДПоследнегоПринятогоСообщения = Справочники.узКонстанты.ПолучитьЗначениеКонстанты("ТелеграмMaxMessangeID", Тип("Строка"),,Ложь); +// КонецЕсли; +// +// +// Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/getUpdates" + ?(ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения), "?offset=" + ИДПоследнегоПринятогоСообщения, ""); +// ЗапросHTTP = Новый HTTPЗапрос(Ресурс); +// ЗапросHTTP.Заголовки.Вставить("Content-type", "keep-alive"); +// +// Ответ = Неопределено; +// ВыполнитьЗапросHTTP_Telegram(Ответ, +// ЗапросHTTP, +// НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов, +// НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси, +// Истина); +// +// Если Ответ = Неопределено +// Или Ответ.КодСостояния < 200 +// Или Ответ.КодСостояния >= 300 Тогда - ЗаписьЖурналаРегистрации("Телеграм.ПолучениеСообщений", УровеньЖурналаРегистрации.Ошибка,, - , "Не смогли получить сообщения телеграм"); - Возврат; - КонецЕсли; +// ЗаписьЖурналаРегистрации("Телеграм.ПолучениеСообщений", УровеньЖурналаРегистрации.Ошибка,, +// , "Не смогли получить сообщения телеграм"); +// Возврат; +// КонецЕсли; - - ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку(); - HTTPОтвет = ОтветСтрокаJSON; - пЧтениеJSON = Новый ЧтениеJSON; - пЧтениеJSON.УстановитьСтроку(ОтветСтрокаJSON); - ОтветСоответсвие = ПрочитатьJSON(пЧтениеJSON, Истина);//(пЧтениеJSON, Ложь, , , "ФункцияВосстановленияJSON", ЭтотОбъект); - пЧтениеJSON.Закрыть(); - - Если ОтветСоответсвие["ok"] <> Истина Тогда - Возврат; - КонецЕсли; - - МассивResult = ОтветСоответсвие["result"]; - ИДПоследнегоПринятогоСообщения = Неопределено; +// +// ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку(); +// HTTPОтвет = ОтветСтрокаJSON; +// пЧтениеJSON = Новый ЧтениеJSON; +// пЧтениеJSON.УстановитьСтроку(ОтветСтрокаJSON); +// ОтветСоответсвие = ПрочитатьJSON(пЧтениеJSON, Истина);//(пЧтениеJSON, Ложь, , , "ФункцияВосстановленияJSON", ЭтотОбъект); +// пЧтениеJSON.Закрыть(); +// +// Если ОтветСоответсвие["ok"] <> Истина Тогда +// Возврат; +// КонецЕсли; +// +// МассивResult = ОтветСоответсвие["result"]; +// ИДПоследнегоПринятогоСообщения = Неопределено; - ТЗПользователиТелеграмм = ПолучитьТЗПользователиТелеграмм(); - - Для Каждого СоответсвиеMessange Из МассивResult Цикл - - ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ="); - СоответсвиеMessange_message = СоответсвиеMessange.Получить("message"); - Если СоответсвиеMessange_message = Неопределено Тогда - Продолжить; - КонецЕсли; - ДатаСообщения = '19700101' + СоответсвиеMessange_message["date"] +7*60*60; - СоответсвиеFrom = СоответсвиеMessange_message["from"]; - пLastName = СоответсвиеFrom["last_name"]; - пFirstName = СоответсвиеFrom["first_name"]; - пСhatИД = Формат(СоответсвиеMessange_message["chat"]["id"], "ЧГ="); - Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда - MessageText = СоответсвиеMessange_message.Получить("text"); +// ТЗПользователиТелеграмм = ПолучитьТЗПользователиТелеграмм(); +// +// Для Каждого СоответсвиеMessange Из МассивResult Цикл +// +// ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ="); +// СоответсвиеMessange_message = СоответсвиеMessange.Получить("message"); +// Если СоответсвиеMessange_message = Неопределено Тогда +// Продолжить; +// КонецЕсли; +// ДатаСообщения = '19700101' + СоответсвиеMessange_message["date"] +7*60*60; +// СоответсвиеFrom = СоответсвиеMessange_message["from"]; +// пLastName = СоответсвиеFrom["last_name"]; +// пFirstName = СоответсвиеFrom["first_name"]; +// пСhatИД = Формат(СоответсвиеMessange_message["chat"]["id"], "ЧГ="); +// Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда +// MessageText = СоответсвиеMessange_message.Получить("text"); - // + Иванов А.Б. 2020-07-11 - // Если Найти(MessageText, "/addwork") <> 0 Тогда - // Запрос = Новый Запрос; - // Запрос.Текст = - // "ВЫБРАТЬ ПЕРВЫЕ 1 - // | Пользователи.Ссылка КАК Пользователь - // |ИЗ - // | Справочник.Пользователи КАК Пользователи - // |ГДЕ - // | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм"; - // - // Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД)); - // - // РезультатЗапроса = Запрос.Выполнить(); - // Если РезультатЗапроса.Пустой() Тогда - // Продолжить; - // КонецЕсли; - // - // Выборка = РезультатЗапроса.Выбрать(); - // Пока Выборка.Следующий() Цикл - // ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); - // ТекущиеДелаОбъект.Автор = Выборка.Пользователь; - // ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); - // ТекущиеДелаОбъект.Записать(); - // КонецЦикла; - // - // КонецЕсли; - - Если Найти(MessageText, "/addwork") = 0 Тогда - Продолжить; - КонецЕсли; - - пузИДПользователяТелеграмм = Число(пСhatИД); - - ПараметрыОтбора=Новый Структура(); - ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм); - НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора); - ВсегоНайденныеСтроки = НайденныеСтроки.Количество(); - ТекстОшибки = ""; - Если ВсегоНайденныеСтроки = 1 тогда - СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0]; - ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда - ТекстОшибки = "Ошибка! Найдено более 1 строки"; - Иначе - ТекстОшибки = "Ошибка! Не найдена строка"; - Конецесли; - - Если ЗначениеЗаполнено(ТекстОшибки) Тогда - ТекстОшибки = ТекстОшибки - +" в ""ТЗПользователиТелеграмм"" для "; - Для каждого ЭлементОтбора из ПараметрыОтбора цикл - ТекстОшибки = ТекстОшибки - +" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]"; - Конеццикла; - ВызватьИсключение ТекстОшибки; - Конецесли; - - ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); - ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь; - ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); - ТекущиеДелаОбъект.Записать(); - // - Иванов А.Б. 2020-07-11 - - - ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда - - КонецЕсли; - - КонецЦикла; - - - Если ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения) Тогда - Справочники.узКонстанты.УстановитьЗначениеКонстанты("ТелеграмMaxMessangeID", ИДПоследнегоПринятогоСообщения); - MaxMessangeID = ИДПоследнегоПринятогоСообщения; - КонецЕсли; - -КонецПроцедуры +// // + Иванов А.Б. 2020-07-11 +// // Если Найти(MessageText, "/addwork") <> 0 Тогда +// // Запрос = Новый Запрос; +// // Запрос.Текст = +// // "ВЫБРАТЬ ПЕРВЫЕ 1 +// // | Пользователи.Ссылка КАК Пользователь +// // |ИЗ +// // | Справочник.Пользователи КАК Пользователи +// // |ГДЕ +// // | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм"; +// // +// // Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД)); +// // +// // РезультатЗапроса = Запрос.Выполнить(); +// // Если РезультатЗапроса.Пустой() Тогда +// // Продолжить; +// // КонецЕсли; +// // +// // Выборка = РезультатЗапроса.Выбрать(); +// // Пока Выборка.Следующий() Цикл +// // ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); +// // ТекущиеДелаОбъект.Автор = Выборка.Пользователь; +// // ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); +// // ТекущиеДелаОбъект.Записать(); +// // КонецЦикла; +// // +// // КонецЕсли; +// +// Если Найти(MessageText, "/addwork") = 0 Тогда +// Продолжить; +// КонецЕсли; +// +// пузИДПользователяТелеграмм = Число(пСhatИД); +// +// ПараметрыОтбора=Новый Структура(); +// ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм); +// НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора); +// ВсегоНайденныеСтроки = НайденныеСтроки.Количество(); +// ТекстОшибки = ""; +// Если ВсегоНайденныеСтроки = 1 тогда +// СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0]; +// ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда +// ТекстОшибки = "Ошибка! Найдено более 1 строки"; +// Иначе +// ТекстОшибки = "Ошибка! Не найдена строка"; +// Конецесли; +// +// Если ЗначениеЗаполнено(ТекстОшибки) Тогда +// ТекстОшибки = ТекстОшибки +// +" в ""ТЗПользователиТелеграмм"" для "; +// Для каждого ЭлементОтбора из ПараметрыОтбора цикл +// ТекстОшибки = ТекстОшибки +// +" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]"; +// Конеццикла; +// ВызватьИсключение ТекстОшибки; +// Конецесли; +// +// ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); +// ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь; +// ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); +// ТекущиеДелаОбъект.Записать(); +// // - Иванов А.Б. 2020-07-11 +// +// +// ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда +// +// КонецЕсли; +// +// КонецЦикла; +// +// +// Если ЗначениеЗаполнено(ИДПоследнегоПринятогоСообщения) Тогда +// Справочники.узКонстанты.УстановитьЗначениеКонстанты("ТелеграмMaxMessangeID", ИДПоследнегоПринятогоСообщения); +// MaxMessangeID = ИДПоследнегоПринятогоСообщения; +// КонецЕсли; +// +//КонецПроцедуры -Функция ПолучитьТЗПользователиТелеграмм() - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь, - | Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм - |ИЗ - | Справочник.Пользователи КАК Пользователи - |ГДЕ - | Пользователи.узИДПользователяТелеграмм <> 0 - | - |СГРУППИРОВАТЬ ПО - | Пользователи.узИДПользователяТелеграмм"; - - ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить(); - - Возврат ТЗПользователиТелеграмм; - -КонецФункции +//Функция ПолучитьТЗПользователиТелеграмм() +// +// Запрос = Новый Запрос; +// Запрос.Текст = "ВЫБРАТЬ +// | МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь, +// | Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм +// |ИЗ +// | Справочник.Пользователи КАК Пользователи +// |ГДЕ +// | Пользователи.узИДПользователяТелеграмм <> 0 +// | +// |СГРУППИРОВАТЬ ПО +// | Пользователи.узИДПользователяТелеграмм"; +// +// ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить(); +// +// Возврат ТЗПользователиТелеграмм; +// +//КонецФункции -Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт - - Если МассивПользователейДляОтправки.Количество() = 0 Тогда - // ++ 79Vlad 20.06.2019 #174 \\ - Если УведомлятьОРезультате Тогда - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = "Сообщение не отправлено, т.к. не указан получатель."; - Сообщение.Сообщить(); - КонецЕсли; - // -- 79Vlad 20.06.2019 #174 - Возврат; - КонецЕсли; - - НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм(); - Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда - // ++ 79Vlad 20.06.2019 #174 \\ - Если УведомлятьОРезультате Тогда - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = "Сообщение не отправлено, т.к. не смогли получить настройки телеграм."; - Сообщение.Сообщить(); - КонецЕсли; - // -- 79Vlad 20.06.2019 #174 - Возврат; - КонецЕсли; +//Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт +// +// Если МассивПользователейДляОтправки.Количество() = 0 Тогда +// // ++ 79Vlad 20.06.2019 #174 \\ +// Если УведомлятьОРезультате Тогда +// Сообщение = Новый СообщениеПользователю; +// Сообщение.Текст = "Сообщение не отправлено, т.к. не указан получатель."; +// Сообщение.Сообщить(); +// КонецЕсли; +// // -- 79Vlad 20.06.2019 #174 +// Возврат; +// КонецЕсли; +// +// НастройкиДляРаботыСТелеграм = ПолучитьНастройкиДляРаботыСТелеграм(); +// Если НастройкиДляРаботыСТелеграм.ВсеНастройкиПолучены = Ложь Тогда +// // ++ 79Vlad 20.06.2019 #174 \\ +// Если УведомлятьОРезультате Тогда +// Сообщение = Новый СообщениеПользователю; +// Сообщение.Текст = "Сообщение не отправлено, т.к. не смогли получить настройки телеграм."; +// Сообщение.Сообщить(); +// КонецЕсли; +// // -- 79Vlad 20.06.2019 #174 +// Возврат; +// КонецЕсли; - Для Каждого Пользователь Из МассивПользователейДляОтправки Цикл - - ИДПользователяТелеграм = Пользователь.узИДПользователяТелеграмм; - - Если Не ЗначениеЗаполнено(ИДПользователяТелеграм) Тогда - Продолжить; - КонецЕсли; - - //ТекстСообщения = СтрЗаменить(ТекстСообщения, "#", ""); - СообщениеОтправлено = Ложь; +// Для Каждого Пользователь Из МассивПользователейДляОтправки Цикл +// +// ИДПользователяТелеграм = Пользователь.узИДПользователяТелеграмм; +// +// Если Не ЗначениеЗаполнено(ИДПользователяТелеграм) Тогда +// Продолжить; +// КонецЕсли; +// +// //ТекстСообщения = СтрЗаменить(ТекстСообщения, "#", ""); +// СообщениеОтправлено = Ложь; - // Данные = - // "{ - //|""chat_id"":"""+Формат(Выборка.ИДПользователяТелеграмм, "ЧГ=")+""", - //|""text"":""Текст"", - //|""reply_markup"": { - //| ""inline_keyboard"": [ - //| [{ - //| ""text"": ""ОбъектСогласования"", - //| ""url"":""http://192.168.13.130/BPS/ru_RU/#e1cib/data/Справочник.бпсПредметыСогласований?ref=838318dbf213445c11e8e41681645d42"" - //| }] - //|] - //|} - //|} "; +// // Данные = +// // "{ +// //|""chat_id"":"""+Формат(Выборка.ИДПользователяТелеграмм, "ЧГ=")+""", +// //|""text"":""Текст"", +// //|""reply_markup"": { +// //| ""inline_keyboard"": [ +// //| [{ +// //| ""text"": ""ОбъектСогласования"", +// //| ""url"":""http://192.168.13.130/BPS/ru_RU/#e1cib/data/Справочник.бпсПредметыСогласований?ref=838318dbf213445c11e8e41681645d42"" +// //| }] +// //|] +// //|} +// //|} "; - Структура = Новый Соответствие; - Структура.Вставить("chat_id",Формат(ИДПользователяТелеграм, "ЧГ=")); - Структура.Вставить("text", ТекстСообщения); - - // ++ 79Vlad 20.06.2019 #174 \\ - Структура.Вставить("parse_mode","Markdown"); - Структура.Вставить("disable_web_page_preview","true"); - // -- 79Vlad 20.06.2019 #174 - - Массив_reply_markup = Новый Массив; - - //Пример создания конпки в телеграм - //Если ЗначениеЗаполнено(Выборка.ОбъектБД) - // И ЗначениеЗаполнено(АдресПубликации) Тогда - // - // Структура_inline_keyboard = Новый Структура; - // Структура_inline_keyboard.Вставить("text", Строка(Выборка.ОбъектБД)); - // Структура_inline_keyboard.Вставить("url", АдресПубликации + "#" + ПолучитьНавигационнуюСсылку(Выборка.ОбъектБД)); - // - // Массив_reply_markup.Добавить(Структура_inline_keyboard); - //КонецЕсли; - //Массив_inline_keyboard = Новый Массив; - //Массив_inline_keyboard.Добавить(Массив_reply_markup); - // - //Структура_reply_markup = Новый Структура; - //Структура_reply_markup.Вставить("inline_keyboard",Массив_inline_keyboard); - // - //Структура.Вставить("reply_markup", Структура_reply_markup); - - ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON; - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); - ЗаписатьJSON(ЗаписьJSON, Структура); - Данные = ЗаписьJSON.Закрыть(); - - Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/sendMessage"; - ЗапросHTTP = Новый HTTPЗапрос(Ресурс); - ЗапросHTTP.Заголовки.Вставить("Content-type", "application/json"); - ЗапросHTTP.УстановитьТелоИзСтроки(Данные); +// Структура = Новый Соответствие; +// Структура.Вставить("chat_id",Формат(ИДПользователяТелеграм, "ЧГ=")); +// Структура.Вставить("text", ТекстСообщения); +// +// // ++ 79Vlad 20.06.2019 #174 \\ +// Структура.Вставить("parse_mode","Markdown"); +// Структура.Вставить("disable_web_page_preview","true"); +// // -- 79Vlad 20.06.2019 #174 +// +// Массив_reply_markup = Новый Массив; +// +// //Пример создания конпки в телеграм +// //Если ЗначениеЗаполнено(Выборка.ОбъектБД) +// // И ЗначениеЗаполнено(АдресПубликации) Тогда +// // +// // Структура_inline_keyboard = Новый Структура; +// // Структура_inline_keyboard.Вставить("text", Строка(Выборка.ОбъектБД)); +// // Структура_inline_keyboard.Вставить("url", АдресПубликации + "#" + ПолучитьНавигационнуюСсылку(Выборка.ОбъектБД)); +// // +// // Массив_reply_markup.Добавить(Структура_inline_keyboard); +// //КонецЕсли; +// //Массив_inline_keyboard = Новый Массив; +// //Массив_inline_keyboard.Добавить(Массив_reply_markup); +// // +// //Структура_reply_markup = Новый Структура; +// //Структура_reply_markup.Вставить("inline_keyboard",Массив_inline_keyboard); +// // +// //Структура.Вставить("reply_markup", Структура_reply_markup); +// +// ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON; +// ЗаписьJSON = Новый ЗаписьJSON; +// ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); +// ЗаписатьJSON(ЗаписьJSON, Структура); +// Данные = ЗаписьJSON.Закрыть(); +// +// Ресурс = "bot" + НастройкиДляРаботыСТелеграм.ТокенТелеграмБота + "/sendMessage"; +// ЗапросHTTP = Новый HTTPЗапрос(Ресурс); +// ЗапросHTTP.Заголовки.Вставить("Content-type", "application/json"); +// ЗапросHTTP.УстановитьТелоИзСтроки(Данные); - Ответ = Неопределено; - ВыполнитьЗапросHTTP_Telegram(Ответ, - ЗапросHTTP, - НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов, - НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси); - Если Ответ = Неопределено - Или Ответ.КодСостояния < 200 - Или Ответ.КодСостояния >= 300 Тогда - - ЗаписьЖурналаРегистрации("Телеграм.ОтправкаСообщений", УровеньЖурналаРегистрации.Ошибка,, - , "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]"); - Иначе - СообщениеОтправлено = Истина; - КонецЕсли; - - // ++ 79Vlad 20.06.2019 #174 \\ - Если УведомлятьОРезультате Тогда - ТекстУведомления = "Сообщение удачно отправлено" ; - Если НЕ СообщениеОтправлено Тогда - ТекстУведомления = "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]. Подробнее смотрите в журнале регистрации." - КонецЕсли; - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = ТекстУведомления; - Сообщение.Сообщить(); - КонецЕсли; - // -- 79Vlad 20.06.2019 #174 - - КонецЦикла; +// Ответ = Неопределено; +// ВыполнитьЗапросHTTP_Telegram(Ответ, +// ЗапросHTTP, +// НастройкиДляРаботыСТелеграм.МассивНастроекПроксиСерверов, +// НастройкиДляРаботыСТелеграм.НомерТекущейНастройкиПрокси); +// Если Ответ = Неопределено +// Или Ответ.КодСостояния < 200 +// Или Ответ.КодСостояния >= 300 Тогда +// +// ЗаписьЖурналаРегистрации("Телеграм.ОтправкаСообщений", УровеньЖурналаРегистрации.Ошибка,, +// , "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]"); +// Иначе +// СообщениеОтправлено = Истина; +// КонецЕсли; +// +// // ++ 79Vlad 20.06.2019 #174 \\ +// Если УведомлятьОРезультате Тогда +// ТекстУведомления = "Сообщение удачно отправлено" ; +// Если НЕ СообщениеОтправлено Тогда +// ТекстУведомления = "Не смогли отправить сообщение телеграм пользователю [" + Пользователь.узИДПользователяТелеграмм+"]. Подробнее смотрите в журнале регистрации." +// КонецЕсли; +// Сообщение = Новый СообщениеПользователю; +// Сообщение.Текст = ТекстУведомления; +// Сообщение.Сообщить(); +// КонецЕсли; +// // -- 79Vlad 20.06.2019 #174 +// +// КонецЦикла; -КонецПроцедуры +//КонецПроцедуры -Процедура ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON = Ложь) - - Ответ = Неопределено; - - // + #232 Ruflex @RomanUpworksTeam - ///+Ruflex - ///-Ruflex - //Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) ) Тогда - // Возврат; - //КонецЕсли; - - Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда - - Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) Тогда - Возврат; - КонецЕсли; - - НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси]; - ИнтернетПрокси = Новый ИнтернетПрокси(Ложь); - ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь); - Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,30,Новый ЗащищенноеСоединениеOpenSSL()); - - Иначе - - Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL()); - - КонецЕсли; - // + #232 Ruflex @RomanUpworksTeam +//Процедура ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON = Ложь) +// +// Ответ = Неопределено; +// +// // + #232 Ruflex @RomanUpworksTeam +// ///+Ruflex +// ///-Ruflex +// //Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) ) Тогда +// // Возврат; +// //КонецЕсли; +// +// Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда +// +// Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) Тогда +// Возврат; +// КонецЕсли; +// +// НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси]; +// ИнтернетПрокси = Новый ИнтернетПрокси(Ложь); +// ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь); +// Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,30,Новый ЗащищенноеСоединениеOpenSSL()); +// +// Иначе +// +// Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL()); +// +// КонецЕсли; +// // + #232 Ruflex @RomanUpworksTeam - Попытка - - Ответ = Соединение.ОтправитьДляОбработки(ЗапросHTTP); - Если Ответ.КодСостояния < 200 Или Ответ.КодСостояния >= 300 Тогда - НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; - РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); - Ответ = Неопределено; - ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); - Возврат; - КонецЕсли; - - ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку(); +// Попытка +// +// Ответ = Соединение.ОтправитьДляОбработки(ЗапросHTTP); +// Если Ответ.КодСостояния < 200 Или Ответ.КодСостояния >= 300 Тогда +// НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; +// РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); +// Ответ = Неопределено; +// ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); +// Возврат; +// КонецЕсли; +// +// ОтветСтрокаJSON = Ответ.ПолучитьТелоКакСтроку(); - Если ВОтветОжидаемJSON - И СтрНайти(НРег(ОтветСтрокаJSON), "") <> 0 Тогда //прокси может уже не работать, или внесен в гос реестр - - НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; - РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); - Ответ = Неопределено; - ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); - Возврат; - - Иначе +// Если ВОтветОжидаемJSON +// И СтрНайти(НРег(ОтветСтрокаJSON), "") <> 0 Тогда //прокси может уже не работать, или внесен в гос реестр +// +// НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; +// РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); +// Ответ = Неопределено; +// ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); +// Возврат; +// +// Иначе - РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, 1); - Возврат; - - КонецЕсли; - - Исключение - - // + #232 Ruflex @RomanUpworksTeam - //НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; - //РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); - //ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); - - Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда +// РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, 1); +// Возврат; +// +// КонецЕсли; +// +// Исключение +// +// // + #232 Ruflex @RomanUpworksTeam +// //НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; +// //РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); +// //ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); +// +// Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда - НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; - РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); - ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); - - Конецесли; - // - #232 Ruflex @RomanUpworksTeam - КонецПопытки - -КонецПроцедуры +// НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; +// РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); +// ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); +// +// Конецесли; +// // - #232 Ruflex @RomanUpworksTeam +// КонецПопытки +// +//КонецПроцедуры diff --git a/src/cf/DataProcessors/узРаботаСТелеграм/Forms/Форма/Ext/Form/Module.bsl b/src/cf/DataProcessors/узРаботаСТелеграм/Forms/Форма/Ext/Form/Module.bsl index e6ba422ee..babee66b8 100644 --- a/src/cf/DataProcessors/узРаботаСТелеграм/Forms/Форма/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/узРаботаСТелеграм/Forms/Форма/Ext/Form/Module.bsl @@ -2,18 +2,21 @@ &НаСервере Процедура ОтправитьСообщениеНаСервере() + //+ #240 Пиганов Г.В. 2020-09-08 //+ #174 Кравцов А.В. 2019-06-06 //МассивПользователейДляОтправки = Новый Массив; //МассивПользователейДляОтправки.Добавить(ЭтотОбъект.ПользовательДляОтправки); - МассивПользователейКому = Новый Массив; - МассивПользователейКому.Добавить(ЭтотОбъект.ПользовательДляОтправки); - МассивПользователейДляОтправки = узТелеграммСервер.ПолучитьМассивПолучателей(МассивПользователейКому); + //МассивПользователейКому = Новый Массив; + //МассивПользователейКому.Добавить(ЭтотОбъект.ПользовательДляОтправки); + //МассивПользователейДляОтправки = узТелеграммСервер.ПолучитьМассивПолучателей(МассивПользователейКому); //- #174 Кравцов А.В. 2019-06-06 - пОбъект = РеквизитФормыВЗначение("Объект"); + //пОбъект = РеквизитФормыВЗначение("Объект"); // ++ 79Vlad 20.06.2019 #174 \\ //пОбъект.ОтправитьСообщениеTelegram(ЭтотОбъект.ТескстСообщенияДляОтправки, МассивПользователейДляОтправки); - пОбъект.ОтправитьСообщениеTelegram(ЭтотОбъект.ТескстСообщенияДляОтправки, МассивПользователейДляОтправки,Истина); + //пОбъект.ОтправитьСообщениеTelegram(ЭтотОбъект.ТескстСообщенияДляОтправки, МассивПользователейДляОтправки,Истина); // -- 79Vlad 20.06.2019 #174 + узТелеграмБот.ОтправитьСообщение(ЭтотОбъект.ТескстСообщенияДляОтправки, ЭтотОбъект.ПользовательДляОтправки, Истина); + //- #240 Пиганов Г.В. 2020-09-08 КонецПроцедуры @@ -25,9 +28,17 @@ &НаСервере Процедура ПрочитатьСообщенияНаСервере() - пОбъект = РеквизитФормыВЗначение("Объект"); - пОбъект.ПрочитатьСообщенияTelegram(); - ЗначениеВРеквизитФормы(пОбъект, "Объект"); + //+ #240 Пиганов Г.В. 2020-09-08 + //пОбъект = РеквизитФормыВЗначение("Объект"); + //пОбъект.ПрочитатьСообщенияTelegram(); + //ЗначениеВРеквизитФормы(пОбъект, "Объект"); + Ответ = Неопределено; + НовыеСообщения = узТелеграмБот.ПолучитьНовыеСообщения(Объект.MaxMessangeID, Ответ); + Объект.HTTPОтвет = Ответ.ПолучитьТелоКакСтроку(); + Для Каждого Сообщение Из НовыеСообщения Цикл + узТелеграмБотКоманды.ОбработатьКомандыСообщения(Сообщение); + КонецЦикла; + //- #240 Пиганов Г.В. 2020-09-08 КонецПроцедуры diff --git a/src/cf/Subsystems/узУправлениеЗадачами/Subsystems/узТелеграмм.xml b/src/cf/Subsystems/узУправлениеЗадачами/Subsystems/узТелеграмм.xml index af8545475..d49e34fa6 100644 --- a/src/cf/Subsystems/узУправлениеЗадачами/Subsystems/узТелеграмм.xml +++ b/src/cf/Subsystems/узУправлениеЗадачами/Subsystems/узТелеграмм.xml @@ -16,7 +16,7 @@ Constant.узТелеграмм_ТокенБота - CommonModule.узТелеграммСервер + 8f79d0f2-3bdc-43f6-ae0d-3393a1b1c89a