diff --git "a/parsing-tech-log-plugins/bin/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C.epf" "b/parsing-tech-log-plugins/bin/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C.epf"
index e2be1cc..4094b54 100644
Binary files "a/parsing-tech-log-plugins/bin/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C.epf" and "b/parsing-tech-log-plugins/bin/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C.epf" differ
diff --git "a/parsing-tech-log-plugins/bin/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274.epf" "b/parsing-tech-log-plugins/bin/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274.epf"
index 08f3393..82b78d5 100644
Binary files "a/parsing-tech-log-plugins/bin/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274.epf" and "b/parsing-tech-log-plugins/bin/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274.epf" differ
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Form.form" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Form.form"
index ee89c5d..3e36f34 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Form.form"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Form.form"
@@ -133,6 +133,187 @@
AsFileRef
+
+ ТаблицаАгрегацииДанных1
+ 287
+ true
+ true
+
+ true
+
+
+ ТаблицаАгрегацииДанных
+
+ None
+
+ ТаблицаАгрегацииДанных1КоманднаяПанель
+ 288
+ true
+ true
+
+ true
+
+ Left
+ true
+
+
+ true
+ true
+
+ true
+
+ ТаблицаАгрегацииДанных1СтрокаПоиска
+ 291
+
+ ТаблицаАгрегацииДанных1СтрокаПоискаРасширеннаяПодсказка
+ 293
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаАгрегацииДанных1СтрокаПоискаКонтекстноеМеню
+ 292
+ true
+ true
+
+ true
+
+ true
+
+
+ true
+
+
+
+ true
+ true
+
+ true
+
+ ТаблицаАгрегацииДанных1СостояниеПросмотра
+ 297
+
+ ТаблицаАгрегацииДанных1СостояниеПросмотраРасширеннаяПодсказка
+ 299
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаАгрегацииДанных1СостояниеПросмотраКонтекстноеМеню
+ 298
+ true
+ true
+
+ true
+
+ true
+
+ ViewStatusAddition
+
+ true
+ Left
+
+
+
+ true
+ true
+
+ true
+
+ ТаблицаАгрегацииДанных1УправлениеПоиском
+ 294
+
+ ТаблицаАгрегацииДанных1УправлениеПоискомРасширеннаяПодсказка
+ 296
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаАгрегацииДанных1УправлениеПоискомКонтекстноеМеню
+ 295
+ true
+ true
+
+ true
+
+ true
+
+ SearchControlAddition
+
+ true
+
+
+
+ ТаблицаАгрегацииДанных1РасширеннаяПодсказка
+ 290
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаАгрегацииДанных1КонтекстноеМеню
+ 289
+ true
+ true
+
+ true
+
+ true
+
+ true
+ true
+ true
+ true
+ true
+ MultiRow
+
+ 1
+ 1
+ AutoUse
+ AutoUse
+ true
+ true
+ Auto
+ Auto
+ true
+ true
+ AsFileRef
+
ДатаОбновления
162
@@ -4427,7 +4608,6 @@
Picture
Auto
- 43
ПерейтиКПервойСтроке
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Module.bsl" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Module.bsl"
index 2bf7655..54f0f08 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Module.bsl"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\276\320\275\320\270\321\202\320\276\321\200\320\260/Module.bsl"
@@ -26,8 +26,10 @@
Элементы.Список.СписокВыбора.Добавить("server","сервера");
Элементы.Список.СписокВыбора.Добавить("manager","менеджеры");
Элементы.Список.СписокВыбора.Добавить("process","процессы");
+ Элементы.Список.СписокВыбора.Добавить("process licenses","проц. лиц.");
Элементы.Список.СписокВыбора.Добавить("connection","соединения");
Элементы.Список.СписокВыбора.Добавить("session","сеансы");
+ Элементы.Список.СписокВыбора.Добавить("session licenses","сеансы лиц.");
ПоляТаблицыДанных(Неопределено);
Элементы.ИнтервалИстории.СписокВыбора.Добавить(60*60*25,"1 д 1ч");
@@ -154,7 +156,7 @@
Процедура ОбновитьДанныеФоново(ТекущиеДанные) Экспорт
мПараметры = СформироватьСтруктуруЗапроса(ТекущиеДанные);
- СведенияФЗ = ЗапуститьЗадание24(АдресХранилища,Список,мПараметры,новый УникальныйИдентификатор(),НаименованиеФоновогоЗадания);
+ СведенияФЗ = ЗапуститьЗадание24(АдресХранилища,Список,мПараметры.cluster,мПараметры,новый УникальныйИдентификатор(),НаименованиеФоновогоЗадания);
ФЗ = СведенияФЗ.УникальныйИдентификатор;
ПодключитьОбработчикОжидания("МенеджерФоновыхЗаданий",1);
@@ -162,16 +164,17 @@
&НаСервереБезКонтекста
//&НаСервере
-Функция ЗапуститьЗадание24(АдресХранилища,list,мПараметры,УникальныйИдентификатор,НаименованиеФоновогоЗадания)
+Функция ЗапуститьЗадание24(АдресХранилища,list,cluster,мПараметры,УникальныйИдентификатор,НаименованиеФоновогоЗадания)
ЗаданиеРезультат = Неопределено;
+
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено,УникальныйИдентификатор);
ПараметрыКоманды = Новый Структура();
ПараметрыКоманды.Вставить("АдресХранилища",АдресХранилища);
+ ПараметрыКоманды.Вставить("cluster",cluster);
ПараметрыКоманды.Вставить("list",list);
- ПараметрыКоманды.Вставить("licenses",Ложь);
ПараметрыКоманды.Вставить("мПараметры",мПараметры);
ПараметрыКоманды.Вставить("ДополнительнаяОбработкаСсылка",ПолучитьСсылкуНаДополнительнуюОбработку());
ПараметрыКоманды.Вставить("ИдентификаторКоманды","ПолучитьДанныеКластераФоново");
@@ -326,7 +329,7 @@
&НаКлиенте
-Процедура ПолучтьСписокНаКлиенте(list,licenses=Ложь)
+Процедура ПолучтьСписокНаКлиенте(list)
ТекущиеДанные = Элементы.ТаблицаКластеров.ТекущиеДанные;
@@ -346,9 +349,9 @@
мПараметры = СформироватьСтруктуруЗапроса(ТекущиеДанные);
- СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list,licenses);
+ СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list);
СтруктураДанныхОтвета.Вставить("list",list);
- СтруктураДанныхОтвета.Вставить("licenses",licenses);
+ СтруктураДанныхОтвета.Вставить("cluster",мПараметры.cluster);
ОбработатьОтображениеДанных(СтруктураДанныхОтвета);
Иначе
@@ -366,6 +369,7 @@
Элементы.ДатаОбновления.ЦветФона = новый Цвет();
list = СтруктураДанныхОтвета.list;
+ cluster = СтруктураДанныхОтвета.cluster;
Если list="infobase" Тогда
СписокИнформационныхБаз = СтруктураДанныхОтвета.МассивСоответствиеДанных;
@@ -377,7 +381,7 @@
СоздатьИОбновитьКолонки(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);
- ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);
+ ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,list,cluster);
ЗаполнитьТаблицуСвойств(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);
@@ -392,9 +396,9 @@
&НаСервере
-Функция ПолучитьСписок(мПараметры,list,licenses=Ложь)
+Функция ПолучитьСписок(мПараметры,list)
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
- возврат РеквизитОбъект.ПолучитьСписок(мПараметры,list,licenses)
+ возврат РеквизитОбъект.ПолучитьСписок(мПараметры,list)
КонецФункции
&НаКлиенте
@@ -485,9 +489,9 @@
&НаКлиенте
-Процедура ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных,Знач list)
+Процедура ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных,Знач list, Знач cluster)
- МассивСтруктурАгрегацииДанных = ВычислитьФункцииАгрегацииСервер(МассивСоответствиеДанных, Корзина, list);
+ МассивСтруктурАгрегацииДанных = ВычислитьФункцииАгрегацииСервер(МассивСоответствиеДанных, Корзина, list, cluster);
// очистили
ТаблицаАгрегацииДанных.Очистить();
@@ -563,10 +567,10 @@
КонецПроцедуры
&НаСервере
-Функция ВычислитьФункцииАгрегацииСервер(Знач МассивСоответствиеДанных,Знач Корзина, Знач list)
+Функция ВычислитьФункцииАгрегацииСервер(Знач МассивСоответствиеДанных,Знач Корзина, Знач list, Знач cluster)
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
- МассивСтруктурАгрегацииДанных = РеквизитОбъект.ВычислитьФункцииАгрегации(МассивСоответствиеДанных, Корзина, list);
+ МассивСтруктурАгрегацииДанных = РеквизитОбъект.ВычислитьФункцииАгрегации(МассивСоответствиеДанных, Корзина, list, cluster);
Возврат МассивСтруктурАгрегацииДанных;
@@ -1051,6 +1055,7 @@
// отключим автообновление
Автообновление = Ложь;
+ Кластер = "";
Если КлючКластера="" Тогда
ТекущиеДанные = Элементы.ТаблицаКластеров.ТекущиеДанные;
@@ -1058,21 +1063,37 @@
Возврат;
КонецЕсли;
КлючКластера = ТекущиеДанные.key;
+ Кластер = ТекущиеДанные.cluster;
ТекущиеДанные.current = Истина;
КонецЕсли;
+ Если Кластер="" Тогда
+ Кластер = НайтиКластерПоключку(КлючКластера);
+ КонецЕсли;
+
НачалоЗамера = ТекущаяУниверсальнаяДатаВМиллисекундах();
СтруктураДанныхОтвета = ОбновитьТаблицуДаннымиИзИсторииСервер(Замер,ДатаОбновления,Список,КлючКластера,Направление);
СоздатьИОбновитьКолонки(СтруктураДанныхОтвета.МассивСоответствиеДанных,Список);
- ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,Список);
+ ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,Список,Кластер);
ДлительностьЗапроса = (ТекущаяУниверсальнаяДатаВМиллисекундах()-НачалоЗамера)/1000;
КонецПроцедуры
+&НаКлиенте
+Функция НайтиКластерПоключку(key)
+ Кластер = "";
+ мОтбор = новый Структура("key",key);
+ н_строки = ТаблицаКластеров.НайтиСтроки(мОтбор);
+ Если н_строки.Количество()>0 Тогда
+ Кластер = н_строки[0].cluster;
+ КонецЕсли;
+ Возврат Кластер;
+КонецФункции
+
&НаСервереБезКонтекста
Функция ПолучитьДатаСобытияШагНазад(Замер, ДатаСобытия, ТипСобытия, key, Направление)
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Module.bsl" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Module.bsl"
index 8684b4a..648daf7 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Module.bsl"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Module.bsl"
@@ -60,6 +60,7 @@
Элементы.Корзинаfunc.СписокВыбора.Добавить("count","количество");
Элементы.Корзинаfunc.СписокВыбора.Добавить("sum","сумма");
Элементы.Корзинаfunc.СписокВыбора.Добавить("count ЗначениеЗаполнено","количество ЗначениеЗаполнено");
+ Элементы.Корзинаfunc.СписокВыбора.Добавить("group count distinct","группы знач. кол-во различных");
СоответсвиеСинонимовСвойств = ПолучитьСоответсвиеСинонимовСвойств();
@@ -72,10 +73,10 @@
Элементы.Список.СписокВыбора.Добавить("server","сервера");
Элементы.Список.СписокВыбора.Добавить("manager","менеджеры");
Элементы.Список.СписокВыбора.Добавить("process","процессы");
- Элементы.Список.СписокВыбора.Добавить("process licenses","процессы лицензии");
+ Элементы.Список.СписокВыбора.Добавить("process licenses","проц. лиц.");
Элементы.Список.СписокВыбора.Добавить("connection","соединения");
Элементы.Список.СписокВыбора.Добавить("session","сеансы");
- Элементы.Список.СписокВыбора.Добавить("session licenses","сеансы лицензии");
+ Элементы.Список.СписокВыбора.Добавить("session licenses","сеансы лиц.");
Если ЗначениеЗаполнено(Замер) Тогда
Попытка
@@ -86,11 +87,6 @@
КонецПроцедуры
-
-
-
-
-
#Область РаботаСохранениеЗагрузкаНастроек
&НаКлиенте
@@ -170,8 +166,7 @@
&НаКлиенте
Процедура СписокПриИзменении(Элемент)
- СписокRAS = СтрЗаменить(Список," licenses","");
- ПолучтьСписокНаКлиенте(СписокRAS,(НЕ Найти(Список,"licenses")=0));
+ ПолучтьСписокНаКлиенте(Список);
КонецПроцедуры
&НаКлиенте
@@ -245,9 +240,9 @@
#Область ФункцииПолученияДанныхСписокв
&НаСервере
-Функция ПолучитьСписок(мПараметры,list,licenses=Ложь)
+Функция ПолучитьСписок(мПараметры,list)
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
- возврат РеквизитОбъект.ПолучитьСписок(мПараметры,list,licenses)
+ возврат РеквизитОбъект.ПолучитьСписок(мПараметры,list)
КонецФункции
&НаСервере
@@ -274,7 +269,7 @@
КонецПроцедуры
&НаКлиенте
-Процедура ПолучтьСписокНаКлиенте(list,licenses=Ложь)
+Процедура ПолучтьСписокНаКлиенте(list)
ТекущиеДанные = Элементы.ТаблицаКластеров.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
@@ -286,8 +281,9 @@
КонецЕсли;
мПараметры = СформироватьСтруктуруЗапроса(ТекущиеДанные);
+ cluster = мПараметры.cluster;
- СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list,licenses);
+ СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list);
Если list="infobase" Тогда
СписокИнформационныхБаз = СтруктураДанныхОтвета.МассивСоответствиеДанных;
@@ -301,7 +297,7 @@
ЗаполнитьТаблицуСвойств(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);
- ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);
+ ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,list,cluster);
КонецПроцедуры
@@ -312,14 +308,14 @@
КонецФункции
&НаСервере
-Процедура ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных,Знач list)
+Процедура ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных,Знач list, Знач cluster)
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
// очистили
ТаблицаАгрегацииДанных.Очистить();
- МассивСтруктурАгрегацииДанных = РеквизитОбъект.ВычислитьФункцииАгрегации(МассивСоответствиеДанных, Корзина, list);
+ МассивСтруктурАгрегацииДанных = РеквизитОбъект.ВычислитьФункцииАгрегации(МассивСоответствиеДанных, Корзина, list, cluster);
Для каждого стр из МассивСтруктурАгрегацииДанных Цикл
ЗаполнитьЗначенияСвойств(ТаблицаАгрегацииДанных.Добавить(),стр);
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/ObjectModule.bsl" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/ObjectModule.bsl"
index 72d953e..fe76de3 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/ObjectModule.bsl"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/ObjectModule.bsl"
@@ -8,7 +8,7 @@
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Монитор RAS 1C");
- ПараметрыРегистрации.Вставить("Версия", "2020.09.09");
+ ПараметрыРегистрации.Вставить("Версия", "2020.10.19");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", ИнформацияПоИсторииИзменений());
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
@@ -94,12 +94,12 @@
Возврат;
КонецЕсли;
list = ПараметрыКоманды.list;
- licenses = ПараметрыКоманды.licenses;
+ cluster = ПараметрыКоманды.cluster;
мПараметры = ПараметрыКоманды.мПараметры;
АдресХранилища = ПараметрыКоманды.АдресХранилища;
- СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list,licenses);
+ СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list);
СтруктураДанныхОтвета.Вставить("list",list);
- СтруктураДанныхОтвета.Вставить("licenses",licenses);
+ СтруктураДанныхОтвета.Вставить("cluster",cluster);
ПараметрыКоманды.Вставить("РезультатВыполнения",СтруктураДанныхОтвета);
КонецЕсли;
@@ -214,6 +214,7 @@
Если парам_кластера=Неопределено Тогда
Продолжить;
КонецЕсли;
+ cluster = парам_кластера.cluster;
вхПараметры.Вставить("server",парам_кластера.server);
вхПараметры.Вставить("port_ras",XMLСтрока(парам_кластера.port_ras));
вхПараметры.Вставить("cluster",парам_кластера.cluster);
@@ -262,7 +263,7 @@
СтруктураЗаписи.ДополнительныеСвойства.Вставить("Наименование",Наименование+"/агрегир");
// пройдемся по агрегирующим функциям
- МассивСтруктурАгрегацииДанных = ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,Корзина,эл_спис.Значение);
+ МассивСтруктурАгрегацииДанных = ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,Корзина,эл_спис.Значение,cluster);
ДобавитьСвойстваСерверКластер(парам_кластера, СтруктураЗаписи);
// только агрегирующие функции
@@ -404,7 +405,7 @@
#Область RAS
-Функция ПолучитьСписок(вхПараметры,list,licenses=Ложь) экспорт
+Функция ПолучитьСписок(вхПараметры,list) экспорт
мПараметры = новый Структура();
мПараметры.Вставить("ПутьКИсполняемомуФайлуRAC",""""+вхПараметры.ПутьКИсполняемомуФайлуRAC+"""");
@@ -415,9 +416,16 @@
мПараметры.Вставить("cluster_pwd",вхПараметры.cluster_pwd);
мПараметры.Вставить("КодировкаТекстаФайла",вхПараметры.КодировкаТекстаФайла);
- КомандаКонсоли = list+" list"+?(licenses=Истина," licenses","");
+ ТекстНачалаСтроки = list;
+ Если Найти(list,"licenses") Тогда
+ Массив = СтрРазделить(list," ",Ложь);
+ КомандаКонсоли = Массив[0]+" list licenses";
+ ТекстНачалаСтроки = Массив[0];
+ иначе
+ КомандаКонсоли = list+" list";
+ КонецЕсли;
- СтруктураДанныхОтвета = RAS_ПрочитатьДанныеОтветаКоманды(КомандаКонсоли,мПараметры,list);
+ СтруктураДанныхОтвета = RAS_ПрочитатьДанныеОтветаКоманды(КомандаКонсоли,мПараметры,ТекстНачалаСтроки);
Возврат СтруктураДанныхОтвета;
@@ -518,6 +526,7 @@
ПозицияДвоеточия = Найти(Строка,":");
ДанныеПараметра = СокрЛП(Прав(Строка,СтрДлина(Строка)-ПозицияДвоеточия));
+ НРегДанныеПараметра = НРег(ДанныеПараметра);
Описание = СоответсвиеСинонимовСвойств.Получить(ИмяПараметра);
// попробуем привести к строке
Попытка
@@ -525,9 +534,12 @@
// скорее всего время
Если Найти(ДанныеПараметра,":") И Найти(ДанныеПараметра,"-") И Найти(ДанныеПараметра,"T") Тогда
СоответствиеДанных.Вставить(ИмяПараметра,ПреобразоватьСтрокуВДату(ДанныеПараметра));
- ИначеЕсли ДанныеПараметра="yes" ИЛИ ДанныеПараметра="no" ИЛИ ДанныеПараметра="да" ИЛИ ДанныеПараметра="нет" Тогда
- СоответствиеДанных.Вставить(ИмяПараметра,?(ДанныеПараметра="yes" ИЛИ ДанныеПараметра="да",Истина,Ложь));
- Иначе
+ ИначеЕсли НРегДанныеПараметра="yes" ИЛИ НРегДанныеПараметра="no" ИЛИ НРегДанныеПараметра="да" ИЛИ НРегДанныеПараметра="нет" Тогда
+ СоответствиеДанных.Вставить(ИмяПараметра,?(НРегДанныеПараметра="yes" ИЛИ НРегДанныеПараметра="да",Истина,Ложь));
+ ИначеЕсли НЕ ЗначениеЗаполнено(ДанныеПараметра) ИЛИ Найти(ДанныеПараметра,".") ИЛИ Найти(ДанныеПараметра,"/") // это строка
+ ИЛИ Найти(ДанныеПараметра,"\") ИЛИ Найти(ДанныеПараметра,":") Тогда
+ СоответствиеДанных.Вставить(ИмяПараметра,ДанныеПараметра);
+ Иначе
СоответствиеДанных.Вставить(ИмяПараметра,Число(ДанныеПараметра));
// приведем к значение к секундам
Если ИмяПараметра="db-proc-took"
@@ -859,20 +871,36 @@
#Область Агрегирования
// получить таблицу агрегации
-Функция ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных, Знач Корзина, Знач list) Экспорт
+Функция ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных, Знач Корзина, Знач list, Знач cluster) Экспорт
// очистили
МассивСтруктурАгрегацииДанных = новый Массив;
// дальше
Для каждого стр из Корзина Цикл
- Если стр.list<>list Тогда
+ Если стр.list<>list ИЛИ стр.cluster<>cluster Тогда
Продолжить;
КонецЕсли;
- стр_н = новый Структура("value,name,synonim,func,list,cluster",0,"","","","","");
- МассивСтруктурАгрегацииДанных.Добавить(стр_н);
- ЗаполнитьЗначенияСвойств(стр_н,стр);
- стр_н.value = ПолучитьЗначениеФункцииТаблицы(МассивСоответствиеДанных,стр.name,стр.func);
+ value = ПолучитьЗначениеФункцииТаблицы(МассивСоответствиеДанных,стр.name,стр.func);
+ Если value=Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+ Если ТипЗнч(value)=Тип("Соответствие") Тогда
+ Для каждого эл_мас из value Цикл
+ стр_н = новый Структура("value,name,synonim,func,list,cluster",0,"","","","","");
+ МассивСтруктурАгрегацииДанных.Добавить(стр_н);
+ ЗаполнитьЗначенияСвойств(стр_н,стр);
+ стр_н.value = эл_мас.Значение;
+ стр_н.name = стр_н.name+" -> "+эл_мас.Ключ;
+ стр_н.synonim = ?(ЗначениеЗаполнено(стр_н.synonim),стр_н.synonim,стр_н.name)+" -> "+эл_мас.Ключ;
+ КонецЦикла;
+ Иначе
+ стр_н = новый Структура("value,name,synonim,func,list,cluster",0,"","","","","");
+ МассивСтруктурАгрегацииДанных.Добавить(стр_н);
+ ЗаполнитьЗначенияСвойств(стр_н,стр);
+ стр_н.value = value;
+ КонецЕсли;
+
КонецЦикла;
Возврат МассивСтруктурАгрегацииДанных;
@@ -885,6 +913,12 @@
Значение = 0;
Количество = МассивСоответствиеДанных.Количество();
+ Если Количество>0 Тогда
+ Если МассивСоответствиеДанных[0].Получить(name)=Неопределено Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+ КонецЕсли;
+
Если func="count" Тогда
Значение = Количество;
ИначеЕсли func="count ValueIsFilled"
@@ -934,6 +968,16 @@
КонецЦикла;
Значение = Окр(Значение/Количество,3,РежимОкругления.Окр15как20);
КонецЕсли;
+ ИначеЕсли func="group count distinct" Тогда
+ Значение = новый Соответствие;
+ Для каждого стр из МассивСоответствиеДанных Цикл
+ данные = стр.Получить(name);
+ Количество = Значение.Получить(данные);
+ Если Количество=Неопределено Тогда
+ Количество = 0;
+ КонецЕсли;
+ Значение.Вставить(данные,Количество+1);
+ КонецЦикла;
КонецЕсли;
Возврат Значение;
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Templates/\320\234\320\260\320\272\320\265\321\202/Template.mxlx" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Templates/\320\234\320\260\320\272\320\265\321\202/Template.mxlx"
index 6a910b5..a93e8bb 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Templates/\320\234\320\260\320\272\320\265\321\202/Template.mxlx"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\234\320\276\320\275\320\270\321\202\320\276\321\200RAS_1C/Templates/\320\234\320\260\320\272\320\265\321\202/Template.mxlx"
@@ -5652,8 +5652,603 @@
+
+ 104
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ license-type
+
+
+
+
+
+
+ 4
+
+
+ ru
+ тип лицензии
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Строка
+
+
+
+
+
+
+
+ 105
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ full-presentation
+
+
+
+
+
+
+ 4
+
+
+ ru
+ полное представление
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Строка
+
+
+
+
+
+
+
+ 106
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ series
+
+
+
+
+
+
+ 4
+
+
+ ru
+ номер лицензии
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Строка
+
+
+
+
+
+
+
+ 107
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ rmngr-address
+
+
+
+
+
+
+ 5
+
+
+ ru
+ rmngr адрес
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Строка
+
+
+
+
+
+
+
+ 108
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ short-presentation
+
+
+
+
+
+
+ 4
+
+
+ ru
+ краткое представление
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Строка
+
+
+
+
+
+
+
+ 109
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ issued-by-server
+
+
+
+
+
+
+ 4
+
+
+ ru
+ выдано сервером
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Булево
+
+
+
+
+
+
+
+ 110
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ net
+
+
+
+
+
+
+ 4
+
+
+ ru
+ сетевая
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Булево
+
+
+
+
+
+
+
+ 111
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ max-users-all
+
+
+
+
+
+
+ 5
+
+
+ ru
+ max-users-all
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Число
+
+
+
+
+
+
+
+ 112
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ max-users-cur
+
+
+
+
+
+
+ 4
+
+
+ ru
+ max-users-cur
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Число
+
+
+
+
+
+
+
+ 113
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ rmngr-port
+
+
+
+
+
+
+ 4
+
+
+ ru
+ rmngr-port
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Число
+
+
+
+
+
+
+
+ 114
+
+
+
+ 7
+
+
+ ru
+ session licenses
+
+
+
+
+
+
+ 5
+
+
+ ru
+ rmngr-pid
+
+
+
+
+
+
+ 4
+
+
+ ru
+ rmngr-pid
+
+
+
+
+
+
+ 6
+
+
+
+
+ 3
+
+
+ ru
+ Число
+
+
+
+
+
+
true
- 104
+ 115
+ 115
125
@@ -5672,4 +6267,7 @@
146
+
+ 103
+
\ No newline at end of file
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form"
index ac99dc5..b30320c 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form"
@@ -244,6 +244,54 @@
true
+
+ ИспользоватьФильтрыДанныхЗамеров
+ 40
+ true
+ true
+
+ true
+
+
+ ИспользоватьФильтрыДанныхЗамеров
+
+ Right
+
+ OnChange
+ ИспользоватьФильтрыДанныхЗамеровПриИзменении
+
+
+ ИспользоватьФильтрыДанныхЗамеровРасширеннаяПодсказка
+ 42
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ИспользоватьФильтрыДанныхЗамеровКонтекстноеМеню
+ 41
+ true
+ true
+
+ true
+
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+
ТаблицаСвязейВходовДанных
13
@@ -412,6 +460,106 @@
true
+
+ ТаблицаСвязейВходовДанныхФильтрСвойство
+ 43
+ true
+ true
+
+ true
+
+
+ ТаблицаСвязейВходовДанных.ФильтрСвойство
+
+
+ ТаблицаСвязейВходовДанныхФильтрСвойствоРасширеннаяПодсказка
+ 45
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаСвязейВходовДанныхФильтрСвойствоКонтекстноеМеню
+ 44
+ true
+ true
+
+ true
+
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ ТаблицаСвязейВходовДанныхФильтрЗначение
+ 46
+ true
+ true
+
+ true
+
+
+ ТаблицаСвязейВходовДанных.ФильтрЗначение
+
+
+ ТаблицаСвязейВходовДанныхФильтрЗначениеРасширеннаяПодсказка
+ 48
+ true
+ true
+
+ true
+
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаСвязейВходовДанныхФильтрЗначениеКонтекстноеМеню
+ 47
+ true
+ true
+
+ true
+
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+
+
ТаблицаСвязейВходовДанныхКоманднаяПанель
15
@@ -672,6 +820,9 @@
true
+
+ Замер
+
НечеткийКонтроллер
@@ -706,9 +857,6 @@
true
-
- ТаблицаСвязейВходовДанных
-
Свойство
@@ -763,6 +911,41 @@
true
+
+ ФильтрСвойство
+
+ ru
+ Фильтр свойство
+
+ 8
+
+ CatalogRef.Свойства
+
+
+ true
+
+
+ true
+
+
+
+ ФильтрЗначение
+
+ ru
+ Фильтр значение
+
+ 9
+
+ String
+
+
+
+ true
+
+
+ true
+
+
СохранятьЗначенияПреобразованияСигналов
@@ -780,9 +963,23 @@
true
-
- СохранятьЗначенияПреобразованияСигналов
-
+
+
+ ИспользоватьФильтрыДанныхЗамеров
+
+ ru
+ Использовать фильтры данных замеров
+
+ 7
+
+ Boolean
+
+
+ true
+
+
+ true
+
ВыполнитьОбработку
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Module.bsl" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Module.bsl"
index 83b14b3..8e851ff 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Module.bsl"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Module.bsl"
@@ -6,7 +6,10 @@
&НаКлиенте
Процедура ПриОткрытии(Отказ)
- //Вставить содержимое обработчика
+ Если ЗначениеЗаполнено(Замер) Тогда
+ ЗагрузитьНастройки(Неопределено);
+ КонецЕсли;
+ ИспользоватьФильтрыДанныхЗамеровПриИзменении(Неопределено);
КонецПроцедуры
&НаКлиенте
@@ -14,6 +17,7 @@
мНастройка = новый Структура();
мНастройка.Вставить("НечеткийКонтроллер",НечеткийКонтроллер);
мНастройка.Вставить("СохранятьЗначенияПреобразованияСигналов",СохранятьЗначенияПреобразованияСигналов);
+ мНастройка.Вставить("ИспользоватьФильтрыДанныхЗамеров",ИспользоватьФильтрыДанныхЗамеров);
МассивСтруктур = новый Массив;
Для каждого стр из ТаблицаСвязейВходовДанных Цикл
Структура = новый Структура("Замер,Свойство,НомерВхода");
@@ -30,6 +34,9 @@
Если мНастройка<>Неопределено Тогда
НечеткийКонтроллер = мНастройка.НечеткийКонтроллер;
СохранятьЗначенияПреобразованияСигналов = мНастройка.СохранятьЗначенияПреобразованияСигналов;
+ Если НЕ мНастройка.Свойство("ИспользоватьФильтрыДанныхЗамеров",ИспользоватьФильтрыДанныхЗамеров) Тогда
+ ИспользоватьФильтрыДанныхЗамеров = Ложь;
+ КонецЕсли;
ТаблицаСвязейВходовДанных.Очистить();
Для каждого стр из мНастройка.МассивСтруктурСвязейВходовДанных Цикл
стр_н = ТаблицаСвязейВходовДанных.Добавить();
@@ -50,4 +57,16 @@
ВыполнитьОбработкуНаСервере();
КонецПроцедуры
+&НаКлиенте
+Процедура ИспользоватьФильтрыДанныхЗамеровПриИзменении(Элемент)
+ Если ИспользоватьФильтрыДанныхЗамеров=Истина Тогда
+ Элементы.ТаблицаСвязейВходовДанныхФильтрСвойство.Видимость = Истина;
+ Элементы.ТаблицаСвязейВходовДанныхФильтрЗначение.Видимость = Истина;
+ Иначе
+ Элементы.ТаблицаСвязейВходовДанныхФильтрСвойство.Видимость = Ложь;
+ Элементы.ТаблицаСвязейВходовДанныхФильтрЗначение.Видимость = Ложь;
+ КонецЕсли;
+КонецПроцедуры
+
+
//TODO: Загружать количество входов при изменении модели
\ No newline at end of file
diff --git "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/ObjectModule.bsl" "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/ObjectModule.bsl"
index cfb6017..bcb8ce1 100644
--- "a/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/ObjectModule.bsl"
+++ "b/parsing-tech-log-plugins/src/ExternalDataProcessors/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260\320\224\320\260\320\275\320\275\321\213\321\205\320\235\320\265\321\207\320\265\321\202\320\272\320\270\320\274\320\232\320\276\320\275\321\202\321\200\320\276\320\273\320\273\320\265\321\200\320\276\320\274/ObjectModule.bsl"
@@ -8,7 +8,7 @@
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Обработка данных нечетким контроллером");
- ПараметрыРегистрации.Вставить("Версия", "2019.10.29");
+ ПараметрыРегистрации.Вставить("Версия", "2020.10.20");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", ИнформацияПоИсторииИзменений());
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
@@ -81,6 +81,8 @@
СвойстваЗамеров.Колонки.Добавить("Замер",новый ОписаниеТипов("СправочникСсылка.Замеры"));
СвойстваЗамеров.Колонки.Добавить("Свойство",новый ОписаниеТипов("СправочникСсылка.Свойства"));
СвойстваЗамеров.Колонки.Добавить("НомерВхода",новый ОписаниеТипов("Число"));
+ СвойстваЗамеров.Колонки.Добавить("ФильтрСвойство",новый ОписаниеТипов("СправочникСсылка.Свойства"));
+ СвойстваЗамеров.Колонки.Добавить("ФильтрЗначение",новый ОписаниеТипов("Строка"));
Для каждого стр из мНастройка.МассивСтруктурСвязейВходовДанных Цикл
стр_н = СвойстваЗамеров.Добавить();
@@ -90,6 +92,10 @@
// Загрузим нейронную сеть
СохранятьЗначенияПреобразованияСигналов = мНастройка.СохранятьЗначенияПреобразованияСигналов;
+ ИспользоватьФильтрыДанныхЗамеров = Ложь;
+ Если НЕ мНастройка.Свойство("ИспользоватьФильтрыДанныхЗамеров",ИспользоватьФильтрыДанныхЗамеров) Тогда
+ ИспользоватьФильтрыДанныхЗамеров = Ложь;
+ КонецЕсли;
НечеткийКонтроллер = мНастройка.НечеткийКонтроллер;
Модель = УправлениеХранилищемНастроекВызовСервера.ДанныеИзБезопасногоХранилища(НечеткийКонтроллер,"Модель");
FuzzyModel = Неопределено;
@@ -144,42 +150,90 @@
ЕстьДанныеДляОбработки = Истина;
Запрос = новый Запрос;
- Запрос.Текст ="ВЫБРАТЬ
- | Т.Замер КАК Замер,
- | Т.Свойство КАК Свойство,
- | ВЫРАЗИТЬ(Т.НомерВхода КАК ЧИСЛО) КАК НомерВхода
- |ПОМЕСТИТЬ ВтТЗ
- |ИЗ
- | &ТЗ КАК Т
- |;
- |
- |////////////////////////////////////////////////////////////////////////////////
- |ВЫБРАТЬ ПЕРВЫЕ 300
- | Т.ЗначениеЧисло КАК ЗначениеЧисло,
- | Т.Свойство КАК Свойство,
- | Т.Свойство.Наименование КАК СвойствоНаименование,
- | Т.Ссылка.ДатаСобытия КАК ДатаСобытия,
- | ВтТЗ.НомерВхода КАК НомерВхода
- |ИЗ
- | Справочник.СобытияЗамера.КлючевыеСвойства КАК Т
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТЗ КАК ВтТЗ
- | ПО Т.Ссылка.Владелец = ВтТЗ.Замер
- | И Т.Свойство = ВтТЗ.Свойство
- |ГДЕ
- | Т.Ссылка.ДатаСобытия > &ДатаНачала
- | И Т.Ссылка.ДатаСобытия < &ДатаОкончания
- | И (Т.Ссылка.Владелец, Т.Свойство) В
- | (ВЫБРАТЬ
- | Т.Замер,
- | Т.Свойство
- | ИЗ
- | ВтТЗ КАК Т)
- |
- |УПОРЯДОЧИТЬ ПО
- | ДатаСобытия,
- | Т.Свойство,
- | НомерВхода";
+ Если ИспользоватьФильтрыДанныхЗамеров=Истина Тогда
+ Запрос.Текст ="ВЫБРАТЬ
+ | Т.Замер КАК Замер,
+ | Т.Свойство КАК Свойство,
+ | ВЫРАЗИТЬ(Т.НомерВхода КАК ЧИСЛО) КАК НомерВхода,
+ | Т.ФильтрСвойство КАК ФильтрСвойство,
+ | ВЫРАЗИТЬ(Т.ФильтрЗначение КАК СТРОКА(150)) КАК ФильтрЗначение
+ |ПОМЕСТИТЬ ВтТЗ
+ |ИЗ
+ | &ТЗ КАК Т
+ |;
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ ПЕРВЫЕ 300
+ | Т.ЗначениеЧисло КАК ЗначениеЧисло,
+ | Т.Свойство КАК Свойство,
+ | Т.Свойство.Наименование КАК СвойствоНаименование,
+ | Т.Ссылка.ДатаСобытия КАК ДатаСобытия,
+ | ВтТЗ.НомерВхода КАК НомерВхода
+ |ИЗ
+ | Справочник.СобытияЗамера.КлючевыеСвойства КАК Т
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТЗ КАК ВтТЗ
+ | ПО Т.Ссылка.Владелец = ВтТЗ.Замер
+ | И Т.Свойство = ВтТЗ.Свойство
+ | ВНУТРЕННЕЕ соединение Справочник.СобытияЗамера.КлючевыеСвойства как Фильтр
+ | по Фильтр.Ссылка = Т.Ссылка
+ | И Фильтр.Ссылка.ДатаСобытия > &ДатаНачала
+ | И Фильтр.Ссылка.ДатаСобытия < &ДатаОкончания
+ | И (Фильтр.Свойство, Выразить(Фильтр.Значение как Строка(150))) В
+ | (ВЫБРАТЬ
+ | Т.ФильтрСвойство,
+ | Т.ФильтрЗначение
+ | ИЗ
+ | ВтТЗ КАК Т)
+ |ГДЕ
+ | Т.Ссылка.ДатаСобытия > &ДатаНачала
+ | И Т.Ссылка.ДатаСобытия < &ДатаОкончания
+ | И (Т.Ссылка.Владелец, Т.Свойство) В
+ | (ВЫБРАТЬ
+ | Т.Замер,
+ | Т.Свойство
+ | ИЗ
+ | ВтТЗ КАК Т)
+ |УПОРЯДОЧИТЬ ПО
+ | ДатаСобытия,
+ | Т.Свойство,
+ | НомерВхода";
+ Иначе
+ Запрос.Текст ="ВЫБРАТЬ
+ | Т.Замер КАК Замер,
+ | Т.Свойство КАК Свойство,
+ | ВЫРАЗИТЬ(Т.НомерВхода КАК ЧИСЛО) КАК НомерВхода
+ |ПОМЕСТИТЬ ВтТЗ
+ |ИЗ
+ | &ТЗ КАК Т
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ ПЕРВЫЕ 300
+ | Т.ЗначениеЧисло КАК ЗначениеЧисло,
+ | Т.Свойство КАК Свойство,
+ | Т.Свойство.Наименование КАК СвойствоНаименование,
+ | Т.Ссылка.ДатаСобытия КАК ДатаСобытия,
+ | ВтТЗ.НомерВхода КАК НомерВхода
+ |ИЗ
+ | Справочник.СобытияЗамера.КлючевыеСвойства КАК Т
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТЗ КАК ВтТЗ
+ | ПО Т.Ссылка.Владелец = ВтТЗ.Замер
+ | И Т.Свойство = ВтТЗ.Свойство
+ |ГДЕ
+ | Т.Ссылка.ДатаСобытия > &ДатаНачала
+ | И Т.Ссылка.ДатаСобытия < &ДатаОкончания
+ | И (Т.Ссылка.Владелец, Т.Свойство) В
+ | (ВЫБРАТЬ
+ | Т.Замер,
+ | Т.Свойство
+ | ИЗ
+ | ВтТЗ КАК Т)
+ |УПОРЯДОЧИТЬ ПО
+ | ДатаСобытия,
+ | Т.Свойство,
+ | НомерВхода";
+ КонецЕсли;
+
Запрос.УстановитьПараметр("ТЗ",СвойстваЗамеров);
СвойствоРешение = СправочникиСерверПовтИсп.ПолучитьСвойство("decision");
@@ -234,15 +288,15 @@
input = стр.input;
+ Если ДатаПрочитанныхДанных < стр.ДатаСобытия Тогда
+ ДатаПрочитанныхДанных = стр.ДатаСобытия;
+ КонецЕсли;
+
// количество сигналов должно быть равно количеству входов
Если НЕ input.Количество()=FuzzyModel.Fuzzification.Количество() Тогда
Продолжить;
КонецЕсли;
- Если ДатаПрочитанныхДанных < стр.ДатаСобытия Тогда
- ДатаПрочитанныхДанных = стр.ДатаСобытия;
- КонецЕсли;
-
// формируем
СтруктураОтвета = Неопределено;
//СтруктураОтвета = FuzzyController(FuzzyModel);