|
|
|
@ -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
|
|
|
|
|
// КонецПопытки
|
|
|
|
|
//
|
|
|
|
|
//КонецПроцедуры
|
|
|
|
|