From 045d4f2e6c570a70042704ca31a9875d99f616be Mon Sep 17 00:00:00 2001 From: kashey Date: Wed, 2 Jul 2025 17:29:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=20=D1=84=D0=BE=D1=80=D0=BC=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Улучшил механизм переключения webhook/long poll - Изменил расписания оповещения об актуальности --- .../CommonForms/Настройки/Ext/Form/Module.bsl | 37 +++++++++++++++---- .../БотОбщегоНазначения/Ext/Module.bsl | 12 ++++++ .../ТелеграмРегламент/Ext/Module.bsl | 15 ++++---- .../Ext/Schedule.xml | 6 +-- src/cf/Subsystems/ТелеграмБот.xml | 2 - src/cf/VERSION | 2 +- 6 files changed, 54 insertions(+), 20 deletions(-) diff --git a/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl b/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl index 1901d2c..027e65e 100644 --- a/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl +++ b/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl @@ -1,4 +1,5 @@ - +#Область ОбработчикиСобытийФормы + &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) @@ -18,12 +19,14 @@ Сообщение.Текст = "Не заполнен адрес вебхука"; Сообщение.Поле = "НаборКонстант.ТелеграмВебХук"; Сообщение.Сообщить(); - ПараметрыЗаписи.Вставить("Модифицированность"); + //ПараметрыЗаписи.Вставить("Модифицированность"); + Отказ = Истина; + Возврат; КонецЕсли; - Если Модифицированность ИЛИ НужноУказатьВебхух Тогда - ПараметрыЗаписи.Вставить("Модифицированность"); - КонецЕсли; + //Если Модифицированность ИЛИ НужноУказатьВебхух Тогда + ПараметрыЗаписи.Вставить("Модифицированность", Модифицированность); + //КонецЕсли; КонецПроцедуры @@ -41,7 +44,6 @@ УстановитьПривилегированныйРежим(Истина); Если КэшЗначений.ТелеграмИспользоватьВебХук И НЕ ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда - ТелеграмМетодыВызовСервера.DeleteWebhook(); ТелеграмРегламентВызовСервера.ЗапускПроверкиОбновлений(); КонецЕсли; @@ -51,4 +53,25 @@ УстановитьПривилегированныйРежим(Ложь); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры + +&НаКлиенте +Процедура ТелеграмИспользоватьВебХукПриИзменении(Элемент) + + УстановитьЗначениеКонстанты(НаборКонстант.ТелеграмИспользоватьВебХук); + ОбновитьИнтерфейс(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервереБезКонтекста +Процедура УстановитьЗначениеКонстанты(ЗначениеКонстанты) + + Константы.ТелеграмИспользоватьВебХук.Установить(ЗначениеКонстанты); + +КонецПроцедуры + +#КонецОбласти diff --git a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl index 7a05d03..08251bb 100644 --- a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl +++ b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl @@ -11,6 +11,8 @@ ОбработатьСообщение(ОбновлениеТелеграм) ИначеЕсли ОбновлениеТелеграм.Свойство("ИдКоллбэка") <> Неопределено Тогда ОбработатьКоллбэк(ОбновлениеТелеграм); + Иначе + Продолжить; КонецЕсли; КонецЦикла; @@ -42,6 +44,8 @@ ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога = Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя); + Иначе + ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм); КонецЕсли; КонецПроцедуры @@ -320,4 +324,12 @@ КонецПроцедуры +Процедура ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм) + + ИдЧата = ОбновлениеТелеграм.ИдЧата; + ТекстОтвета = "Данная команда не поддерживается."; + ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета); + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl index ecfb441..5667690 100644 --- a/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl +++ b/src/cf/CommonModules/ТелеграмРегламент/Ext/Module.bsl @@ -1,20 +1,21 @@ #Область ПрограммныйИнтерфейс -// Получить обновления и обработать их по расписанию Процедура ПроверкаОбновленийПоРасписанию() Экспорт + ТелеграмМетодыВызовСервера.DeleteWebhook(); + Пока Истина Цикл - Если ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук") Тогда + //Если ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук") Тогда + // Прервать; + //КонецЕсли; + + Если Константы.ТелеграмИспользоватьВебХук.Получить() Тогда Прервать; КонецЕсли; - + Ответ = ТелеграмМетодыВызовСервера.GetUpdates(30); Если Ответ.Успех Тогда БотОбщегоНазначения.ОбработкаКомандыБота(Ответ.Тело); - Иначе - Если СтрНайти(Ответ.Описание, "can't use getUpdates method while webhook is active") <> 0 Тогда - ТелеграмМетодыВызовСервера.DeleteWebhook(); - КонецЕсли; КонецЕсли; КонецЦикла; diff --git a/src/cf/ScheduledJobs/ПроверкаАктуальностиКонфигураций/Ext/Schedule.xml b/src/cf/ScheduledJobs/ПроверкаАктуальностиКонфигураций/Ext/Schedule.xml index 9280b1f..3197922 100644 --- a/src/cf/ScheduledJobs/ПроверкаАктуальностиКонфигураций/Ext/Schedule.xml +++ b/src/cf/ScheduledJobs/ПроверкаАктуальностиКонфигураций/Ext/Schedule.xml @@ -1,9 +1,9 @@  - - 1 2 3 4 5 6 7 + + 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 - + diff --git a/src/cf/Subsystems/ТелеграмБот.xml b/src/cf/Subsystems/ТелеграмБот.xml index 7d52546..a7ed247 100644 --- a/src/cf/Subsystems/ТелеграмБот.xml +++ b/src/cf/Subsystems/ТелеграмБот.xml @@ -23,7 +23,6 @@ Catalog.ТелеграмСообщение HTTPService.HTTPСервис_Telegram Constant.ТелеграмВебХук - 298dc1c3-f89d-4897-874e-bfd600985066 Constant.ЛогироватьHttpЗапросы Document.ЛогHttpЗапроса Catalog.ТелеграмДокумент @@ -35,7 +34,6 @@ CommonModule.ТелеграмРаботаСКлавиатурой Constant.ТелеграмИспользоватьВебХук FunctionalOption.ТелеграмИспользоватьВебХук - CommonForm.Настройки diff --git a/src/cf/VERSION b/src/cf/VERSION index 811e600..9d98c81 100644 --- a/src/cf/VERSION +++ b/src/cf/VERSION @@ -1,2 +1,2 @@  -25 +26