Skip to content

Commit 85409ae

Browse files
committed
Метрики
1 parent f249b2e commit 85409ae

36 files changed

Lines changed: 1949 additions & 11 deletions

File tree

src/cf/Catalogs/пэмМетрики.xml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,51 @@
527527
<DataHistory>DontUse</DataHistory>
528528
</Properties>
529529
</Attribute>
530+
<Attribute uuid="d3e4f5a6-7890-1234-bcde-f12345678902">
531+
<Properties>
532+
<Name>Версия</Name>
533+
<Synonym>
534+
<v8:item>
535+
<v8:lang>ru</v8:lang>
536+
<v8:content>Версия</v8:content>
537+
</v8:item>
538+
</Synonym>
539+
<Comment>Версия алгоритма метрики для контроля обновлений</Comment>
540+
<Type>
541+
<v8:Type>xs:decimal</v8:Type>
542+
<v8:NumberQualifiers>
543+
<v8:Digits>5</v8:Digits>
544+
<v8:FractionDigits>0</v8:FractionDigits>
545+
<v8:AllowedSign>Nonnegative</v8:AllowedSign>
546+
</v8:NumberQualifiers>
547+
</Type>
548+
<PasswordMode>false</PasswordMode>
549+
<Format/>
550+
<EditFormat/>
551+
<ToolTip/>
552+
<MarkNegatives>false</MarkNegatives>
553+
<Mask/>
554+
<MultiLine>false</MultiLine>
555+
<ExtendedEdit>false</ExtendedEdit>
556+
<MinValue xsi:nil="true"/>
557+
<MaxValue xsi:nil="true"/>
558+
<FillFromFillingValue>false</FillFromFillingValue>
559+
<FillValue xsi:type="xs:decimal">0</FillValue>
560+
<FillChecking>DontCheck</FillChecking>
561+
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
562+
<ChoiceParameterLinks/>
563+
<ChoiceParameters/>
564+
<QuickChoice>Auto</QuickChoice>
565+
<CreateOnInput>Auto</CreateOnInput>
566+
<ChoiceForm/>
567+
<LinkByType/>
568+
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
569+
<Use>ForItem</Use>
570+
<Indexing>DontIndex</Indexing>
571+
<FullTextSearch>DontUse</FullTextSearch>
572+
<DataHistory>DontUse</DataHistory>
573+
</Properties>
574+
</Attribute>
530575
<Form>ФормаЭлемента</Form>
531576
<Form>ФормаСписка</Form>
532577
</ChildObjects>

src/cf/Catalogs/пэмМетрики/Ext/Predefined.xml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,46 @@
1818
<Description/>
1919
<IsFolder>false</IsFolder>
2020
</Item>
21+
<Item id="c3d4e5f6-0001-0001-0001-000000000001">
22+
<Name>pde_error_count</Name>
23+
<Code>pde_error_count</Code>
24+
<Description/>
25+
<IsFolder>false</IsFolder>
26+
</Item>
27+
<Item id="c3d4e5f6-0001-0001-0001-000000000002">
28+
<Name>pde_formation_duration_seconds</Name>
29+
<Code>pde_formation_duration_seconds</Code>
30+
<Description/>
31+
<IsFolder>false</IsFolder>
32+
</Item>
33+
<Item id="c3d4e5f6-0001-0001-0001-000000000003">
34+
<Name>pde_send_duration_seconds</Name>
35+
<Code>pde_send_duration_seconds</Code>
36+
<Description/>
37+
<IsFolder>false</IsFolder>
38+
</Item>
39+
<Item id="c3d4e5f6-0001-0001-0001-000000000004">
40+
<Name>pde_incoming_duration_seconds</Name>
41+
<Code>pde_incoming_duration_seconds</Code>
42+
<Description/>
43+
<IsFolder>false</IsFolder>
44+
</Item>
45+
<Item id="c3d4e5f6-0001-0001-0001-000000000005">
46+
<Name>pde_oldest_pending_age_seconds</Name>
47+
<Code>pde_oldest_pending_age_seconds</Code>
48+
<Description/>
49+
<IsFolder>false</IsFolder>
50+
</Item>
51+
<Item id="c3d4e5f6-0001-0001-0001-000000000006">
52+
<Name>pde_messages_per_minute</Name>
53+
<Code>pde_messages_per_minute</Code>
54+
<Description/>
55+
<IsFolder>false</IsFolder>
56+
</Item>
57+
<Item id="c3d4e5f6-0001-0001-0001-000000000007">
58+
<Name>pde_retry_count</Name>
59+
<Code>pde_retry_count</Code>
60+
<Description/>
61+
<IsFolder>false</IsFolder>
62+
</Item>
2163
</PredefinedData>

