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 +
true
+ 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 @@ <common>true</common> </edit> </columns> + <columns> + <name>ФильтрСвойство</name> + <title> + <key>ru</key> + <value>Фильтр свойство</value> + + 8 + + CatalogRef.Свойства + + + true + + + true + + + + ФильтрЗначение + + <key>ru</key> + <value>Фильтр значение</value> + + 9 + + String + + + + true + + + true + + СохранятьЗначенияПреобразованияСигналов @@ -780,9 +963,23 @@ true - - СохранятьЗначенияПреобразованияСигналов - + + + ИспользоватьФильтрыДанныхЗамеров + + <key>ru</key> + <value>Использовать фильтры данных замеров</value> + + 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);