diff --git a/src/cf/CommonForms/ТелеграмВебХук.xml b/src/cf/CommonForms/Настройки.xml similarity index 85% rename from src/cf/CommonForms/ТелеграмВебХук.xml rename to src/cf/CommonForms/Настройки.xml index 9672d62..95ba7d3 100644 --- a/src/cf/CommonForms/ТелеграмВебХук.xml +++ b/src/cf/CommonForms/Настройки.xml @@ -1,12 +1,12 @@  - + - ТелеграмВебХук + Настройки ru - Телеграм веб хук + Настройки @@ -16,7 +16,7 @@ PlatformApplication MobilePlatformApplication - false + true diff --git a/src/cf/CommonForms/Настройки/Ext/Form.xml b/src/cf/CommonForms/Настройки/Ext/Form.xml new file mode 100644 index 0000000..dc5564a --- /dev/null +++ b/src/cf/CommonForms/Настройки/Ext/Form.xml @@ -0,0 +1,67 @@ + +
+ LockOwnerWindow + + + ПослеЗаписи + ПередЗаписью + ПриСозданииНаСервере + ПередЗаписьюНаСервере + ПриЗаписиНаСервере + ОбработкаПроверкиЗаполненияНаСервере + + + + НаборКонстант.ТелеграмТокен + EnterOnInput + true + + + + + НаборКонстант.ТелеграмВебХук + EnterOnInput + true + + + + + НаборКонстант.ЛогироватьHttpЗапросы + EnterOnInput + Auto + + + + + НаборКонстант.ТелеграмИспользоватьВебХук + EnterOnInput + Auto + + + + ТелеграмИспользоватьВебХукПриИзменении + + + + + + + cfg:ConstantsSet + + true + true + + НаборКонстант.ТелеграмВебХук + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Кэш значений</v8:content> + </v8:item> + + + + + \ No newline at end of file diff --git a/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl b/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl new file mode 100644 index 0000000..c6c6db7 --- /dev/null +++ b/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl @@ -0,0 +1,51 @@ + +&НаКлиенте +Процедура ПослеЗаписи(ПараметрыЗаписи) + + Если ПараметрыЗаписи.Свойство("Модифицированность") Тогда + ОбновитьИнтерфейс(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) + + Если НаборКонстант.ТелеграмИспользоватьВебХук И НЕ ЗначениеЗаполнено(НаборКонстант.ТелеграмВебХук) Тогда + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = "Не заполнен адрес вебхука"; + Сообщение.Поле = "НаборКонстант.ТелеграмВебХук"; + Сообщение.Сообщить(); + КонецЕсли; + + Если Модифицированность Тогда + ПараметрыЗаписи.Вставить("Модифицированность"); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + КэшЗначений = Новый Структура; + КэшЗначений.Вставить("ТелеграмИспользоватьВебХук", Константы.ТелеграмИспользоватьВебХук.Получить()); + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + УстановитьПривилегированныйРежим(Истина); + + Если КэшЗначений.ТелеграмИспользоватьВебХук И НЕ ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда + ТелеграмМетодыВызовСервера.DeleteWebhook(); + ТелеграмРегламентВызовСервера.ЗапускПроверкиОбновлений(); + КонецЕсли; + + Если НЕ КэшЗначений.ТелеграмИспользоватьВебХук И ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда + ТелеграмМетодыВызовСервера.SetWebHook(ТекущийОбъект.ТелеграмВебХук); + КонецЕсли; + + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры \ No newline at end of file diff --git a/src/cf/CommonForms/ТелеграмВебХук/Ext/Form.xml b/src/cf/CommonForms/ТелеграмВебХук/Ext/Form.xml deleted file mode 100644 index 3a11f59..0000000 --- a/src/cf/CommonForms/ТелеграмВебХук/Ext/Form.xml +++ /dev/null @@ -1,70 +0,0 @@ - -
- LockOwnerWindow - - - ПослеЗаписи - - - - НаборКонстант.ТелеграмВебХук - EnterOnInput - false - true - true - - - - - - - - - - cfg:ConstantsSet - - true - true - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Удалить веб хук</v8:content> - </v8:item> - - - - ru - Удалить веб хук - - - УдалитьВебХук - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Вывести информацию о вебхуке</v8:content> - </v8:item> - - - - ru - Вывести информацию о вебхуке - - - ВывестиИнформациюОВебхуке - - - \ No newline at end of file diff --git a/src/cf/CommonForms/ТелеграмВебХук/Ext/Form/Module.bsl b/src/cf/CommonForms/ТелеграмВебХук/Ext/Form/Module.bsl deleted file mode 100644 index 14bf427..0000000 --- a/src/cf/CommonForms/ТелеграмВебХук/Ext/Form/Module.bsl +++ /dev/null @@ -1,56 +0,0 @@ -#Область ОбработчикиСобытийФормы - -&НаКлиенте -Процедура ПослеЗаписи(ПараметрыЗаписи) - - Ответ = ТелеграмМетодыВызовСервера.SetWebHook(ТелеграмВебХук()); - ТекстСообщения = СтрШаблон(?(Ответ.Успех, "Успешно: %1", "Ошибка: %1"), Ответ.Описание); - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = ТекстСообщения; - Сообщение.Сообщить(); - -КонецПроцедуры - -#КонецОбласти - - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура УдалитьВебХук(Команда) - - Ответ = ТелеграмМетодыВызовСервера.DeleteWebhook(); - ТекстСообщения = СтрШаблон(?(Ответ.Успех, "Успешно: %1", "Ошибка: %1"), Ответ.Описание); - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = ТекстСообщения; - Сообщение.Сообщить(); - -КонецПроцедуры - -&НаКлиенте -Процедура ВывестиИнформациюОВебхуке(Команда) - - Ответ = ТелеграмМетодыВызовСервера.GetWebhookInfo(); - Если Ответ.Успех И ЗначениеЗаполнено(Ответ.Тело) Тогда - Для каждого ПараметрОтвета Из Ответ.Тело["result"] Цикл - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = "" + ПараметрОтвета.Ключ + "=" + ПараметрОтвета.Значение; - Сообщение.Сообщить(); - КонецЦикла; - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервереБезКонтекста -Функция ТелеграмВебХук() - - Возврат Константы.ТелеграмВебХук.Получить(); - -КонецФункции - -#КонецОбласти - diff --git a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl index 61345f6..7a05d03 100644 --- a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl +++ b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl @@ -23,20 +23,21 @@ Процедура ОбработатьСообщение(ОбновлениеТелеграм) ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ДанныеПользователя(ОбновлениеТелеграм.ИдЧата); + КомандаДляОбработки = ОбновлениеТелеграм.Сообщение.text; - Если ОбновлениеТелеграм.Сообщение.text = "/start" Тогда + Если КомандаДляОбработки = "/start" Тогда ОбработатьКомандуСтарт(ОбновлениеТелеграм); - ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/subscribe" Тогда + ИначеЕсли КомандаДляОбработки = "/subscribe" Тогда ОбработатьКомандуПодписки(ОбновлениеТелеграм); - ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/add" Тогда + ИначеЕсли КомандаДляОбработки = "/add" Тогда ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм); - ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/delete" Тогда + ИначеЕсли КомандаДляОбработки = "/delete" Тогда ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм); - ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/notify_on" Тогда + ИначеЕсли КомандаДляОбработки = "/notify_on" Тогда ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм); - ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/notify_off" Тогда + ИначеЕсли КомандаДляОбработки = "/notify_off" Тогда ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм); - ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/status" Тогда + ИначеЕсли КомандаДляОбработки = "/status" Тогда ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм); ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога = Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда @@ -119,12 +120,15 @@ КонецЕсли; ИмяКонфигурации = СокрЛП(Сред(ТекстСообщения, СтрДлина(Команда) + 1)); - Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации); Если Конфигурация <> Неопределено Тогда ДанныеКонфигурации = РаботаСОбновлениямиВызовСервера.СтатусКонфигурацииИзПодписки(ИдЧата, Конфигурация); + Если ДанныеКонфигурации = Неопределено Тогда + Возврат; + КонецЕсли; + ТекстОтвета = СтрШаблон("ℹ %1%2 %3 ➡ %4", ДанныеКонфигурации.Наименование, Символы.ПС, diff --git a/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl index 26e5903..907e1f7 100644 --- a/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl +++ b/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl @@ -45,13 +45,16 @@ КонецФункции -Функция GetUpdates() Экспорт +Функция GetUpdates(Таймаут = 0) Экспорт Смещение = ? (ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() = 0,0, Формат(ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() + 1, "ЧГ=0")); ПараметрыЗапроса = Новый Структура("offset", Смещение); + Если Таймаут > 0 Тогда + ПараметрыЗапроса.Вставить("timeout", Таймаут); + КонецЕсли; АдресРесурса = АдресРесурсаПоИмениМетода("getUpdates"); - Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); + Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, ?(Таймаут > 0, Таймаут, 15), Новый ЗащищенноеСоединениеOpenSSL); Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса); КонецФункции diff --git a/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl index 437a021..0b7864d 100644 --- a/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl +++ b/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl @@ -21,28 +21,6 @@ КонецФункции -// Получить обновления, пришедшие от вебхука и сохранить в базу -Процедура ОбработатьИСохранитьОбновленияТелеграм(ТелоЗапроса) Экспорт - - ДанныеОбновления = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоЗапроса); - - Если ДанныеОбновления = Неопределено Тогда - Возврат; - КонецЕсли; - - Если ЭтоМассивОбновлений(ДанныеОбновления) Тогда - МассивОбновлений = ДанныеОбновления["result"]; - Для каждого Обновление Из МассивОбновлений Цикл - ПараметрыСообщения = СтруктураСообщенияТелеграм(Обновление); - СохранитьСообщениеВБазу(ПараметрыСообщения); - КонецЦикла; - ИначеЕсли ЭтоОдиночноеОбновление(ДанныеОбновления) Тогда - ПараметрыСообщения = СтруктураСообщенияТелеграм(ДанныеОбновления); - СохранитьСообщениеВБазу(ПараметрыСообщения); - КонецЕсли; - -КонецПроцедуры - Функция ОбновленияТелеграм(ТелоЗапроса) Экспорт Если ТипЗнч(ТелоЗапроса) = Тип("Соответствие") Тогда @@ -62,22 +40,36 @@ Если ЭтоМассивОбновлений(ДанныеОбновления) Тогда МассивОбновлений = ДанныеОбновления["result"]; Для каждого Обновление Из МассивОбновлений Цикл - ПараметрыСообщения = СтруктураСообщенияТелеграм(Обновление); - МассивСообщенийТелеграм.Добавить(ПараметрыСообщения) + ПараметрыСообщения = ПараметрыСообщения(Обновление); + Если ПараметрыСообщения <> Неопределено Тогда + МассивСообщенийТелеграм.Добавить(ПараметрыСообщения); + КонецЕсли; КонецЦикла; ИначеЕсли ЭтоОдиночноеОбновление(ДанныеОбновления) Тогда - Если ДанныеОбновления.Получить("message") <> Неопределено Тогда - ПараметрыСообщения = СтруктураСообщенияТелеграм(ДанныеОбновления); - ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда - ПараметрыСообщения = СтруктураКоллбэкЗапроса(ДанныеОбновления); + ПараметрыСообщения = ПараметрыСообщения(ДанныеОбновления); + Если ПараметрыСообщения <> Неопределено Тогда + МассивСообщенийТелеграм.Добавить(ПараметрыСообщения); КонецЕсли; - МассивСообщенийТелеграм.Добавить(ПараметрыСообщения) КонецЕсли; Возврат МассивСообщенийТелеграм; КонецФункции +Функция ПараметрыСообщения(ДанныеОбновления) + + Результат = Неопределено; + + Если ДанныеОбновления.Получить("message") <> Неопределено Тогда + Результат = СтруктураСообщенияТелеграм(ДанныеОбновления); + ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда + Результат = СтруктураКоллбэкЗапроса(ДанныеОбновления); + КонецЕсли; + + Возврат Результат; + +КонецФункции + Функция СтруктураСообщенияТелеграм(Обновление) ДанныеСообщения = Обновление["message"]; @@ -131,6 +123,10 @@ МенеджерЗаписи = РегистрыСведений.ТелеграмСообщения.СоздатьМенеджерЗаписи(); ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураСообщения); + Если СтруктураСообщения.Свойство("ИдКоллбэкЗапроса") Тогда + МенеджерЗаписи.ИдСообщения = СтруктураСообщения.ИдКоллбэкЗапроса; + КонецЕсли; + МенеджерЗаписи.Записать(); КонецПроцедуры diff --git a/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl index 794c6d0..ecfb441 100644 --- a/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl +++ b/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl @@ -3,20 +3,20 @@ // Получить обновления и обработать их по расписанию Процедура ПроверкаОбновленийПоРасписанию() Экспорт - // Проверка установлен ли вебхук - Ответ = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелеграмМетодыВызовСервера.GetWebhookInfo()); - Если Ответ["ok"] И ЗначениеЗаполнено(Ответ["result"]["url"]) Тогда - Возврат; - КонецЕсли; - - Ответ = ТелеграмМетодыВызовСервера.GetUpdates(); - Если Ответ <> Неопределено Тогда - МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ); - Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл - ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм); - ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text) - КонецЦикла; - КонецЕсли; + Пока Истина Цикл + Если ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук") Тогда + Прервать; + КонецЕсли; + + Ответ = ТелеграмМетодыВызовСервера.GetUpdates(30); + Если Ответ.Успех Тогда + БотОбщегоНазначения.ОбработкаКомандыБота(Ответ.Тело); + Иначе + Если СтрНайти(Ответ.Описание, "can't use getUpdates method while webhook is active") <> 0 Тогда + ТелеграмМетодыВызовСервера.DeleteWebhook(); + КонецЕсли; + КонецЕсли; + КонецЦикла; КонецПроцедуры diff --git a/src/cf/CommonModules/ТелеграмРегламентВызовСервера.xml b/src/cf/CommonModules/ТелеграмРегламентВызовСервера.xml new file mode 100644 index 0000000..f8fbb92 --- /dev/null +++ b/src/cf/CommonModules/ТелеграмРегламентВызовСервера.xml @@ -0,0 +1,23 @@ + + + + + ТелеграмРегламентВызовСервера + + + ru + Телеграм регламент вызов сервера + + + + false + false + true + false + false + true + true + DontUse + + + \ No newline at end of file diff --git a/src/cf/CommonModules/ТелеграмРегламентВызовСервера/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмРегламентВызовСервера/Ext/Module.bsl new file mode 100644 index 0000000..f97b968 --- /dev/null +++ b/src/cf/CommonModules/ТелеграмРегламентВызовСервера/Ext/Module.bsl @@ -0,0 +1,16 @@ +#Область ПрограммныйИнтерфейс + +Процедура ЗапускПроверкиОбновлений() Экспорт + + Если НЕ ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук") Тогда + Попытка + ФоновыеЗадания.Выполнить("ТелеграмРегламент.ПроверкаОбновленийПоРасписанию",,"GetTelegramUpdatesLongPolling"); + Исключение + ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка,,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml index 4d3d7d9..2a2aff3 100644 --- a/src/cf/Configuration.xml +++ b/src/cf/Configuration.xml @@ -249,6 +249,9 @@ Обновления КартинкаБот HttpОбщегоНазначенияВызовСервера + БотОбщегоНазначения + ОбновленияРегламент + ОбщегоНазначенияКлиентСервер РаботаСОбновлениямиВызовСервера РаботаСФайламиКлиентСервер ТелеграмМетодыВызовСервера @@ -256,16 +259,15 @@ ТелеграмПовторноеИспользование ТелеграмРаботаСКлавиатурой ТелеграмРегламент - БотОбщегоНазначения - ОбщегоНазначенияКлиентСервер - ОбновленияРегламент + ТелеграмРегламентВызовСервера HTTPСервис_Telegram - ПроверкаОбновленийТелеграм ПроверкаАктуальностиКонфигураций + ТелеграмИспользоватьВебХук ТелеграмТокен ТелеграмВебХук ЛогироватьHttpЗапросы - ТелеграмВебХук + ТелеграмИспользоватьВебХук + Настройки ТелеграмПользователь ТелеграмСообщение ТелеграмДокумент diff --git a/src/cf/Constants/ЛогироватьHttpЗапросы.xml b/src/cf/Constants/ЛогироватьHttpЗапросы.xml index 83c6adf..c8eba82 100644 --- a/src/cf/Constants/ЛогироватьHttpЗапросы.xml +++ b/src/cf/Constants/ЛогироватьHttpЗапросы.xml @@ -27,7 +27,7 @@ xs:boolean - true + false diff --git a/src/cf/Constants/ТелеграмВебХук.xml b/src/cf/Constants/ТелеграмВебХук.xml index 443ce17..6deb492 100644 --- a/src/cf/Constants/ТелеграмВебХук.xml +++ b/src/cf/Constants/ТелеграмВебХук.xml @@ -31,8 +31,8 @@ Variable - true - CommonForm.ТелеграмВебХук + false + false diff --git a/src/cf/Constants/ТелеграмИспользоватьВебХук.xml b/src/cf/Constants/ТелеграмИспользоватьВебХук.xml new file mode 100644 index 0000000..8d40702 --- /dev/null +++ b/src/cf/Constants/ТелеграмИспользоватьВебХук.xml @@ -0,0 +1,58 @@ + + + + + + 9912d333-64ab-49bf-a71a-87474c019bea + ffdfad80-3e08-4abc-9e41-fc787988d12a + + + 12109e6a-54b7-494c-94ec-dc4fbc1dbbd0 + 7023cb97-365d-4772-8087-3afa07f0c4a3 + + + 13a35c4a-835b-4f75-a0a3-e15f7af2dc08 + 7c1ee7cc-e485-447d-b999-bf52bf1343c1 + + + + ТелеграмИспользоватьВебХук + + + ru + Телеграм использовать веб хук + + + + + xs:boolean + + false + + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + + + Auto + Managed + DontUse + false + false + + + \ No newline at end of file diff --git a/src/cf/Constants/ТелеграмТокен.xml b/src/cf/Constants/ТелеграмТокен.xml index f0e7f5d..62797bb 100644 --- a/src/cf/Constants/ТелеграмТокен.xml +++ b/src/cf/Constants/ТелеграмТокен.xml @@ -31,7 +31,7 @@ Variable - true + false diff --git a/src/cf/DataProcessors/РаботаССообщениями/Forms/Форма/Ext/Form/Module.bsl b/src/cf/DataProcessors/РаботаССообщениями/Forms/Форма/Ext/Form/Module.bsl index e7e2e99..607b5f0 100644 --- a/src/cf/DataProcessors/РаботаССообщениями/Forms/Форма/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/РаботаССообщениями/Forms/Форма/Ext/Form/Module.bsl @@ -38,10 +38,7 @@ &НаКлиенте Процедура PostЗапрос(Команда) - МассивРядов = Новый Массив; - МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Конфигурации;Подписки"); - МассивРядов.Добавить(МассивКнопок); - Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина); + Клавиатура = КлавиатураОтвета(); Ответ = ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, СообщениеДляОтправки, ПредопределенноеЗначение("Перечисление.ТелеграмРежимРазметки.HTML"), Клавиатура); @@ -51,6 +48,16 @@ КонецПроцедуры +&НаСервереБезКонтекста +Функция КлавиатураОтвета() + + МассивРядов = Новый Массив; + МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Конфигурации;Подписки"); + МассивРядов.Добавить(МассивКнопок); + Возврат ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина); + +КонецФункции + &НаКлиенте Процедура DeleteWebhook(Команда) diff --git a/src/cf/Ext/ManagedApplicationModule.bsl b/src/cf/Ext/ManagedApplicationModule.bsl new file mode 100644 index 0000000..0eed859 --- /dev/null +++ b/src/cf/Ext/ManagedApplicationModule.bsl @@ -0,0 +1,6 @@ + +Процедура ПриНачалеРаботыСистемы() + + ТелеграмРегламентВызовСервера.ЗапускПроверкиОбновлений(); + +КонецПроцедуры diff --git a/src/cf/ScheduledJobs/ПроверкаОбновленийТелеграм.xml b/src/cf/FunctionalOptions/ТелеграмИспользоватьВебХук.xml similarity index 64% rename from src/cf/ScheduledJobs/ПроверкаОбновленийТелеграм.xml rename to src/cf/FunctionalOptions/ТелеграмИспользоватьВебХук.xml index f2cba09..6e0fa1b 100644 --- a/src/cf/ScheduledJobs/ПроверкаОбновленийТелеграм.xml +++ b/src/cf/FunctionalOptions/ТелеграмИспользоватьВебХук.xml @@ -1,22 +1,20 @@  - + - ПроверкаОбновленийТелеграм + ТелеграмИспользоватьВебХук ru - Проверка обновлений телеграм + Телеграм использовать веб хук - CommonModule.ТелеграмРегламент.ПроверкаОбновленийПоРасписанию - - - false - false - 3 - 10 + Constant.ТелеграмИспользоватьВебХук + true + + Constant.ТелеграмВебХук + - + \ No newline at end of file diff --git a/src/cf/ScheduledJobs/ПроверкаОбновленийТелеграм/Ext/Schedule.xml b/src/cf/ScheduledJobs/ПроверкаОбновленийТелеграм/Ext/Schedule.xml deleted file mode 100644 index 204d1a1..0000000 --- a/src/cf/ScheduledJobs/ПроверкаОбновленийТелеграм/Ext/Schedule.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1 2 3 4 5 6 7 - 1 2 3 4 5 6 7 8 9 10 11 12 - - \ No newline at end of file diff --git a/src/cf/Subsystems/ТелеграмБот.xml b/src/cf/Subsystems/ТелеграмБот.xml index d74462a..7d52546 100644 --- a/src/cf/Subsystems/ТелеграмБот.xml +++ b/src/cf/Subsystems/ТелеграмБот.xml @@ -23,7 +23,7 @@ Catalog.ТелеграмСообщение HTTPService.HTTPСервис_Telegram Constant.ТелеграмВебХук - CommonForm.ТелеграмВебХук + 298dc1c3-f89d-4897-874e-bfd600985066 Constant.ЛогироватьHttpЗапросы Document.ЛогHttpЗапроса Catalog.ТелеграмДокумент @@ -33,6 +33,9 @@ Enum.ВидыДанныхКоллбэков CommonModule.БотОбщегоНазначения CommonModule.ТелеграмРаботаСКлавиатурой + Constant.ТелеграмИспользоватьВебХук + FunctionalOption.ТелеграмИспользоватьВебХук + CommonForm.Настройки diff --git a/src/cf/VERSION b/src/cf/VERSION index 5cafe58..99dc086 100644 --- a/src/cf/VERSION +++ b/src/cf/VERSION @@ -1,2 +1,2 @@  -21 +22