Изменения в форме настроек

- Улучшил механизм переключения webhook/long poll
- Изменил расписания оповещения об актуальности
This commit is contained in:
2025-07-02 17:29:25 +03:00
parent b857323d19
commit 045d4f2e6c
6 changed files with 54 additions and 20 deletions

View File

@@ -1,4 +1,5 @@
#Область ОбработчикиСобытийФормы
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
@@ -18,12 +19,14 @@
Сообщение.Текст = "Не заполнен адрес вебхука";
Сообщение.Поле = "НаборКонстант.ТелеграмВебХук";
Сообщение.Сообщить();
ПараметрыЗаписи.Вставить("Модифицированность");
//ПараметрыЗаписи.Вставить("Модифицированность");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Модифицированность ИЛИ НужноУказатьВебхух Тогда
ПараметрыЗаписи.Вставить("Модифицированность");
КонецЕсли;
//Если Модифицированность ИЛИ НужноУказатьВебхух Тогда
ПараметрыЗаписи.Вставить("Модифицированность", Модифицированность);
//КонецЕсли;
КонецПроцедуры
@@ -41,7 +44,6 @@
УстановитьПривилегированныйРежим(Истина);
Если КэшЗначений.ТелеграмИспользоватьВебХук И НЕ ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда
ТелеграмМетодыВызовСервера.DeleteWebhook();
ТелеграмРегламентВызовСервера.ЗапускПроверкиОбновлений();
КонецЕсли;
@@ -52,3 +54,24 @@
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ТелеграмИспользоватьВебХукПриИзменении(Элемент)
УстановитьЗначениеКонстанты(НаборКонстант.ТелеграмИспользоватьВебХук);
ОбновитьИнтерфейс();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Процедура УстановитьЗначениеКонстанты(ЗначениеКонстанты)
Константы.ТелеграмИспользоватьВебХук.Установить(ЗначениеКонстанты);
КонецПроцедуры
#КонецОбласти

View File

@@ -11,6 +11,8 @@
ОбработатьСообщение(ОбновлениеТелеграм)
ИначеЕсли ОбновлениеТелеграм.Свойство("ИдКоллбэка") <> Неопределено Тогда
ОбработатьКоллбэк(ОбновлениеТелеграм);
Иначе
Продолжить;
КонецЕсли;
КонецЦикла;
@@ -42,6 +44,8 @@
ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога =
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
Иначе
ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм);
КонецЕсли;
КонецПроцедуры
@@ -320,4 +324,12 @@
КонецПроцедуры
Процедура ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
ТекстОтвета = "Данная команда не поддерживается.";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецПроцедуры
#КонецОбласти

View File

@@ -1,20 +1,21 @@
#Область ПрограммныйИнтерфейс
// Получить обновления и обработать их по расписанию
Процедура ПроверкаОбновленийПоРасписанию() Экспорт
ТелеграмМетодыВызовСервера.DeleteWebhook();
Пока Истина Цикл
Если ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук") Тогда
//Если ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук") Тогда
// Прервать;
//КонецЕсли;
Если Константы.ТелеграмИспользоватьВебХук.Получить() Тогда
Прервать;
КонецЕсли;
Ответ = ТелеграмМетодыВызовСервера.GetUpdates(30);
Если Ответ.Успех Тогда
БотОбщегоНазначения.ОбработкаКомандыБота(Ответ.Тело);
Иначе
Если СтрНайти(Ответ.Описание, "can't use getUpdates method while webhook is active") <> 0 Тогда
ТелеграмМетодыВызовСервера.DeleteWebhook();
КонецЕсли;
КонецЕсли;
КонецЦикла;

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<JobSchedule xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
<Schedule BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="00:00:00" EndTime="00:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="300" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="1">
<ent:WeekDays>1 2 3 4 5 6 7</ent:WeekDays>
<Schedule BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="09:00:00" EndTime="18:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="14400" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="1">
<ent:WeekDays>1 2 3 4 5</ent:WeekDays>
<ent:Months>1 2 3 4 5 6 7 8 9 10 11 12</ent:Months>
<ent:DetailedDailySchedules BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="00:00:00" EndTime="00:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="300" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="0">
<ent:DetailedDailySchedules BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="09:00:00" EndTime="18:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="14400" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="0">
<ent:WeekDays/>
<ent:Months/>
</ent:DetailedDailySchedules>

View File

@@ -23,7 +23,6 @@
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмСообщение</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">HTTPService.HTTPСервис_Telegram</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмВебХук</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">298dc1c3-f89d-4897-874e-bfd600985066</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ЛогироватьHttpЗапросы</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогHttpЗапроса</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмДокумент</xr:Item>
@@ -35,7 +34,6 @@
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.ТелеграмРаботаСКлавиатурой</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмИспользоватьВебХук</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">FunctionalOption.ТелеграмИспользоватьВебХук</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonForm.Настройки</xr:Item>
</Content>
</Properties>
<ChildObjects/>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<VERSION>25</VERSION>
<VERSION>26</VERSION>