Skip to content

Commit

Permalink
Merge pull request #55 from Polyplastic/#54_исправление_бага_дублиров…
Browse files Browse the repository at this point in the history
…ания_итоговых_данных

#54 исправление бага дублирования итоговых данных
  • Loading branch information
sfppk authored Oct 24, 2020
2 parents df53e52 + a18df93 commit 0cf49b1
Show file tree
Hide file tree
Showing 10 changed files with 1,205 additions and 96 deletions.
Binary file modified parsing-tech-log-plugins/bin/МониторRAS_1C.epf
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,187 @@
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>ТаблицаАгрегацииДанных1</name>
<id>287</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ТаблицаАгрегацииДанных</segments>
</dataPath>
<titleLocation>None</titleLocation>
<autoCommandBar>
<name>ТаблицаАгрегацииДанных1КоманднаяПанель</name>
<id>288</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<searchStringAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ТаблицаАгрегацииДанных1СтрокаПоиска</name>
<id>291</id>
<extendedTooltip>
<name>ТаблицаАгрегацииДанных1СтрокаПоискаРасширеннаяПодсказка</name>
<id>293</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТаблицаАгрегацииДанных1СтрокаПоискаКонтекстноеМеню</name>
<id>292</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ТаблицаАгрегацииДанных1СостояниеПросмотра</name>
<id>297</id>
<extendedTooltip>
<name>ТаблицаАгрегацииДанных1СостояниеПросмотраРасширеннаяПодсказка</name>
<id>299</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТаблицаАгрегацииДанных1СостояниеПросмотраКонтекстноеМеню</name>
<id>298</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<horizontalLocation>Left</horizontalLocation>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ТаблицаАгрегацииДанных1УправлениеПоиском</name>
<id>294</id>
<extendedTooltip>
<name>ТаблицаАгрегацииДанных1УправлениеПоискомРасширеннаяПодсказка</name>
<id>296</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТаблицаАгрегацииДанных1УправлениеПоискомКонтекстноеМеню</name>
<id>295</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ТаблицаАгрегацииДанных1РасширеннаяПодсказка</name>
<id>290</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТаблицаАгрегацииДанных1КонтекстноеМеню</name>
<id>289</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<fileDragMode>AsFileRef</fileDragMode>
</items>
<items xsi:type="form:FormField">
<name>ДатаОбновления</name>
<id>162</id>
Expand Down Expand Up @@ -4427,7 +4608,6 @@
</action>
<representation>Picture</representation>
<currentRowUse>Auto</currentRowUse>
<associatedTableElementId>43</associatedTableElementId>
</formCommands>
<formCommands>
<name>ПерейтиКПервойСтроке</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@
Элементы.Список.СписокВыбора.Добавить("server","сервера");
Элементы.Список.СписокВыбора.Добавить("manager","менеджеры");
Элементы.Список.СписокВыбора.Добавить("process","процессы");
Элементы.Список.СписокВыбора.Добавить("process licenses","проц. лиц.");
Элементы.Список.СписокВыбора.Добавить("connection","соединения");
Элементы.Список.СписокВыбора.Добавить("session","сеансы");
Элементы.Список.СписокВыбора.Добавить("session licenses","сеансы лиц.");
ПоляТаблицыДанных(Неопределено);

Элементы.ИнтервалИстории.СписокВыбора.Добавить(60*60*25,"1 д 1ч");
Expand Down Expand Up @@ -154,24 +156,25 @@
Процедура ОбновитьДанныеФоново(ТекущиеДанные) Экспорт

мПараметры = СформироватьСтруктуруЗапроса(ТекущиеДанные);
СведенияФЗ = ЗапуститьЗадание24(АдресХранилища,Список,мПараметры,новый УникальныйИдентификатор(),НаименованиеФоновогоЗадания);
СведенияФЗ = ЗапуститьЗадание24(АдресХранилища,Список,мПараметры.cluster,мПараметры,новый УникальныйИдентификатор(),НаименованиеФоновогоЗадания);
ФЗ = СведенияФЗ.УникальныйИдентификатор;
ПодключитьОбработчикОжидания("МенеджерФоновыхЗаданий",1);

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

&НаСервереБезКонтекста
//&НаСервере
Функция ЗапуститьЗадание24(АдресХранилища,list,мПараметры,УникальныйИдентификатор,НаименованиеФоновогоЗадания)
Функция ЗапуститьЗадание24(АдресХранилища,list,cluster,мПараметры,УникальныйИдентификатор,НаименованиеФоновогоЗадания)

ЗаданиеРезультат = Неопределено;


АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено,УникальныйИдентификатор);

ПараметрыКоманды = Новый Структура();
ПараметрыКоманды.Вставить("АдресХранилища",АдресХранилища);
ПараметрыКоманды.Вставить("cluster",cluster);
ПараметрыКоманды.Вставить("list",list);
ПараметрыКоманды.Вставить("licenses",Ложь);
ПараметрыКоманды.Вставить("мПараметры",мПараметры);
ПараметрыКоманды.Вставить("ДополнительнаяОбработкаСсылка",ПолучитьСсылкуНаДополнительнуюОбработку());
ПараметрыКоманды.Вставить("ИдентификаторКоманды","ПолучитьДанныеКластераФоново");
Expand Down Expand Up @@ -326,7 +329,7 @@