src/cf/Catalogs/пэмМетрики/Forms/ФормаЭлемента/Ext/Form.xml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,42 @@
2525
<Event name="FillCheckProcessingAtServer">ОбработкаПроверкиЗаполненияНаСервере</Event>
2626
</Events>
2727
<ChildItems>
28+
<UsualGroup name="ГруппаОбновлениеДоступно" id="80">
29+
<Visible>false</Visible>
30+
<HorizontalStretch>true</HorizontalStretch>
31+
<Group>AlwaysHorizontal</Group>
32+
<Behavior>Usual</Behavior>
33+
<Representation>NormalSeparation</Representation>
34+
<ShowTitle>false</ShowTitle>
35+
<GroupVerticalAlign>Center</GroupVerticalAlign>
36+
<ExtendedTooltip name="ГруппаОбновлениеДоступноРасширеннаяПодсказка" id="81"/>
37+
<ChildItems>
38+
<LabelDecoration name="НадписьОбновлениеДоступно" id="82">
39+
<HorizontalStretch>true</HorizontalStretch>
40+
<Title formatted="false">
41+
<v8:item>
42+
<v8:lang>ru</v8:lang>
43+
<v8:content>Доступна новая версия метрики</v8:content>
44+
</v8:item>
45+
</Title>
46+
<GroupVerticalAlign>Center</GroupVerticalAlign>
47+
<ContextMenu name="НадписьОбновлениеДоступноКонтекстноеМеню" id="83"/>
48+
<ExtendedTooltip name="НадписьОбновлениеДоступноРасширеннаяПодсказка" id="84"/>
49+
</LabelDecoration>
50+
<Button name="КнопкаОбновитьМетрику" id="85">
51+
<Type>CommandBarButton</Type>
52+
<CommandName>Form.Command.ОбновитьМетрикуИзМакета</CommandName>
53+
<Title>
54+
<v8:item>
55+
<v8:lang>ru</v8:lang>
56+
<v8:content>Обновить</v8:content>
57+
</v8:item>
58+
</Title>
59+
<GroupVerticalAlign>Center</GroupVerticalAlign>
60+
<ExtendedTooltip name="КнопкаОбновитьМетрикуРасширеннаяПодсказка" id="86"/>
61+
</Button>
62+
</ChildItems>
63+
</UsualGroup>
2864
<UsualGroup name="ГруппаШапка" id="17">
2965
<Group>Vertical</Group>
3066
<Behavior>Usual</Behavior>
@@ -244,6 +280,33 @@
244280
</v8:StringQualifiers>
245281
</Type>
246282
</Attribute>
283+
<Attribute name="ДоступноОбновлениеМетрики" id="14">
284+
<Title>
285+
<v8:item>
286+
<v8:lang>ru</v8:lang>
287+
<v8:content>Доступно обновление метрики</v8:content>
288+
</v8:item>
289+
</Title>
290+
<Type>
291+
<v8:Type>xs:boolean</v8:Type>
292+
</Type>
293+
</Attribute>
294+
<Attribute name="ВерсияВМакетеДляОбновления" id="15">
295+
<Title>
296+
<v8:item>
297+
<v8:lang>ru</v8:lang>
298+
<v8:content>Версия в макете для обновления</v8:content>
299+
</v8:item>
300+
</Title>
301+
<Type>
302+
<v8:Type>xs:decimal</v8:Type>
303+
<v8:NumberQualifiers>
304+
<v8:Digits>10</v8:Digits>
305+
<v8:FractionDigits>0</v8:FractionDigits>
306+
<v8:AllowedSign>Nonnegative</v8:AllowedSign>
307+
</v8:NumberQualifiers>
308+
</Type>
309+
</Attribute>
247310
</Attributes>
248311
<Commands>
249312
<Command name="ВыполнитьПроверкуАлгоритма" id="1">
@@ -276,5 +339,20 @@
276339
</ToolTip>
277340
<Action>Настройки</Action>
278341
</Command>
342+
<Command name="ОбновитьМетрикуИзМакета" id="16">
343+
<Title>
344+
<v8:item>
345+
<v8:lang>ru</v8:lang>
346+
<v8:content>Обновить метрику из макета</v8:content>
347+
</v8:item>
348+
</Title>
349+
<ToolTip>
350+
<v8:item>
351+
<v8:lang>ru</v8:lang>
352+
<v8:content>Обновить метрику из макета</v8:content>
353+
</v8:item>
354+
</ToolTip>
355+
<Action>ОбновитьМетрикуИзМакета</Action>
356+
</Command>
279357
</Commands>
280358
</Form>

src/cf/Catalogs/пэмМетрики/Forms/ФормаЭлемента/Ext/Form/Module.bsl

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
ИТКВ_РедакторКода.Инициализация(ЭтотОбъект, "РедакторКода", ЭтотОбъект, ДополнительныеПараметры);
4040

4141
ПараметрыРегламентногоЗадания = пэмМетрикиСервер.ПолучитьПараметрыРегламентногоЗадания(Объект.ИдентификаторРегламента);
42+
43+
// Проверка версии для предопределённых метрик
44+
ПроверитьДоступностьОбновленияМетрики();
4245

4346
КонецПроцедуры
4447

@@ -143,6 +146,29 @@
143146
ИТКВ_ОбщийКлиент.ОткрытьНастройки(ЭтотОбъект, ИТКВ_Перечисления.ИнструментКонсольРазработчика());
144147
КонецПроцедуры
145148

