Реализовал выбор способа получения обновлений в настройках
- Получение обновлений теперь выполняется через long polling (если не выбран вебхук) - Периодическая проверка обновлений с помощью фонового задания - Настройки позволяют переключаться между long polling и webhook для получения обновлений
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
<?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.19">
|
||||
<CommonForm uuid="298dc1c3-f89d-4897-874e-bfd600985066">
|
||||
<CommonForm uuid="92b9a10c-955a-4964-9143-5244b73710af">
|
||||
<Properties>
|
||||
<Name>ТелеграмВебХук</Name>
|
||||
<Name>Настройки</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Телеграм веб хук</v8:content>
|
||||
<v8:content>Настройки</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
@@ -16,7 +16,7 @@
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
|
||||
</UsePurposes>
|
||||
<UseStandardCommands>false</UseStandardCommands>
|
||||
<UseStandardCommands>true</UseStandardCommands>
|
||||
<ExtendedPresentation/>
|
||||
<Explanation/>
|
||||
</Properties>
|
||||
67
src/cf/CommonForms/Настройки/Ext/Form.xml
Normal file
67
src/cf/CommonForms/Настройки/Ext/Form.xml
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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.19">
|
||||
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
|
||||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
|
||||
<Events>
|
||||
<Event name="AfterWrite">ПослеЗаписи</Event>
|
||||
<Event name="BeforeWrite">ПередЗаписью</Event>
|
||||
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
|
||||
<Event name="BeforeWriteAtServer">ПередЗаписьюНаСервере</Event>
|
||||
<Event name="OnWriteAtServer">ПриЗаписиНаСервере</Event>
|
||||
<Event name="FillCheckProcessingAtServer">ОбработкаПроверкиЗаполненияНаСервере</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<InputField name="ТелеграмТокен" id="1">
|
||||
<DataPath>НаборКонстант.ТелеграмТокен</DataPath>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
|
||||
<ContextMenu name="ТелеграмТокенКонтекстноеМеню" id="2"/>
|
||||
<ExtendedTooltip name="ТелеграмТокенРасширеннаяПодсказка" id="3"/>
|
||||
</InputField>
|
||||
<InputField name="ТелеграмВебХук" id="4">
|
||||
<DataPath>НаборКонстант.ТелеграмВебХук</DataPath>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
|
||||
<ContextMenu name="ТелеграмВебХукКонтекстноеМеню" id="5"/>
|
||||
<ExtendedTooltip name="ТелеграмВебХукРасширеннаяПодсказка" id="6"/>
|
||||
</InputField>
|
||||
<CheckBoxField name="ЛогироватьHttpЗапросы" id="7">
|
||||
<DataPath>НаборКонстант.ЛогироватьHttpЗапросы</DataPath>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<CheckBoxType>Auto</CheckBoxType>
|
||||
<ContextMenu name="ЛогироватьHttpЗапросыКонтекстноеМеню" id="8"/>
|
||||
<ExtendedTooltip name="ЛогироватьHttpЗапросыРасширеннаяПодсказка" id="9"/>
|
||||
</CheckBoxField>
|
||||
<CheckBoxField name="ТелеграмИспользоватьВебХук" id="10">
|
||||
<DataPath>НаборКонстант.ТелеграмИспользоватьВебХук</DataPath>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<CheckBoxType>Auto</CheckBoxType>
|
||||
<ContextMenu name="ТелеграмИспользоватьВебХукКонтекстноеМеню" id="11"/>
|
||||
<ExtendedTooltip name="ТелеграмИспользоватьВебХукРасширеннаяПодсказка" id="12"/>
|
||||
<Events>
|
||||
<Event name="OnChange">ТелеграмИспользоватьВебХукПриИзменении</Event>
|
||||
</Events>
|
||||
</CheckBoxField>
|
||||
</ChildItems>
|
||||
<Attributes>
|
||||
<Attribute name="НаборКонстант" id="1">
|
||||
<Type>
|
||||
<v8:Type>cfg:ConstantsSet</v8:Type>
|
||||
</Type>
|
||||
<MainAttribute>true</MainAttribute>
|
||||
<SavedData>true</SavedData>
|
||||
<UseAlways>
|
||||
<Field>НаборКонстант.ТелеграмВебХук</Field>
|
||||
</UseAlways>
|
||||
</Attribute>
|
||||
<Attribute name="КэшЗначений" id="2">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Кэш значений</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type/>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Form>
|
||||
51
src/cf/CommonForms/Настройки/Ext/Form/Module.bsl
Normal file
51
src/cf/CommonForms/Настройки/Ext/Form/Module.bsl
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||
|
||||
Если ПараметрыЗаписи.Свойство("Модифицированность") Тогда
|
||||
ОбновитьИнтерфейс();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
|
||||
|
||||
Если НаборКонстант.ТелеграмИспользоватьВебХук И НЕ ЗначениеЗаполнено(НаборКонстант.ТелеграмВебХук) Тогда
|
||||
Сообщение = Новый СообщениеПользователю;
|
||||
Сообщение.Текст = "Не заполнен адрес вебхука";
|
||||
Сообщение.Поле = "НаборКонстант.ТелеграмВебХук";
|
||||
Сообщение.Сообщить();
|
||||
КонецЕсли;
|
||||
|
||||
Если Модифицированность Тогда
|
||||
ПараметрыЗаписи.Вставить("Модифицированность");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
КэшЗначений = Новый Структура;
|
||||
КэшЗначений.Вставить("ТелеграмИспользоватьВебХук", Константы.ТелеграмИспользоватьВебХук.Получить());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если КэшЗначений.ТелеграмИспользоватьВебХук И НЕ ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда
|
||||
ТелеграмМетодыВызовСервера.DeleteWebhook();
|
||||
ТелеграмРегламентВызовСервера.ЗапускПроверкиОбновлений();
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ КэшЗначений.ТелеграмИспользоватьВебХук И ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда
|
||||
ТелеграмМетодыВызовСервера.SetWebHook(ТекущийОбъект.ТелеграмВебХук);
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -1,70 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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.19">
|
||||
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
|
||||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
|
||||
<Events>
|
||||
<Event name="AfterWrite">ПослеЗаписи</Event>
|
||||
</Events>
|
||||
<ChildItems>
|
||||
<InputField name="ТелеграмВебХук" id="1">
|
||||
<DataPath>НаборКонстант.ТелеграмВебХук</DataPath>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<AutoMaxWidth>false</AutoMaxWidth>
|
||||
<MultiLine>true</MultiLine>
|
||||
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
|
||||
<ContextMenu name="ТелеграмВебХукКонтекстноеМеню" id="2"/>
|
||||
<ExtendedTooltip name="ТелеграмВебХукРасширеннаяПодсказка" id="3"/>
|
||||
</InputField>
|
||||
<Button name="УдалитьВебХук" id="4">
|
||||
<Type>UsualButton</Type>
|
||||
<CommandName>Form.Command.УдалитьВебХук</CommandName>
|
||||
<ExtendedTooltip name="УдалитьВебХукРасширеннаяПодсказка" id="5"/>
|
||||
</Button>
|
||||
<Button name="ВывестиИнформациюОВебхуке" id="6">
|
||||
<Type>UsualButton</Type>
|
||||
<CommandName>Form.Command.ВывестиИнформациюОВебхуке</CommandName>
|
||||
<ExtendedTooltip name="ВывестиИнформациюОВебхукеРасширеннаяПодсказка" id="7"/>
|
||||
</Button>
|
||||
</ChildItems>
|
||||
<Attributes>
|
||||
<Attribute name="НаборКонстант" id="1">
|
||||
<Type>
|
||||
<v8:Type>cfg:ConstantsSet</v8:Type>
|
||||
</Type>
|
||||
<MainAttribute>true</MainAttribute>
|
||||
<SavedData>true</SavedData>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
<Commands>
|
||||
<Command name="УдалитьВебХук" id="1">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Удалить веб хук</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Удалить веб хук</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Action>УдалитьВебХук</Action>
|
||||
</Command>
|
||||
<Command name="ВывестиИнформациюОВебхуке" id="2">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Вывести информацию о вебхуке</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Вывести информацию о вебхуке</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Action>ВывестиИнформациюОВебхуке</Action>
|
||||
</Command>
|
||||
</Commands>
|
||||
</Form>
|
||||
@@ -1,56 +0,0 @@
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||
|
||||
Ответ = ТелеграмМетодыВызовСервера.SetWebHook(ТелеграмВебХук());
|
||||
ТекстСообщения = СтрШаблон(?(Ответ.Успех, "Успешно: %1", "Ошибка: %1"), Ответ.Описание);
|
||||
Сообщение = Новый СообщениеПользователю;
|
||||
Сообщение.Текст = ТекстСообщения;
|
||||
Сообщение.Сообщить();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УдалитьВебХук(Команда)
|
||||
|
||||
Ответ = ТелеграмМетодыВызовСервера.DeleteWebhook();
|
||||
ТекстСообщения = СтрШаблон(?(Ответ.Успех, "Успешно: %1", "Ошибка: %1"), Ответ.Описание);
|
||||
Сообщение = Новый СообщениеПользователю;
|
||||
Сообщение.Текст = ТекстСообщения;
|
||||
Сообщение.Сообщить();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВывестиИнформациюОВебхуке(Команда)
|
||||
|
||||
Ответ = ТелеграмМетодыВызовСервера.GetWebhookInfo();
|
||||
Если Ответ.Успех И ЗначениеЗаполнено(Ответ.Тело) Тогда
|
||||
Для каждого ПараметрОтвета Из Ответ.Тело["result"] Цикл
|
||||
Сообщение = Новый СообщениеПользователю;
|
||||
Сообщение.Текст = "" + ПараметрОтвета.Ключ + "=" + ПараметрОтвета.Значение;
|
||||
Сообщение.Сообщить();
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ТелеграмВебХук()
|
||||
|
||||
Возврат Константы.ТелеграмВебХук.Получить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Reference in New Issue
Block a user