&НаКлиенте
Процедура ПолучтьСписокНаКлиенте(list,licenses=Ложь)
Процедура ПолучтьСписокНаКлиенте(list)

ТекущиеДанные = Элементы.ТаблицаКластеров.ТекущиеДанные;

Expand All @@ -346,9 +349,9 @@

мПараметры = СформироватьСтруктуруЗапроса(ТекущиеДанные);

СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list,licenses);
СтруктураДанныхОтвета = ПолучитьСписок(мПараметры,list);
СтруктураДанныхОтвета.Вставить("list",list);
СтруктураДанныхОтвета.Вставить("licenses",licenses);
СтруктураДанныхОтвета.Вставить("cluster",мПараметры.cluster);

ОбработатьОтображениеДанных(СтруктураДанныхОтвета);
Иначе
Expand All @@ -366,6 +369,7 @@
Элементы.ДатаОбновления.ЦветФона = новый Цвет();

list = СтруктураДанныхОтвета.list;
cluster = СтруктураДанныхОтвета.cluster;

Если list="infobase" Тогда
СписокИнформационныхБаз = СтруктураДанныхОтвета.МассивСоответствиеДанных;
Expand All @@ -377,7 +381,7 @@

СоздатьИОбновитьКолонки(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);

ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);
ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,list,cluster);

ЗаполнитьТаблицуСвойств(СтруктураДанныхОтвета.МассивСоответствиеДанных,list);

Expand All @@ -392,9 +396,9 @@


&НаСервере
Функция ПолучитьСписок(мПараметры,list,licenses=Ложь)
Функция ПолучитьСписок(мПараметры,list)
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
возврат РеквизитОбъект.ПолучитьСписок(мПараметры,list,licenses)
возврат РеквизитОбъект.ПолучитьСписок(мПараметры,list)
КонецФункции

&НаКлиенте
Expand Down Expand Up @@ -485,9 +489,9 @@


&НаКлиенте
Процедура ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных,Знач list)
Процедура ВычислитьФункцииАгрегации(Знач МассивСоответствиеДанных,Знач list, Знач cluster)

МассивСтруктурАгрегацииДанных = ВычислитьФункцииАгрегацииСервер(МассивСоответствиеДанных, Корзина, list);
МассивСтруктурАгрегацииДанных = ВычислитьФункцииАгрегацииСервер(МассивСоответствиеДанных, Корзина, list, cluster);

// очистили
ТаблицаАгрегацииДанных.Очистить();
Expand Down Expand Up @@ -563,10 +567,10 @@
КонецПроцедуры

&НаСервере
Функция ВычислитьФункцииАгрегацииСервер(Знач МассивСоответствиеДанных,Знач Корзина, Знач list)
Функция ВычислитьФункцииАгрегацииСервер(Знач МассивСоответствиеДанных,Знач Корзина, Знач list, Знач cluster)

РеквизитОбъект = РеквизитФормыВЗначение("Объект");
МассивСтруктурАгрегацииДанных = РеквизитОбъект.ВычислитьФункцииАгрегации(МассивСоответствиеДанных, Корзина, list);
МассивСтруктурАгрегацииДанных = РеквизитОбъект.ВычислитьФункцииАгрегации(МассивСоответствиеДанных, Корзина, list, cluster);

Возврат МассивСтруктурАгрегацииДанных;

Expand Down Expand Up @@ -1051,28 +1055,45 @@

// отключим автообновление
Автообновление = Ложь;
Кластер = "";

Если КлючКластера="" Тогда
ТекущиеДанные = Элементы.ТаблицаКластеров.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
КлючКластера = ТекущиеДанные.key;
Кластер = ТекущиеДанные.cluster;
ТекущиеДанные.current = Истина;
КонецЕсли;

Если Кластер="" Тогда
Кластер = НайтиКластерПоключку(КлючКластера);
КонецЕсли;

НачалоЗамера = ТекущаяУниверсальнаяДатаВМиллисекундах();

СтруктураДанныхОтвета = ОбновитьТаблицуДаннымиИзИсторииСервер(Замер,ДатаОбновления,Список,КлючКластера,Направление);

СоздатьИОбновитьКолонки(СтруктураДанныхОтвета.МассивСоответствиеДанных,Список);

ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,Список);
ВычислитьФункцииАгрегации(СтруктураДанныхОтвета.МассивСоответствиеДанных,Список,Кластер);

ДлительностьЗапроса = (ТекущаяУниверсальнаяДатаВМиллисекундах()-НачалоЗамера)/1000;

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

&НаКлиенте
Функция НайтиКластерПоключку(key)
Кластер = "";
мОтбор = новый Структура("key",key);
н_строки = ТаблицаКластеров.НайтиСтроки(мОтбор);
Если н_строки.Количество()>0 Тогда
Кластер = н_строки[0].cluster;
КонецЕсли;
Возврат Кластер;
КонецФункции

&НаСервереБезКонтекста
Функция ПолучитьДатаСобытияШагНазад(Замер, ДатаСобытия, ТипСобытия, key, Направление)

Expand Down
Loading

0 comments on commit 0cf49b1

Please sign in to comment.