149+
&НаКлиенте
150+
Процедура ОбновитьМетрикуИзМакета(Команда)
151+
152+
ОписаниеОповещения = Новый ОписаниеОповещения("ОбновитьМетрикуИзМакетаЗавершение", ЭтотОбъект);
153+
ТекстВопроса = "Обновить алгоритм и настройки метрики из макета?
154+
|Текущий алгоритм будет перезаписан.";
155+
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
156+
157+
КонецПроцедуры
158+
159+
&НаКлиенте
160+
Процедура ОбновитьМетрикуИзМакетаЗавершение(Результат, ДополнительныеПараметры) Экспорт
161+
162+
Если Результат <> КодВозвратаДиалога.Да Тогда
163+
Возврат;
164+
КонецЕсли;
165+
166+
ОбновитьМетрикуИзМакетаНаСервере();
167+
ПодключаемыйЗагрузитьСостояниеРедактораКода();
168+
ПоказатьОповещениеПользователя("Метрика обновлена", , "Алгоритм и настройки загружены из макета");
169+
170+
КонецПроцедуры
171+
146172
#КонецОбласти
147173

148174
#Область СлужебныеПроцедурыИФункции
@@ -221,6 +247,76 @@
221247
|Тип содержимого остальных колонок - ""Строка""";
222248
КонецФункции
223249

250+
&НаСервере
251+
Процедура ПроверитьДоступностьОбновленияМетрики()
252+
253+
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
254+
Возврат;
255+
КонецЕсли;
256+
257+
// Проверяем только предопределённые элементы
258+
Если НЕ Объект.Ссылка.Предопределенный Тогда
259+
Возврат;
260+
КонецЕсли;
261+
262+
ОписаниеИзМакета = пэмМетрикиСервер.ПолучитьОписаниеМетрикиИзМакета(Объект.Код);
263+
Если ОписаниеИзМакета = Неопределено Тогда
264+
Возврат;
265+
КонецЕсли;
266+
267+
ВерсияВМакете = ОписаниеИзМакета.версия;
268+
ТекущаяВерсия = Объект.Версия;
269+
270+
Если ВерсияВМакете > ТекущаяВерсия Тогда
271+
ДоступноОбновлениеМетрики = Истина;
272+
ВерсияВМакетеДляОбновления = ВерсияВМакете;
273+
Элементы.ГруппаОбновлениеДоступно.Видимость = Истина;
274+
Элементы.НадписьОбновлениеДоступно.Заголовок = СтрШаблон(
275+
"Доступна новая версия алгоритма метрики (v%1 → v%2)",
276+
Формат(ТекущаяВерсия, "ЧГ="),
277+
Формат(ВерсияВМакете, "ЧГ="));
278+
Иначе
279+
ДоступноОбновлениеМетрики = Ложь;
280+
ВерсияВМакетеДляОбновления = 0;
281+
Элементы.ГруппаОбновлениеДоступно.Видимость = Ложь;
282+
КонецЕсли;
283+
284+
КонецПроцедуры
285+
286+
&НаСервере
287+
Процедура ОбновитьМетрикуИзМакетаНаСервере()
288+
289+
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
290+
Возврат;
291+
КонецЕсли;
292+
293+
ОписаниеИзМакета = пэмМетрикиСервер.ПолучитьОписаниеМетрикиИзМакета(Объект.Код);
294+
Если ОписаниеИзМакета = Неопределено Тогда
295+
Возврат;
296+
КонецЕсли;
297+
298+
// Загружаем алгоритм из макета
299+
Алгоритм = пэмМетрикиСервер.ПолучитьАлгоритмМетрикиИзМакета(ОписаниеИзМакета.макет);
300+
Если НЕ ЗначениеЗаполнено(Алгоритм) Тогда
301+
Возврат;
302+
КонецЕсли;
303+
304+
// Обновляем данные объекта
305+
Объект.Наименование = ОписаниеИзМакета.наименование;
306+
Объект.ТипМетрики = пэмМетрикиСервер.ПолучитьТипМетрикиПоИмени(ОписаниеИзМакета.типМетрики);
307+
Объект.МетодПолученияМетрики = пэмМетрикиСервер.ПолучитьМетодПолученияПоИмени(ОписаниеИзМакета.методПолучения);
308+
Объект.Активность = ОписаниеИзМакета.активность;
309+
Объект.Алгоритм = Алгоритм;
310+
Объект.Версия = ОписаниеИзМакета.версия;
311+
312+
// Скрываем панель обновления
313+
ДоступноОбновлениеМетрики = Ложь;
314+
Элементы.ГруппаОбновлениеДоступно.Видимость = Ложь;
315+
316+
Модифицированность = Истина;
317+
318+
КонецПроцедуры
319+
224320
&НаКлиенте
225321
Процедура ИТКВ_ПодключаемыйДокументСформирован(Элемент)
226322

0 commit comments

Comments
 (0)