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
//+ #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
КонецПроцедуры

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>

View File

@ -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), "<html>") <> 0 Тогда //прокси может уже не работать, или внесен в гос реестр
НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
Ответ = Неопределено;
ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
Возврат;
Иначе
// Если ВОтветОжидаемJSON
// И СтрНайти(НРег(ОтветСтрокаJSON), "<html>") <> 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
// КонецПопытки
//
//КонецПроцедуры

View File

@ -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
КонецПроцедуры

View File

@ -16,7 +16,7 @@
<Picture/>
<Content>
<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>
</Properties>
<ChildObjects/>