You've already forked 1c-parsing-tech-log
mirror of
https://github.com/Polyplastic/1c-parsing-tech-log.git
synced 2025-11-23 22:04:45 +02:00
новые отчеты, исправление
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Runtime-Version: 8.3.17
|
||||
Runtime-Version: 8.3.21
|
||||
Base-Project: parsing-tech-log
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
parsing-tech-log-plugins/bin/КоличествоСенасовЛицензий.erf
Normal file
BIN
parsing-tech-log-plugins/bin/КоличествоСенасовЛицензий.erf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
parsing-tech-log-plugins/bin/ЧастотныйАнализСобытий.epf
Normal file
BIN
parsing-tech-log-plugins/bin/ЧастотныйАнализСобытий.epf
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,97 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
//Вставить содержимое обработчика
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
Если ЗначениеЗаполнено(Замер) Тогда
|
||||
ЗагрузитьНастройки(Неопределено);
|
||||
КонецЕсли;
|
||||
Элементы.ФункцияАгрегацииДополнительногоСвойства.СписокВыбора.Добавить("Максимум");
|
||||
Элементы.ФункцияАгрегацииДополнительногоСвойства.СписокВыбора.Добавить("Слияние");
|
||||
Элементы.ФункцияАгрегацииДополнительногоСвойства.СписокВыбора.Добавить("Сумма");
|
||||
Элементы.ФункцияАгрегацииДополнительногоСвойства.СписокВыбора.Добавить("Минимум");
|
||||
Элементы.ФункцияАгрегацииДополнительногоСвойства.СписокВыбора.Добавить("Первое");
|
||||
Элементы.ФункцияАгрегацииДополнительногоСвойства.СписокВыбора.Добавить("Последнее");
|
||||
Если НЕ ЗначениеЗаполнено(ФункцияАгрегацииДополнительногоСвойства) Тогда
|
||||
ФункцияАгрегацииДополнительногоСвойства = "Первое";
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СохранитьНастройки(Команда)
|
||||
мНастройка = новый Структура();
|
||||
|
||||
мНастройка.Вставить("ЗамерИсточник",ЗамерИсточник);
|
||||
мНастройка.Вставить("Свойство",Свойство);
|
||||
|
||||
мНастройка.Вставить("РазмерПакета",РазмерПакета);
|
||||
мНастройка.Вставить("Аналитика1",Аналитика1);
|
||||
мНастройка.Вставить("Аналитика2",Аналитика2);
|
||||
мНастройка.Вставить("ГруппировкаБезПериода",ГруппировкаБезПериода);
|
||||
мНастройка.Вставить("ГруппировкаГод",ГруппировкаГод);
|
||||
мНастройка.Вставить("ГруппировкаДень",ГруппировкаДень);
|
||||
мНастройка.Вставить("ГруппировкаМесяц",ГруппировкаМесяц);
|
||||
мНастройка.Вставить("ГруппировкаНеделя",ГруппировкаНеделя);
|
||||
|
||||
мНастройка.Вставить("ДополнительноеСвойство",ДополнительноеСвойство);
|
||||
мНастройка.Вставить("ФункцияАгрегацииДополнительногоСвойства",ФункцияАгрегацииДополнительногоСвойства);
|
||||
|
||||
|
||||
мНастройка.Вставить("УдалятьЦифры",УдалятьЦифры);
|
||||
мНастройка.Вставить("УдалятьСпецСимволы",УдалятьСпецСимволы);
|
||||
|
||||
УправлениеХранилищемНастроекВызовСервера.ЗаписатьДанныеВБезопасноеХранилищеРасширенный(Замер,мНастройка,"Настройка частотного анализа по замеру");
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗагрузитьНастройки(Команда)
|
||||
мНастройка = УправлениеХранилищемНастроекВызовСервера.ДанныеИзБезопасногоХранилища(Замер);
|
||||
Если мНастройка<>Неопределено Тогда
|
||||
ЗамерИсточник = мНастройка.ЗамерИсточник;
|
||||
Свойство = мНастройка.Свойство;
|
||||
РазмерПакета = мНастройка.РазмерПакета;
|
||||
Аналитика1 = мНастройка.Аналитика1;
|
||||
Аналитика2 = мНастройка.Аналитика2;
|
||||
ГруппировкаБезПериода = мНастройка.ГруппировкаБезПериода;
|
||||
ГруппировкаГод = мНастройка.ГруппировкаГод;
|
||||
ГруппировкаДень = мНастройка.ГруппировкаДень;
|
||||
ГруппировкаМесяц = мНастройка.ГруппировкаМесяц;
|
||||
ГруппировкаНеделя = мНастройка.ГруппировкаНеделя;
|
||||
|
||||
ДополнительноеСвойство = мНастройка.ДополнительноеСвойство;
|
||||
ФункцияАгрегацииДополнительногоСвойства = мНастройка.ФункцияАгрегацииДополнительногоСвойства;
|
||||
|
||||
УдалятьЦифры = мНастройка.УдалятьЦифры;
|
||||
УдалятьСпецСимволы = мНастройка.УдалятьСпецСимволы;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьОбработкуНаСервере()
|
||||
мОбъект = РеквизитФормыВЗначение("Объект");
|
||||
мОбъект.ВыполнитьЧастотныйАнализСобытий(Замер);
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьОбработку(Команда)
|
||||
ВыполнитьОбработкуНаСервере();
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаСервере
|
||||
Процедура СформироватьКлючиНаСервере()
|
||||
// нужно добавить ключи, если нет
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СформироватьКлючи(Команда)
|
||||
СформироватьКлючиНаСервере();
|
||||
КонецПроцедуры
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,173 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
//Вставить содержимое обработчика
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
Если Первые=0 Тогда
|
||||
Первые=1000;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьРасчет(Команда)
|
||||
|
||||
КешСвертки = Новый Соответствие;
|
||||
ВыполнитьРасчетСервер(КешСвертки);
|
||||
|
||||
Для каждого стр из КешСвертки Цикл
|
||||
стр_н = ТаблицаОбработанныхСобытий.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(стр_н,стр.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаРезультат;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьРасчетСервер(КешСвертки)
|
||||
|
||||
Для каждого стр из ТаблицаДанных Цикл
|
||||
|
||||
Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
|
||||
Хеш.Добавить(стр.Значение);
|
||||
ЗначениеХеш = Хеш.ХешСумма;
|
||||
|
||||
// нет
|
||||
Если ГруппировкаБезПериода=Истина Тогда
|
||||
ДатаГрупировки = Дата('00010101');
|
||||
ОбновитьКешПоГруппировке(ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Нет");
|
||||
КонецЕсли;
|
||||
|
||||
// Год
|
||||
Если ГруппировкаГод=Истина Тогда
|
||||
ДатаГрупировки = НачалоГода(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Год");
|
||||
КонецЕсли;
|
||||
// Месяц
|
||||
Если ГруппировкаМесяц=Истина Тогда
|
||||
ДатаГрупировки = НачалоМесяца(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Месяц");
|
||||
КонецЕсли;
|
||||
// Неделя
|
||||
Если ГруппировкаНеделя=Истина Тогда
|
||||
ДатаГрупировки = НачалоНедели(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Неделя");
|
||||
КонецЕсли;
|
||||
// День
|
||||
Если ГруппировкаДень=Истина Тогда
|
||||
ДатаГрупировки = НачалоДня(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "День");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбновитьКешПоГруппировке(ЗначениеХеш, КешСвертки, Источник, ДатаГруппировки, ТипГруппировки="Нет")
|
||||
|
||||
Перем Данные;
|
||||
|
||||
Ключ = НРег(Строка(ЗначениеХеш)+"->"+ТипГруппировки+":"+ДатаГруппировки+" "+Источник.ЗначениеАналитика1+" "+Источник.ЗначениеАналитика2);
|
||||
Данные = КешСвертки.Получить(Ключ);
|
||||
Если Данные=Неопределено Тогда
|
||||
Данные = Новый Структура("КоличествоСовпадений,Хеш,Значение,ДатаПоследнейЗаписи,СобытиеЗамера",0,ЗначениеХеш,Источник.Значение,Источник.Дата,Источник.СобытиеЗамера);
|
||||
Данные.Вставить("ДатаГруппировки",ДатаГруппировки);
|
||||
Данные.Вставить("ТипГруппировки",ТипГруппировки);
|
||||
Данные.Вставить("ДлительностьМксМаксимум",Источник.ДлительностьМкс);
|
||||
Данные.Вставить("ДлительностьМксСумма",0);
|
||||
Данные.Вставить("Аналитика1",Источник.Аналитика1);
|
||||
Данные.Вставить("ЗначениеАналитика1",Источник.ЗначениеАналитика1);
|
||||
Данные.Вставить("Аналитика2",Источник.Аналитика2);
|
||||
Данные.Вставить("ЗначениеАналитика2",Источник.ЗначениеАналитика2);
|
||||
КешСвертки.Вставить(Ключ,Данные);
|
||||
КонецЕсли;
|
||||
|
||||
Данные.КоличествоСовпадений = Данные.КоличествоСовпадений+1;
|
||||
Данные.ДлительностьМксСумма = Данные.ДлительностьМксСумма+Источник.ДлительностьМкс;
|
||||
Если Данные.ДатаПоследнейЗаписи<=Источник.Дата И НЕ Данные.СобытиеЗамера = Источник.СобытиеЗамера Тогда
|
||||
Данные.ДатаПоследнейЗаписи = Источник.Дата;
|
||||
Данные.СобытиеЗамера = Источник.СобытиеЗамера;
|
||||
КонецЕсли;
|
||||
Если Данные.ДлительностьМксМаксимум<Источник.ДлительностьМкс Тогда
|
||||
Данные.ДлительностьМксМаксимум=Источник.ДлительностьМкс;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
|
||||
&НаСервере
|
||||
Процедура ПолучитьДанныеНаСервере()
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1000
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка КАК СобытиеЗамера,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.Владелец КАК Замер,
|
||||
| СобытияЗамераКлючевыеСвойства.Свойство КАК Свойство,
|
||||
| СобытияЗамераКлючевыеСвойства.Значение КАК Значение,
|
||||
| СобытияЗамераКлючевыеСвойства.ХешЗначения КАК Хеш,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.ДатаСобытия КАК Дата,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.ДлительностьМкс КАК ДлительностьМкс,
|
||||
| &Аналитика1 КАК Аналитика1,
|
||||
| НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика1,
|
||||
| &Аналитика2 КАК Аналитика2,
|
||||
| НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика2
|
||||
|ИЗ
|
||||
| Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
|ГДЕ
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.Владелец = &Замер
|
||||
| И СобытияЗамераКлючевыеСвойства.Свойство = &Свойство
|
||||
| И СобытияЗамераКлючевыеСвойства.Ссылка.ДатаСобытия МЕЖДУ &ДатаНачала И &ДатаОкончания
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Дата,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка";
|
||||
Запрос.УстановитьПараметр("Замер",Замер);
|
||||
Запрос.УстановитьПараметр("Свойство",Свойство);
|
||||
Запрос.УстановитьПараметр("Аналитика1",Аналитика1);
|
||||
Запрос.УстановитьПараметр("Аналитика2",Аналитика2);
|
||||
Запрос.УстановитьПараметр("ДатаНачала",Период.ДатаНачала);
|
||||
Запрос.УстановитьПараметр("ДатаОкончания",Период.ДатаОкончания);
|
||||
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"ВЫБРАТЬ ПЕРВЫЕ 1000","ВЫБРАТЬ ПЕРВЫЕ "+XMLСтрока(Первые));
|
||||
|
||||
Если ЗначениеЗаполнено(Аналитика1) Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика1,",
|
||||
"ЕстьNull(ЗнАн1.Значение,"""") КАК ЗначениеАналитика1,");
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства",
|
||||
"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СобытияЗамера.КлючевыеСвойства КАК ЗнАн1
|
||||
|ПО ЗнАн1.Ссылка=СобытияЗамераКлючевыеСвойства.Ссылка
|
||||
| И ЗнАн1.Свойство=&Аналитика1"+Символы.ПС);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Аналитика2) Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика1,",
|
||||
"ЕстьNull(ЗнАн1.Значение,"""") КАК ЗначениеАналитика1,");
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства",
|
||||
"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СобытияЗамера.КлючевыеСвойства КАК ЗнАн2
|
||||
|ПО ЗнАн2.Ссылка=СобытияЗамераКлючевыеСвойства.Ссылка
|
||||
| И ЗнАн2.Свойство=&Аналитика2"+Символы.ПС);
|
||||
КонецЕсли;
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
стр_н = ТаблицаДанных.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(стр_н,Выборка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПолучитьДанные(Команда)
|
||||
ПолучитьДанныеНаСервере();
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаДанные;
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -0,0 +1,545 @@
|
||||
#Область ДополнительныеОбработки
|
||||
|
||||
Функция СведенияОВнешнейОбработке() Экспорт
|
||||
|
||||
МассивНазначений = Новый Массив;
|
||||
|
||||
ПараметрыРегистрации = Новый Структура;
|
||||
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
|
||||
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
|
||||
ПараметрыРегистрации.Вставить("Наименование", "Частотный анализ событий");
|
||||
ПараметрыРегистрации.Вставить("Версия", "2023.07.29");
|
||||
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
|
||||
ПараметрыРегистрации.Вставить("Информация", ИнформацияПоИсторииИзменений());
|
||||
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
|
||||
ТаблицаКоманд = ПолучитьТаблицуКоманд();
|
||||
ДобавитьКоманду(ТаблицаКоманд,
|
||||
"Настройка 'Частотный анализ событий'",
|
||||
"НастройкаЧастотныйАнализСобытий",
|
||||
"ОткрытиеФормы",
|
||||
Истина,
|
||||
"",
|
||||
"ФормаНастроек"
|
||||
);
|
||||
ДобавитьКоманду(ТаблицаКоманд,
|
||||
"ЧастотныйАнализСобытийФоново",
|
||||
"ЧастотныйАнализСобытийФоново",
|
||||
"ВызовСерверногоМетода",
|
||||
Ложь,
|
||||
"",
|
||||
"ФормаМонитора",
|
||||
Ложь
|
||||
);
|
||||
|
||||
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
|
||||
|
||||
Возврат ПараметрыРегистрации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТаблицуКоманд()
|
||||
|
||||
Команды = Новый ТаблицаЗначений;
|
||||
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
|
||||
Команды.Колонки.Добавить("ПросмотрВсе", Новый ОписаниеТипов("Булево"));
|
||||
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("ИмяФормы", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
Возврат Команды;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "", ИмяФормы="",ПросмотрВсе=Истина)
|
||||
|
||||
НоваяКоманда = ТаблицаКоманд.Добавить();
|
||||
НоваяКоманда.Представление = Представление;
|
||||
НоваяКоманда.Идентификатор = Идентификатор;
|
||||
НоваяКоманда.Использование = Использование;
|
||||
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
|
||||
НоваяКоманда.Модификатор = Модификатор;
|
||||
НоваяКоманда.ИмяФормы = ИмяФормы;
|
||||
НоваяКоманда.ПросмотрВсе = ПросмотрВсе;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИнформацияПоИсторииИзменений()
|
||||
Возврат "
|
||||
| <div style='text-indent: 25px;'>Данная обработка позволяет выполнять частотную обработку данных</div>
|
||||
| <div style='text-indent: 25px;'>Форма Настройка 'Частотный анализ' выполнить настройку </div>
|
||||
| <hr />
|
||||
| <div style='text-indent: 25px;'>Автор идеи: Крючков Владимир.</div>
|
||||
| <div style='text-indent: 25px;'>Реализовали: Крючков Владимир.</div>
|
||||
| <hr />
|
||||
| Подробную информацию смотрите по адресу интернет: <a target='_blank' href='https://github.com/Polyplastic/1c-parsing-tech-log'>https://github.com/Polyplastic/1c-parsing-tech-log</a>";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьКоманду(Знач ИдентификаторКоманды, ПараметрыКоманды=Неопределено) Экспорт
|
||||
|
||||
Если ИдентификаторКоманды="ЧастотныйАнализСобытийФоново" Тогда
|
||||
|
||||
// только при наличии параметров
|
||||
Если ПараметрыКоманды=Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Область ЧастотныйАнализСобытий
|
||||
|
||||
Процедура ВыполнитьЗагрузкуДанных(Замер,ДополнительнаяОбработка=Неопределено) Экспорт
|
||||
|
||||
ВыполнитьЧастотныйАнализСобытий(Замер);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ВыполнитьЧастотныйАнализСобытий(Замер) Экспорт
|
||||
|
||||
// получим настройки загрузки
|
||||
мНастройка = УправлениеХранилищемНастроекВызовСервера.ДанныеИзБезопасногоХранилища(Замер);
|
||||
|
||||
Если мНастройка=Неопределено Тогда
|
||||
ЗаписьЖурналаРегистрации("ЗагрузитьДанныеВЗамерСервер",УровеньЖурналаРегистрации.Ошибка,Неопределено,Замер,"Не созданы настройки для операции произвольной загрузки по замеру ("+Замер+")");
|
||||
Возврат 0;
|
||||
КонецЕсли;
|
||||
|
||||
//ЗаписыватьРезультатОбработкиВИсходныйЗамер = мНастройка.ЗаписыватьРезультатОбработкиВИсходныйЗамер;
|
||||
|
||||
РазмерФайла = 0;
|
||||
ПрочитаноСтрок = 0;
|
||||
|
||||
|
||||
//инициализация фильтров
|
||||
РеквизитыЗамера = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Замер, "ФильтрТипСобытия,ФильтрСвойстваСобытия,ФильтрСвойстваСобытияКроме,ФильтрДлительность,НачалоПериода,КонецПериода,ТипЗамера,ДополнительнаяОбработка");
|
||||
РеквизитыЗамера.Вставить("ФильтрТипСобытия", РеквизитыЗамера.ФильтрТипСобытия.Получить());
|
||||
НачалоПериода = РеквизитыЗамера.НачалоПериода;
|
||||
КонецПериода = РеквизитыЗамера.КонецПериода;
|
||||
|
||||
|
||||
АдресURL = "/ЧастотныйАнализСобытий/"+Строка(Замер.UUID());
|
||||
|
||||
ФайлЗамера = Справочники.ФайлыЗамера.ПолучитьФайлПоПолномуИмени(Замер, АдресURL);
|
||||
|
||||
//получим состояние чтения
|
||||
СостояниеЧтения = РегистрыСведений.СостояниеЧтения.ПолучитьСостояние(ФайлЗамера);
|
||||
|
||||
|
||||
//по факту - количество прочитанных данных
|
||||
ПрочитаноСтрок = СостояниеЧтения.ПрочитаноСтрок;
|
||||
ДатаПрочитанныхДанных = СостояниеЧтения.ДатаПрочитанныхДанных;
|
||||
ПоследнееОбработанноеСобытиеЗамера = СостояниеЧтения.СобытиеЗамера;
|
||||
|
||||
|
||||
// читаем в границе
|
||||
Если ДатаПрочитанныхДанных<НачалоПериода Тогда
|
||||
ДатаПрочитанныхДанных = НачалоПериода;
|
||||
КонецЕсли;
|
||||
|
||||
КешСвертки = Новый Соответствие;
|
||||
КешСверткиИзБазы = Новый Соответствие;
|
||||
|
||||
// 1) обработка полученных данных
|
||||
ТаблицаДанных = ПолучитьДанныеНаСервере(мНастройка,ДатаПрочитанныхДанных);
|
||||
Если ТаблицаДанных.Количество()>0 Тогда
|
||||
ПоследнееОбработанноеСобытиеЗамера = ТаблицаДанных[ТаблицаДанных.Количество()-1].СобытиеЗамера;
|
||||
ДатаПрочитанныхДанных = ТаблицаДанных[ТаблицаДанных.Количество()-1].Дата;
|
||||
ПрочитаноСтрок = ПрочитаноСтрок+ТаблицаДанных.Количество();
|
||||
Иначе
|
||||
// нет данных для обработки
|
||||
Возврат 0;
|
||||
КонецЕсли;
|
||||
|
||||
ВыполнитьРасчетПолученныхДанных(ТаблицаДанных,КешСвертки,мНастройка);
|
||||
|
||||
// 2) теперь добавим уже рассчитанные данные
|
||||
ТаблицаРассчитанныхДанных = ПолучитьТаблицуРассчитанныхДанных(Замер,мНастройка);
|
||||
СтруктураСвойств = Новый Структура;
|
||||
|
||||
|
||||
СтруктураСвойств.Вставить("Значение",СправочникиСерверПовтИсп.ПолучитьСвойство("Значение"));
|
||||
СтруктураСвойств.Вставить("ОбработанныйТекст",СправочникиСерверПовтИсп.ПолучитьСвойство("ОбработанныйТекст"));
|
||||
СтруктураСвойств.Вставить("КоличествоСовпадений",СправочникиСерверПовтИсп.ПолучитьСвойство("КоличествоСовпадений"));
|
||||
СтруктураСвойств.Вставить("Аналитика1",СправочникиСерверПовтИсп.ПолучитьСвойство("Аналитика1"));
|
||||
СтруктураСвойств.Вставить("Аналитика2",СправочникиСерверПовтИсп.ПолучитьСвойство("Аналитика2"));
|
||||
СтруктураСвойств.Вставить("ЗначениеАналитика1",СправочникиСерверПовтИсп.ПолучитьСвойство("ЗначениеАналитика1"));
|
||||
СтруктураСвойств.Вставить("ЗначениеАналитика2",СправочникиСерверПовтИсп.ПолучитьСвойство("ЗначениеАналитика2"));
|
||||
СтруктураСвойств.Вставить("ТипГруппировки",СправочникиСерверПовтИсп.ПолучитьСвойство("ТипГруппировки"));
|
||||
СтруктураСвойств.Вставить("ДатаГруппировки",СправочникиСерверПовтИсп.ПолучитьСвойство("ДатаГруппировки"));
|
||||
СтруктураСвойств.Вставить("Хеш",СправочникиСерверПовтИсп.ПолучитьСвойство("Хеш"));
|
||||
СтруктураСвойств.Вставить("ДатаПоследнейЗаписи",СправочникиСерверПовтИсп.ПолучитьСвойство("ДатаПоследнейЗаписи"));
|
||||
СтруктураСвойств.Вставить("ДлительностьМксМаксимум",СправочникиСерверПовтИсп.ПолучитьСвойство("ДлительностьМксМаксимум"));
|
||||
СтруктураСвойств.Вставить("ДлительностьМксСумма",СправочникиСерверПовтИсп.ПолучитьСвойство("ДлительностьМксСумма"));
|
||||
СтруктураСвойств.Вставить("ДополнительноеСвойство",СправочникиСерверПовтИсп.ПолучитьСвойство("ДополнительноеСвойство"));
|
||||
СтруктураСвойств.Вставить("ЗначениеДополнительноеСвойство",СправочникиСерверПовтИсп.ПолучитьСвойство("ЗначениеДополнительноеСвойство"));
|
||||
|
||||
|
||||
КлючиПоискаИмениПоСвойству = Новый Соответствие;
|
||||
Для каждого стр из СтруктураСвойств Цикл
|
||||
КлючиПоискаИмениПоСвойству.Вставить(стр.Значение,стр.Ключ);
|
||||
КонецЦикла;
|
||||
|
||||
// сформируем таблицу из рассчитанных данных, кеш по ключу
|
||||
КешРассчитанных = Новый Соответствие;
|
||||
Для каждого стр из ТаблицаРассчитанныхДанных Цикл
|
||||
СтруктураСтроки = КешРассчитанных.Получить(стр.Ссылка);
|
||||
Если СтруктураСтроки=Неопределено Тогда
|
||||
СтруктураСтроки = Новый Структура;
|
||||
СтруктураСтроки.Вставить("СобытияЗамера",стр.Ссылка);
|
||||
КонецЕсли;
|
||||
ИмяСвойства = КлючиПоискаИмениПоСвойству.Получить(стр.Свойство);
|
||||
Если ИмяСвойства=Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
СтруктураСтроки.Вставить(ИмяСвойства,стр.Значение);
|
||||
КешРассчитанных.Вставить(стр.Ссылка,СтруктураСтроки);
|
||||
КонецЦикла;
|
||||
|
||||
// Сформируем ключи
|
||||
Для каждого стр из КешРассчитанных Цикл
|
||||
ТипГруппировки = "";
|
||||
ДатаГруппировки = "";
|
||||
ЗначениеАналитика1 = "";
|
||||
ЗначениеАналитика2 = "";
|
||||
ЗначениеХеш = "";
|
||||
Если стр.Значение.Свойство("ЗначениеАналитика1") Тогда
|
||||
ЗначениеАналитика1 = стр.Значение.ЗначениеАналитика1;
|
||||
КонецЕсли;
|
||||
Если стр.Значение.Свойство("ЗначениеАналитика2") Тогда
|
||||
ЗначениеАналитика2 = стр.Значение.ЗначениеАналитика2;
|
||||
КонецЕсли;
|
||||
Если стр.Значение.Свойство("ТипГруппировки") Тогда
|
||||
ТипГруппировки = стр.Значение.ТипГруппировки;
|
||||
КонецЕсли;
|
||||
Если стр.Значение.Свойство("ДатаГруппировки") Тогда
|
||||
ДатаГруппировки = стр.Значение.ДатаГруппировки;
|
||||
КонецЕсли;
|
||||
Если стр.Значение.Свойство("Хеш") Тогда
|
||||
ЗначениеХеш = стр.Значение.Хеш;
|
||||
КонецЕсли;
|
||||
Ключ = НРег(Строка(ЗначениеХеш)+"->"+ТипГруппировки+":"+ДатаГруппировки+" "+ЗначениеАналитика1+" "+ЗначениеАналитика2);
|
||||
стр.Значение.Вставить("Ключ",Ключ);
|
||||
КешСверткиИзБазы.Вставить(Ключ,стр.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
// 3) Выполним добавление и обмен
|
||||
// пройдемся по полученным данным
|
||||
Для каждого стр из КешСвертки Цикл
|
||||
|
||||
СобытиеЗамераОбъект = Неопределено;
|
||||
|
||||
// 1 найдем это новый или старый
|
||||
ЭлементИзБазы = КешСверткиИзБазы.Получить(стр.Ключ);
|
||||
Если ЭлементИзБазы=Неопределено Тогда
|
||||
СобытиеЗамераОбъект = Справочники.СобытияЗамера.СоздатьЭлемент();
|
||||
СобытиеЗамераОбъект.Владелец = Замер;
|
||||
СобытиеЗамераОбъект.Файл = ФайлЗамера;
|
||||
СобытиеЗамераОбъект.ДатаСобытия = стр.Значение.ДатаГруппировки;
|
||||
СобытиеЗамераОбъект.ДлительностьМкс = стр.Значение.ДлительностьМксМаксимум;
|
||||
|
||||
// табличная часть
|
||||
Для каждого тч из стр.Значение Цикл
|
||||
// пропускаем свойства, которые нам не нужны
|
||||
Если СтруктураСвойств.Свойство(тч.Ключ)=Ложь Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
стр_н = СобытиеЗамераОбъект.КлючевыеСвойства.Добавить();
|
||||
стр_н.Свойство = СтруктураСвойств[тч.Ключ];
|
||||
Если ТипЗнч(тч.Значение)=Тип("Число") Тогда
|
||||
стр_н.ЗначениеЧисло = тч.Значение;
|
||||
стр_н.Значение = XMLСтрока(тч.Значение);
|
||||
Иначе
|
||||
стр_н.Значение = Строка(тч.Значение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
СобытиеЗамераОбъект = ЭлементИзБазы.СобытияЗамера.ПолучитьОбъект();
|
||||
// изменим КоличествоСовпадений
|
||||
мОтбор = новый Структура("Свойство",СтруктураСвойств.КоличествоСовпадений);
|
||||
строка_события = СобытиеЗамераОбъект.КлючевыеСвойства.НайтиСтроки(мОтбор);
|
||||
Если строка_события.Количество()>0 Тогда
|
||||
строка_события[0].ЗначениеЧисло = строка_события[0].ЗначениеЧисло+стр.Значение.КоличествоСовпадений;
|
||||
строка_события[0].Значение = строка_события[0].ЗначениеЧисло;
|
||||
КонецЕсли;
|
||||
// изменим ДатаПоследнейЗаписи
|
||||
мОтбор = новый Структура("Свойство",СтруктураСвойств.ДатаПоследнейЗаписи);
|
||||
строка_события = СобытиеЗамераОбъект.КлючевыеСвойства.НайтиСтроки(мОтбор);
|
||||
Если строка_события.Количество()>0 Тогда
|
||||
строка_события[0].Значение = стр.Значение.ДатаПоследнейЗаписи;
|
||||
КонецЕсли;
|
||||
// изменим ДлительностьМксМаксимум
|
||||
мОтбор = новый Структура("Свойство",СтруктураСвойств.ДлительностьМксМаксимум);
|
||||
строка_события = СобытиеЗамераОбъект.КлючевыеСвойства.НайтиСтроки(мОтбор);
|
||||
Если строка_события.Количество()>0 Тогда
|
||||
Если строка_события[0].ЗначениеЧисло<стр.Значение.ДлительностьМксМаксимум Тогда
|
||||
строка_события[0].ЗначениеЧисло = стр.Значение.ДлительностьМксМаксимум;
|
||||
строка_события[0].Значение = стр.Значение.ДлительностьМксМаксимум;
|
||||
СобытиеЗамераОбъект.ДлительностьМкс = стр.Значение.ДлительностьМксМаксимум;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
// изменим ДлительностьМксСумма
|
||||
мОтбор = новый Структура("Свойство",СтруктураСвойств.ДлительностьМксСумма);
|
||||
строка_события = СобытиеЗамераОбъект.КлючевыеСвойства.НайтиСтроки(мОтбор);
|
||||
Если строка_события.Количество()>0 Тогда
|
||||
строка_события[0].ЗначениеЧисло = строка_события[0].ЗначениеЧисло+стр.Значение.ДлительностьМксСумма;
|
||||
строка_события[0].Значение = строка_события[0].ЗначениеЧисло;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ СобытиеЗамераОбъект=Неопределено Тогда
|
||||
СобытиеЗамераОбъект.Записать();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
// Обновление инфорации о количестве прочитанных строк
|
||||
РегистрыСведений.СостояниеЧтения.УстановитьСостояние(
|
||||
ФайлЗамера,
|
||||
ДатаПрочитанныхДанных,
|
||||
ПрочитаноСтрок,
|
||||
ДатаПрочитанныхДанных,
|
||||
РазмерФайла,
|
||||
ДатаПрочитанныхДанных,
|
||||
ПоследнееОбработанноеСобытиеЗамера);
|
||||
|
||||
Возврат 1;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьРасчетПолученныхДанных(ТаблицаДанных,КешСвертки,мНастройка)
|
||||
|
||||
Для каждого стр из ТаблицаДанных Цикл
|
||||
|
||||
Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
|
||||
ОбработанныйТекст = стр.Значение;
|
||||
ОбработанныйТекст = ОбработатьТекст(ОбработанныйТекст,мНастройка);
|
||||
Хеш.Добавить(стр.Значение);
|
||||
ЗначениеХеш = Хеш.ХешСумма;
|
||||
|
||||
// нет
|
||||
Если мНастройка.ГруппировкаБезПериода=Истина Тогда
|
||||
ДатаГрупировки = Дата('00010101');
|
||||
ОбновитьКешПоГруппировке(ТаблицаДанных, мНастройка, ОбработанныйТекст, ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Нет");
|
||||
КонецЕсли;
|
||||
|
||||
// Год
|
||||
Если мНастройка.ГруппировкаГод=Истина Тогда
|
||||
ДатаГрупировки = НачалоГода(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ТаблицаДанных, мНастройка, ОбработанныйТекст, ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Год");
|
||||
КонецЕсли;
|
||||
// Месяц
|
||||
Если мНастройка.ГруппировкаМесяц=Истина Тогда
|
||||
ДатаГрупировки = НачалоМесяца(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ТаблицаДанных, мНастройка, ОбработанныйТекст, ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Месяц");
|
||||
КонецЕсли;
|
||||
// Неделя
|
||||
Если мНастройка.ГруппировкаНеделя=Истина Тогда
|
||||
ДатаГрупировки = НачалоНедели(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ТаблицаДанных, мНастройка, ОбработанныйТекст, ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "Неделя");
|
||||
КонецЕсли;
|
||||
// День
|
||||
Если мНастройка.ГруппировкаДень=Истина Тогда
|
||||
ДатаГрупировки = НачалоДня(стр.Дата);
|
||||
ОбновитьКешПоГруппировке(ТаблицаДанных, мНастройка, ОбработанныйТекст, ЗначениеХеш, КешСвертки, стр, ДатаГрупировки, "День");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ОбработатьТекст(Знач Текст,мНастройки)
|
||||
|
||||
// удалить специ символы и цифры
|
||||
Текст = УбратьЛишниеСимволыИзСтроки(Текст,мНастройки.УдалятьСпецСимволы,мНастройки.УдалятьЦифры);
|
||||
|
||||
Возврат Текст;
|
||||
КонецФункции
|
||||
|
||||
Функция УбратьЛишниеСимволыИзСтроки(Строка,УдалятьСпецСимволы=Истина,УдалятьЦифры=Истина) Экспорт
|
||||
|
||||
Если УдалятьСпецСимволы=Ложь И УдалятьЦифры=Ложь Тогда
|
||||
Возврат Строка;
|
||||
КонецЕсли;
|
||||
|
||||
РезультирующаяСтрока = "";
|
||||
Для н = 1 По СтрДлина(Строка) Цикл
|
||||
ДобавитьСимвол = Истина;
|
||||
|
||||
// УдалятьСпецСимволы
|
||||
Если УдалятьСпецСимволы=Истина
|
||||
И НЕ ((КодСимвола(Строка, н) >= 48 И КодСимвола(Строка, н) <= 57)
|
||||
ИЛИ (КодСимвола(Строка, н) >= 65 И КодСимвола(Строка, н) <= 90)
|
||||
ИЛИ (КодСимвола(Строка, н) >= 97 И КодСимвола(Строка, н) <= 122)
|
||||
ИЛИ (КодСимвола(Строка, н) >= 1040 И КодСимвола(Строка, н) <= 1103)) Тогда
|
||||
ДобавитьСимвол = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
// УдалятьЦифры
|
||||
Если УдалятьЦифры=Истина
|
||||
И ( КодСимвола(Строка, н) >= 48 И КодСимвола(Строка, н) <= 57 ) Тогда
|
||||
ДобавитьСимвол = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДобавитьСимвол=Истина Тогда
|
||||
РезультирующаяСтрока = РезультирующаяСтрока + Сред(Строка, н, 1);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
Возврат РезультирующаяСтрока;
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбновитьКешПоГруппировке(ТаблицаДанных, мНастройка, ОбработанныйТекст, ЗначениеХеш, КешСвертки, Источник, ДатаГруппировки, ТипГруппировки="Нет")
|
||||
|
||||
Перем Данные;
|
||||
|
||||
Ключ = НРег(Строка(ЗначениеХеш)+"->"+ТипГруппировки+":"+ДатаГруппировки+" "+Источник.ЗначениеАналитика1+" "+Источник.ЗначениеАналитика2);
|
||||
Данные = КешСвертки.Получить(Ключ);
|
||||
Если Данные=Неопределено Тогда
|
||||
Данные = Новый Структура("КоличествоСовпадений,Хеш,Значение,ДатаПоследнейЗаписи,СобытиеЗамера",0,ЗначениеХеш,Источник.Значение,Источник.Дата,Источник.СобытиеЗамера);
|
||||
Данные.Вставить("ДатаГруппировки",ДатаГруппировки);
|
||||
Данные.Вставить("ТипГруппировки",ТипГруппировки);
|
||||
Данные.Вставить("ДлительностьМксМаксимум",Источник.ДлительностьМкс);
|
||||
Данные.Вставить("ДлительностьМксСумма",0);
|
||||
Данные.Вставить("Аналитика1",Источник.Аналитика1);
|
||||
Данные.Вставить("ЗначениеАналитика1",Источник.ЗначениеАналитика1);
|
||||
Данные.Вставить("Аналитика2",Источник.Аналитика2);
|
||||
Данные.Вставить("ЗначениеАналитика2",Источник.ЗначениеАналитика2);
|
||||
Данные.Вставить("ОбработанныйТекст",ОбработанныйТекст);
|
||||
Данные.Вставить("ДополнительноеСвойство",Источник.ДополнительноеСвойство);
|
||||
Данные.Вставить("ЗначениеДополнительноеСвойство",Источник.ЗначениеДополнительноеСвойство);
|
||||
КешСвертки.Вставить(Ключ,Данные);
|
||||
КонецЕсли;
|
||||
|
||||
Данные.КоличествоСовпадений = Данные.КоличествоСовпадений+1;
|
||||
Данные.ДлительностьМксСумма = Данные.ДлительностьМксСумма+Источник.ДлительностьМкс;
|
||||
Если Данные.ДатаПоследнейЗаписи<=Источник.Дата И НЕ Данные.СобытиеЗамера = Источник.СобытиеЗамера Тогда
|
||||
Данные.ДатаПоследнейЗаписи = Источник.Дата;
|
||||
Данные.СобытиеЗамера = Источник.СобытиеЗамера;
|
||||
КонецЕсли;
|
||||
Если Данные.ДлительностьМксМаксимум<Источник.ДлительностьМкс Тогда
|
||||
Данные.ДлительностьМксМаксимум=Источник.ДлительностьМкс;
|
||||
КонецЕсли;
|
||||
|
||||
// доп свойство
|
||||
Если ЗначениеЗаполнено(мНастройка.ДополнительноеСвойство) Тогда
|
||||
Если мНастройка.ФункцияАгрегацииДополнительногоСвойства="Первое" Тогда
|
||||
ИначеЕсли мНастройка.ФункцияАгрегацииДополнительногоСвойства="Последнее" Тогда
|
||||
Данные.Вставить("ЗначениеДополнительноеСвойство",Источник.ЗначениеДополнительноеСвойство);
|
||||
ИначеЕсли мНастройка.ФункцияАгрегацииДополнительногоСвойства="Максимум" Тогда
|
||||
Если Источник.ЗначениеДополнительноеСвойство>Данные.ЗначениеДополнительноеСвойство Тогда
|
||||
Данные.Вставить("ЗначениеДополнительноеСвойство",Источник.ЗначениеДополнительноеСвойство);
|
||||
КонецЕсли;
|
||||
ИначеЕсли мНастройка.ФункцияАгрегацииДополнительногоСвойства="Минимум" Тогда
|
||||
Если Источник.ЗначениеДополнительноеСвойство<Данные.ЗначениеДополнительноеСвойство Тогда
|
||||
Данные.Вставить("ЗначениеДополнительноеСвойство",Источник.ЗначениеДополнительноеСвойство);
|
||||
КонецЕсли;
|
||||
ИначеЕсли мНастройка.ФункцияАгрегацииДополнительногоСвойства="Слияние" Тогда
|
||||
Данные.Вставить("ЗначениеДополнительноеСвойство",Строка(Данные.ЗначениеДополнительноеСвойство)+Символы.ПС+Строка(Источник.ЗначениеДополнительноеСвойство));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьТаблицуРассчитанныхДанных(Замер,мНастройка)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| КлючевыеСвойства.Ссылка КАК Ссылка,
|
||||
| КлючевыеСвойства.Свойство.Наименование КАК ИмяСвойства,
|
||||
| КлючевыеСвойства.Свойство КАК Свойство,
|
||||
| КлючевыеСвойства.Значение КАК Значение,
|
||||
| КлючевыеСвойства.ЗначениеЧисло КАК ЗначениеЧисло
|
||||
|ИЗ
|
||||
| Справочник.СобытияЗамера.КлючевыеСвойства КАК КлючевыеСвойства
|
||||
|ГДЕ
|
||||
| КлючевыеСвойства.Ссылка.Владелец = &Замер";
|
||||
Запрос.УстановитьПараметр("Замер",Замер);
|
||||
|
||||
Возврат Запрос.Выполнить().Выгрузить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьДанныеНаСервере(мНастройки,ДатаНачалаЧтения)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1000
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка КАК СобытиеЗамера,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.Владелец КАК Замер,
|
||||
| СобытияЗамераКлючевыеСвойства.Свойство КАК Свойство,
|
||||
| СобытияЗамераКлючевыеСвойства.Значение КАК Значение,
|
||||
| СобытияЗамераКлючевыеСвойства.ХешЗначения КАК Хеш,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.ДатаСобытия КАК Дата,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.ДлительностьМкс КАК ДлительностьМкс,
|
||||
| &Аналитика1 КАК Аналитика1,
|
||||
| НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика1,
|
||||
| &Аналитика2 КАК Аналитика2,
|
||||
| НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика2,
|
||||
| &ДополнительноеСвойство КАК ДополнительноеСвойство,
|
||||
| НЕОПРЕДЕЛЕНО КАК ЗначениеДополнительноеСвойство,
|
||||
| """" КАК ОбработанныйТекст
|
||||
|ИЗ
|
||||
| Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
|ГДЕ
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка.Владелец = &Замер
|
||||
| И СобытияЗамераКлючевыеСвойства.Свойство = &Свойство
|
||||
| И СобытияЗамераКлючевыеСвойства.Ссылка.ДатаСобытия > &ДатаНачалаЧтения
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Дата,
|
||||
| СобытияЗамераКлючевыеСвойства.Ссылка";
|
||||
Запрос.УстановитьПараметр("Замер",мНастройки.ЗамерИсточник);
|
||||
Запрос.УстановитьПараметр("Свойство",мНастройки.Свойство);
|
||||
Запрос.УстановитьПараметр("Аналитика1",мНастройки.Аналитика1);
|
||||
Запрос.УстановитьПараметр("Аналитика2",мНастройки.Аналитика2);
|
||||
Запрос.УстановитьПараметр("ДополнительноеСвойство",мНастройки.ДополнительноеСвойство);
|
||||
Запрос.УстановитьПараметр("ДатаНачалаЧтения",ДатаНачалаЧтения);
|
||||
|
||||
Если мНастройки.РазмерПакета=0 Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"ВЫБРАТЬ ПЕРВЫЕ 1000","ВЫБРАТЬ ");
|
||||
Иначе
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"ВЫБРАТЬ ПЕРВЫЕ 1000","ВЫБРАТЬ ПЕРВЫЕ "+XMLСтрока(мНастройки.РазмерПакета));
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(мНастройки.Аналитика1) Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика1,",
|
||||
"ЕстьNull(ЗнАн1.Значение,"""") КАК ЗначениеАналитика1,");
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства",
|
||||
"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СобытияЗамера.КлючевыеСвойства КАК ЗнАн1
|
||||
|ПО ЗнАн1.Ссылка=СобытияЗамераКлючевыеСвойства.Ссылка
|
||||
| И ЗнАн1.Свойство=&Аналитика1"+Символы.ПС);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(мНастройки.Аналитика2) Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"НЕОПРЕДЕЛЕНО КАК ЗначениеАналитика2,",
|
||||
"ЕстьNull(ЗнАн2.Значение,"""") КАК ЗначениеАналитика2,");
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства",
|
||||
"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СобытияЗамера.КлючевыеСвойства КАК ЗнАн2
|
||||
|ПО ЗнАн2.Ссылка=СобытияЗамераКлючевыеСвойства.Ссылка
|
||||
| И ЗнАн2.Свойство=&Аналитика2"+Символы.ПС);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(мНастройки.ДополнительноеСвойство) Тогда
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"НЕОПРЕДЕЛЕНО КАК ЗначениеДополнительноеСвойство,",
|
||||
"ЕстьNull(ДопСв.Значение,"""") КАК ЗначениеДополнительноеСвойство,");
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства",
|
||||
"Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СобытияЗамера.КлючевыеСвойства КАК ДопСв
|
||||
|ПО ДопСв.Ссылка=СобытияЗамераКлючевыеСвойства.Ссылка
|
||||
| И ДопСв.Свойство=&ДополнительноеСвойство"+Символы.ПС);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Запрос.Выполнить().Выгрузить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ExternalDataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a30580fd-cd5a-4ba3-99ac-3c6e4770e513">
|
||||
<producedTypes>
|
||||
<objectType typeId="0e99cf99-ea0a-49d9-a3ac-eb47e0ad58e8" valueTypeId="69833904-294b-4262-af12-61d1c399b735"/>
|
||||
</producedTypes>
|
||||
<name>ЧастотныйАнализСобытий</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Частотный анализ событий</value>
|
||||
</synonym>
|
||||
<containedObjects classId="c3831ec8-d8d5-4f93-8a22-f9bfae07327f" objectId="3214c302-3ca4-4fa4-8b01-7eed8a8196fb"/>
|
||||
<defaultForm>ExternalDataProcessor.ЧастотныйАнализСобытий.Form.ФормаНастроек</defaultForm>
|
||||
<forms uuid="72abc9ec-da99-4185-a316-da15a80d3a54">
|
||||
<name>ФормаОтладка</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма отладка</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="44347248-7af1-4ff3-b34f-a2674238086f">
|
||||
<name>ФормаНастроек</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма настроек</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
</mdclass:ExternalDataProcessor>
|
||||
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ОсновнаяКоманднаяПанель</name>
|
||||
<id>1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Основная командная панель</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ОсновнаяКоманднаяПанельРасширеннаяПодсказка</name>
|
||||
<id>2</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>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<commandSource>Form</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>КомпоновщикНастроекПользовательскиеНастройки</name>
|
||||
<id>3</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа пользовательских настроек</value>
|
||||
</title>
|
||||
<verticalStretch>false</verticalStretch>
|
||||
<extendedTooltip>
|
||||
<name>КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка</name>
|
||||
<id>4</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>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>Vertical</group>
|
||||
<representation>WeakSeparation</representation>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Результат</name>
|
||||
<id>5</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Результат</segments>
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>РезультатРасширеннаяПодсказка</name>
|
||||
<id>7</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>РезультатКонтекстноеМеню</name>
|
||||
<id>6</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SpreadsheetDocumentField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:SpreadSheetDocFieldExtInfo">
|
||||
<width>100</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>10</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<pointerType>Special</pointerType>
|
||||
<verticalScrollBar>ScrollAuto</verticalScrollBar>
|
||||
<horizontalScrollBar>ScrollAuto</horizontalScrollBar>
|
||||
<selectionShowMode>Always</selectionShowMode>
|
||||
<drawingSelectionShowMode>Auto</drawingSelectionShowMode>
|
||||
<showGroups>true</showGroups>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
</extInfo>
|
||||
</items>
|
||||
<commandBarLocation>None</commandBarLocation>
|
||||
<autoCommandBar>
|
||||
<name></name>
|
||||
<id>-1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>true</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Отчет</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>ExternalReportObject.КоличествоСенасовЛицензий</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>Результат</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Результат</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>SpreadsheetDocument</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<extInfo xsi:type="form:SpreadsheetDocumentExtInfo"/>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ДанныеРасшифровки</name>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:ReportFormExtInfo">
|
||||
<reportResult>Результат</reportResult>
|
||||
<detailsInformation>ДанныеРасшифровки</detailsInformation>
|
||||
<userSettingsGroup>КомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup>
|
||||
</extInfo>
|
||||
</form:Form>
|
||||
@@ -0,0 +1,80 @@
|
||||
#Область ДополнительныеОбработки
|
||||
|
||||
Функция СведенияОВнешнейОбработке() Экспорт
|
||||
|
||||
МассивНазначений = Новый Массив;
|
||||
|
||||
ПараметрыРегистрации = Новый Структура;
|
||||
ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет");
|
||||
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
|
||||
ПараметрыРегистрации.Вставить("Наименование", "Количество сенасов лицензий");
|
||||
ПараметрыРегистрации.Вставить("Версия", "2023.03.28");
|
||||
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
|
||||
ПараметрыРегистрации.Вставить("Информация", ИнформацияПоИсторииИзменений());
|
||||
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
|
||||
ТаблицаКоманд = ПолучитьТаблицуКоманд();
|
||||
ДобавитьКоманду(ТаблицаКоманд,
|
||||
"Количество сенасов лицензий",
|
||||
"КоличествоСенасовЛицензий",
|
||||
"ОткрытиеФормы",
|
||||
Истина,
|
||||
"",
|
||||
"ФормаОтчета"
|
||||
);
|
||||
|
||||
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
|
||||
|
||||
Возврат ПараметрыРегистрации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТаблицуКоманд()
|
||||
|
||||
Команды = Новый ТаблицаЗначений;
|
||||
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
|
||||
Команды.Колонки.Добавить("ПросмотрВсе", Новый ОписаниеТипов("Булево"));
|
||||
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("ИмяФормы", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
Возврат Команды;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "", ИмяФормы="",ПросмотрВсе=Истина)
|
||||
|
||||
НоваяКоманда = ТаблицаКоманд.Добавить();
|
||||
НоваяКоманда.Представление = Представление;
|
||||
НоваяКоманда.Идентификатор = Идентификатор;
|
||||
НоваяКоманда.Использование = Использование;
|
||||
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
|
||||
НоваяКоманда.Модификатор = Модификатор;
|
||||
НоваяКоманда.ИмяФормы = ИмяФормы;
|
||||
НоваяКоманда.ПросмотрВсе = ПросмотрВсе;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИнформацияПоИсторииИзменений()
|
||||
Возврат "
|
||||
| <div style='text-indent: 25px;'>Данный отчет позволяет получить представление ио изменении производительности между двумя неделями - текущей и предыдущей</div>
|
||||
| <hr />
|
||||
| Подробную информацию смотрите по адресу интернет: <a target='_blank' href='https://github.com/Polyplastic/1c-parsing-tech-log'>https://github.com/Polyplastic/1c-parsing-tech-log</a>";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьКоманду(Знач ИдентификаторКоманды, ПараметрыКоманды=Неопределено) Экспорт
|
||||
|
||||
Если ИдентификаторКоманды="" Тогда
|
||||
|
||||
// только при наличии параметров
|
||||
Если ПараметрыКоманды=Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -0,0 +1,314 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>НаборДанных1</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Свойство</dataPath>
|
||||
<field>Свойство</field>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Минута</dataPath>
|
||||
<field>Минута</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Минута</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЗначениеЧисло</dataPath>
|
||||
<field>ЗначениеЧисло</field>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>Ключ</dataPath>
|
||||
<field>Ключ</field>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ
|
||||
Свойства.Ссылка КАК Ссылка
|
||||
ПОМЕСТИТЬ ВтСвойства
|
||||
ИЗ
|
||||
Справочник.Свойства КАК Свойства
|
||||
ГДЕ
|
||||
Свойства.Наименование ПОДОБНО &СвойствоСодержит
|
||||
;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ВЫБРАТЬ
|
||||
СобытияЗамераКлючевыеСвойства.Ссылка.Ключ КАК Ключ,
|
||||
СобытияЗамераКлючевыеСвойства.Свойство КАК Свойство,
|
||||
НАЧАЛОПЕРИОДА(СобытияЗамераКлючевыеСвойства.Ссылка.ДатаСобытия, МИНУТА) КАК Минута,
|
||||
СУММА(СобытияЗамераКлючевыеСвойства.ЗначениеЧисло) КАК ЗначениеЧисло
|
||||
ИЗ
|
||||
Справочник.СобытияЗамера.КлючевыеСвойства КАК СобытияЗамераКлючевыеСвойства
|
||||
ГДЕ
|
||||
СобытияЗамераКлючевыеСвойства.Ссылка.НомерСтрокиФайла = 0
|
||||
И СобытияЗамераКлючевыеСвойства.Ссылка.ТипСобытия = &ТипСобытия
|
||||
И СобытияЗамераКлючевыеСвойства.Ссылка.ДатаСобытия МЕЖДУ &ДатаНачала И &ДатаОкончания
|
||||
И СобытияЗамераКлючевыеСвойства.Свойство В
|
||||
(ВЫБРАТЬ
|
||||
Т.Ссылка
|
||||
ИЗ
|
||||
ВтСвойства КАК Т)
|
||||
|
||||
СГРУППИРОВАТЬ ПО
|
||||
НАЧАЛОПЕРИОДА(СобытияЗамераКлючевыеСвойства.Ссылка.ДатаСобытия, МИНУТА),
|
||||
СобытияЗамераКлючевыеСвойства.Свойство,
|
||||
СобытияЗамераКлючевыеСвойства.Ссылка.Ключ</query>
|
||||
</dataSet>
|
||||
<totalField>
|
||||
<dataPath>ЗначениеЧисло</dataPath>
|
||||
<expression>Сумма(ЗначениеЧисло)</expression>
|
||||
</totalField>
|
||||
<parameter>
|
||||
<name>ДатаНачала</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Дата начала</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&СтандартныйПериод.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаОкончания</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Дата окончания</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&СтандартныйПериод.ДатаОкончания</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ТипСобытия</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Тип события</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d4p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d4p1:CatalogRef.События</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СтандартныйПериод</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Стандартный период</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СвойствоСодержит</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Свойство содержит</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:string"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Количество лицензий</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ЗначениеЧисло</dcsset:field>
|
||||
</dcsset:item>
|
||||
</dcsset:selection>
|
||||
<dcsset:dataParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>ТипСобытия</dcscor:parameter>
|
||||
<dcscor:value xsi:nil="true"/>
|
||||
<dcsset:userSettingID>a977e37a-5be2-4537-8a9c-6af17efaaf09</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>СтандартныйПериод</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">Today</v8:variant>
|
||||
</dcscor:value>
|
||||
<dcsset:userSettingID>2a7a5cb6-a0d5-474d-8e9d-17c13d87bf4c</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>СвойствоСодержит</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:string">%series ->%</dcscor:value>
|
||||
<dcsset:userSettingID>3f926319-1960-4d50-831e-db2bf5aae687</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:outputParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>ТипДиаграммы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:ChartType">StackedArea</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsset:outputParameters>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemChart">
|
||||
<dcsset:point>
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Минута</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:point>
|
||||
<dcsset:series>
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Свойство</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:series>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Вариант1</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Количество лицензий по серверам</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ЗначениеЧисло</dcsset:field>
|
||||
</dcsset:item>
|
||||
</dcsset:selection>
|
||||
<dcsset:dataParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>ТипСобытия</dcscor:parameter>
|
||||
<dcscor:value xsi:nil="true"/>
|
||||
<dcsset:userSettingID>a977e37a-5be2-4537-8a9c-6af17efaaf09</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>СтандартныйПериод</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">Today</v8:variant>
|
||||
</dcscor:value>
|
||||
<dcsset:userSettingID>2a7a5cb6-a0d5-474d-8e9d-17c13d87bf4c</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>СвойствоСодержит</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:string">%series ->%</dcscor:value>
|
||||
<dcsset:userSettingID>3f926319-1960-4d50-831e-db2bf5aae687</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:outputParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>ТипДиаграммы</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:ChartType">StackedArea</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsset:outputParameters>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemChart">
|
||||
<dcsset:point>
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Минута</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:point>
|
||||
<dcsset:series>
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>Ключ</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:series>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ExternalReport xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="dc91809c-6b9f-421e-b943-1780d91778e9">
|
||||
<producedTypes>
|
||||
<objectType typeId="8661fefb-0dfa-4952-8ad5-271b59b4f2d2" valueTypeId="5875064e-2c24-4f9d-b2dd-0a37f92e56a9"/>
|
||||
</producedTypes>
|
||||
<name>КоличествоСенасовЛицензий</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Количество сенасов лицензий</value>
|
||||
</synonym>
|
||||
<containedObjects classId="e41aff26-25cf-4bb6-b6c1-3f478a75f374" objectId="b79918cd-d5cf-46f3-a5d1-67ef75c0b1e2"/>
|
||||
<defaultForm>ExternalReport.КоличествоСенасовЛицензий.Form.ФормаОтчета</defaultForm>
|
||||
<mainDataCompositionSchema>ExternalReport.КоличествоСенасовЛицензий.Template.ОсновнаяСхемаКомпоновкиДанных</mainDataCompositionSchema>
|
||||
<forms uuid="54493068-6ebe-4adf-9d39-6b58c6b60eeb">
|
||||
<name>ФормаОтчета</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма отчета</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<templates uuid="decba8ec-a2f4-4b55-8d20-99b54e94980a">
|
||||
<name>ОсновнаяСхемаКомпоновкиДанных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Основная схема компоновки данных</value>
|
||||
</synonym>
|
||||
<templateType>DataCompositionSchema</templateType>
|
||||
</templates>
|
||||
</mdclass:ExternalReport>
|
||||
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ОсновнаяКоманднаяПанель</name>
|
||||
<id>1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Основная командная панель</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ОсновнаяКоманднаяПанельРасширеннаяПодсказка</name>
|
||||
<id>2</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>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<commandSource>Form</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>КомпоновщикНастроекПользовательскиеНастройки</name>
|
||||
<id>3</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа пользовательских настроек</value>
|
||||
</title>
|
||||
<verticalStretch>false</verticalStretch>
|
||||
<extendedTooltip>
|
||||
<name>КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка</name>
|
||||
<id>4</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>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>Vertical</group>
|
||||
<representation>WeakSeparation</representation>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Результат</name>
|
||||
<id>5</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Результат</segments>
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>РезультатРасширеннаяПодсказка</name>
|
||||
<id>7</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>РезультатКонтекстноеМеню</name>
|
||||
<id>6</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SpreadsheetDocumentField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:SpreadSheetDocFieldExtInfo">
|
||||
<width>100</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>10</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<pointerType>Special</pointerType>
|
||||
<verticalScrollBar>ScrollAuto</verticalScrollBar>
|
||||
<horizontalScrollBar>ScrollAuto</horizontalScrollBar>
|
||||
<selectionShowMode>Always</selectionShowMode>
|
||||
<drawingSelectionShowMode>Auto</drawingSelectionShowMode>
|
||||
<showGroups>true</showGroups>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
</extInfo>
|
||||
</items>
|
||||
<commandBarLocation>None</commandBarLocation>
|
||||
<autoCommandBar>
|
||||
<name></name>
|
||||
<id>-1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>true</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Отчет</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>ExternalReportObject.КонтрольИзмененияПроизводительности</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>Результат</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Результат</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>SpreadsheetDocument</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<extInfo xsi:type="form:SpreadsheetDocumentExtInfo"/>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ДанныеРасшифровки</name>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:ReportFormExtInfo">
|
||||
<reportResult>Результат</reportResult>
|
||||
<detailsInformation>ДанныеРасшифровки</detailsInformation>
|
||||
<userSettingsGroup>КомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup>
|
||||
</extInfo>
|
||||
</form:Form>
|
||||
@@ -0,0 +1,80 @@
|
||||
#Область ДополнительныеОбработки
|
||||
|
||||
Функция СведенияОВнешнейОбработке() Экспорт
|
||||
|
||||
МассивНазначений = Новый Массив;
|
||||
|
||||
ПараметрыРегистрации = Новый Структура;
|
||||
ПараметрыРегистрации.Вставить("Вид", "ДополнительныйОтчет");
|
||||
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
|
||||
ПараметрыРегистрации.Вставить("Наименование", "Контроль изменения производительности");
|
||||
ПараметрыРегистрации.Вставить("Версия", "2023.02.08");
|
||||
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
|
||||
ПараметрыРегистрации.Вставить("Информация", ИнформацияПоИсторииИзменений());
|
||||
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
|
||||
ТаблицаКоманд = ПолучитьТаблицуКоманд();
|
||||
ДобавитьКоманду(ТаблицаКоманд,
|
||||
"Контроль изменения производительности",
|
||||
"КонтрольИзмененияПроизводительности",
|
||||
"ОткрытиеФормы",
|
||||
Истина,
|
||||
"",
|
||||
"ФормаОтчета"
|
||||
);
|
||||
|
||||
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
|
||||
|
||||
Возврат ПараметрыРегистрации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТаблицуКоманд()
|
||||
|
||||
Команды = Новый ТаблицаЗначений;
|
||||
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
|
||||
Команды.Колонки.Добавить("ПросмотрВсе", Новый ОписаниеТипов("Булево"));
|
||||
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
|
||||
Команды.Колонки.Добавить("ИмяФормы", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
Возврат Команды;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "", ИмяФормы="",ПросмотрВсе=Истина)
|
||||
|
||||
НоваяКоманда = ТаблицаКоманд.Добавить();
|
||||
НоваяКоманда.Представление = Представление;
|
||||
НоваяКоманда.Идентификатор = Идентификатор;
|
||||
НоваяКоманда.Использование = Использование;
|
||||
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
|
||||
НоваяКоманда.Модификатор = Модификатор;
|
||||
НоваяКоманда.ИмяФормы = ИмяФормы;
|
||||
НоваяКоманда.ПросмотрВсе = ПросмотрВсе;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИнформацияПоИсторииИзменений()
|
||||
Возврат "
|
||||
| <div style='text-indent: 25px;'>Данный отчет позволяет получить представление ио изменении производительности между двумя неделями - текущей и предыдущей</div>
|
||||
| <hr />
|
||||
| Подробную информацию смотрите по адресу интернет: <a target='_blank' href='https://github.com/Polyplastic/1c-parsing-tech-log'>https://github.com/Polyplastic/1c-parsing-tech-log</a>";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьКоманду(Знач ИдентификаторКоманды, ПараметрыКоманды=Неопределено) Экспорт
|
||||
|
||||
Если ИдентификаторКоманды="" Тогда
|
||||
|
||||
// только при наличии параметров
|
||||
Если ПараметрыКоманды=Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -0,0 +1,391 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<dataSource>
|
||||
<name>ИсточникДанных1</name>
|
||||
<dataSourceType>Local</dataSourceType>
|
||||
</dataSource>
|
||||
<dataSet xsi:type="DataSetQuery">
|
||||
<name>НаборДанных1</name>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>День</dataPath>
|
||||
<field>День</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>День</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ДеньПредНед</dataPath>
|
||||
<field>ДеньПредНед</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>День пред нед</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>РазнДлитСек</dataPath>
|
||||
<field>РазнДлитСек</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Разн длит сек</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ДлитСек</dataPath>
|
||||
<field>ДлитСек</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Длит сек</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЭкономияПревышениеСек</dataPath>
|
||||
<field>ЭкономияПревышениеСек</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Экономия превышение сек</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ДлитПредНед</dataPath>
|
||||
<field>ДлитПредНед</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Длит пред нед</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>РазнКолВо</dataPath>
|
||||
<field>РазнКолВо</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Разн кол во</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>КолВо</dataPath>
|
||||
<field>КолВо</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Кол во</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>КолВоПердНед</dataPath>
|
||||
<field>КолВоПердНед</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Кол во перд нед</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЭкономияПревышениеМин</dataPath>
|
||||
<field>ЭкономияПревышениеМин</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Экономия превышение мин</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<field xsi:type="DataSetFieldField">
|
||||
<dataPath>ЭкономияПревышениеЧас</dataPath>
|
||||
<field>ЭкономияПревышениеЧас</field>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Экономия превышение час</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
</field>
|
||||
<dataSource>ИсточникДанных1</dataSource>
|
||||
<query>ВЫБРАТЬ
|
||||
НАЧАЛОПЕРИОДА(СобытияЗамера.ДатаСобытия, ДЕНЬ) КАК День,
|
||||
СРЕДНЕЕ(СобытияЗамера.ДлительностьМкс / 1000000) КАК ДлительностьМксСред,
|
||||
КОЛИЧЕСТВО(*) КАК КолВо
|
||||
ПОМЕСТИТЬ ВтДанные
|
||||
ИЗ
|
||||
Справочник.СобытияЗамера КАК СобытияЗамера
|
||||
ГДЕ
|
||||
СобытияЗамера.Владелец = &Владелец
|
||||
И СобытияЗамера.ДатаСобытия МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаНачало, ДЕНЬ, -&СмещениеДней) И &ДатаОкончания
|
||||
|
||||
СГРУППИРОВАТЬ ПО
|
||||
НАЧАЛОПЕРИОДА(СобытияЗамера.ДатаСобытия, ДЕНЬ)
|
||||
;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ВЫБРАТЬ
|
||||
ВтДанные.День КАК День,
|
||||
ВтДанные1.День КАК ДеньПредНед,
|
||||
ВЫРАЗИТЬ(ВтДанные.ДлительностьМксСред КАК ЧИСЛО(15, 2)) КАК ДлитСек,
|
||||
ВЫРАЗИТЬ(ВтДанные1.ДлительностьМксСред КАК ЧИСЛО(15, 2)) КАК ДлитПредНед,
|
||||
ВЫРАЗИТЬ(ВтДанные.ДлительностьМксСред - ВтДанные1.ДлительностьМксСред КАК ЧИСЛО(15, 2)) КАК РазнДлитСек,
|
||||
ВтДанные.КолВо КАК КолВо,
|
||||
ВтДанные1.КолВо КАК КолВоПердНед,
|
||||
ВтДанные.КолВо - ВтДанные1.КолВо КАК РазнКолВо,
|
||||
(ВЫРАЗИТЬ(ВтДанные.ДлительностьМксСред - ВтДанные1.ДлительностьМксСред КАК ЧИСЛО(15, 2))) * (ВтДанные.КолВо - ВтДанные1.КолВо) КАК ЭкономияПревышениеСек,
|
||||
ВЫРАЗИТЬ((ВтДанные.ДлительностьМксСред - ВтДанные1.ДлительностьМксСред) / 60 * (ВтДанные.КолВо - ВтДанные1.КолВо) КАК ЧИСЛО(15, 2)) КАК ЭкономияПревышениеМин,
|
||||
ВЫРАЗИТЬ((ВтДанные.ДлительностьМксСред - ВтДанные1.ДлительностьМксСред) / 3600 * (ВтДанные.КолВо - ВтДанные1.КолВо) КАК ЧИСЛО(15, 2)) КАК ЭкономияПревышениеЧас
|
||||
ИЗ
|
||||
ВтДанные КАК ВтДанные
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ ВтДанные КАК ВтДанные1
|
||||
ПО (ВтДанные1.День = ДОБАВИТЬКДАТЕ(ВтДанные.День, ДЕНЬ, -&СмещениеДней))
|
||||
ГДЕ
|
||||
ВтДанные.День МЕЖДУ &ДатаНачало И &ДатаОкончания
|
||||
|
||||
УПОРЯДОЧИТЬ ПО
|
||||
День</query>
|
||||
</dataSet>
|
||||
<totalField>
|
||||
<dataPath>КолВо</dataPath>
|
||||
<expression>Сумма(КолВо)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>КолВоПердНед</dataPath>
|
||||
<expression>Сумма(КолВоПердНед)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>РазнДлитСек</dataPath>
|
||||
<expression>Сумма(РазнДлитСек)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>РазнКолВо</dataPath>
|
||||
<expression>Сумма(РазнКолВо)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>ЭкономияПревышениеМин</dataPath>
|
||||
<expression>Сумма(ЭкономияПревышениеМин)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>ЭкономияПревышениеСек</dataPath>
|
||||
<expression>Сумма(ЭкономияПревышениеСек)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>ЭкономияПревышениеЧас</dataPath>
|
||||
<expression>Сумма(ЭкономияПревышениеЧас)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>ДлитСек</dataPath>
|
||||
<expression>Сумма(ДлитСек)</expression>
|
||||
</totalField>
|
||||
<totalField>
|
||||
<dataPath>ДлитПредНед</dataPath>
|
||||
<expression>Сумма(ДлитПредНед)</expression>
|
||||
</totalField>
|
||||
<parameter>
|
||||
<name>Владелец</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Владелец</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type xmlns:d4p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d4p1:CatalogRef.Замеры</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:nil="true"/>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаНачало</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Дата начало</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&СтандартныйПериод.ДатаНачала</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ДатаОкончания</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Дата окончания</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:dateTime</v8:Type>
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>DateTime</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<expression>&СтандартныйПериод.ДатаОкончания</expression>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СтандартныйПериод</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Стандартный период</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
|
||||
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
|
||||
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
|
||||
</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>СмещениеДней</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Смещение дней</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>0</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</valueType>
|
||||
<value xsi:type="xs:decimal">7</value>
|
||||
<useRestriction>false</useRestriction>
|
||||
<availableValue>
|
||||
<value xsi:type="xs:decimal">7</value>
|
||||
</availableValue>
|
||||
<availableValue>
|
||||
<value xsi:type="xs:decimal">14</value>
|
||||
</availableValue>
|
||||
<availableValue>
|
||||
<value xsi:type="xs:decimal">21</value>
|
||||
</availableValue>
|
||||
<availableValue>
|
||||
<value xsi:type="xs:decimal">28</value>
|
||||
</availableValue>
|
||||
<denyIncompleteValues>true</denyIncompleteValues>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Контроль изменения</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>День</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ДеньПредНед</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ДлитСек</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ДлитПредНед</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>РазнДлитСек</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>КолВо</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>КолВоПердНед</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>РазнКолВо</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ЭкономияПревышениеЧас</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ЭкономияПревышениеМин</dcsset:field>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemField">
|
||||
<dcsset:field>ЭкономияПревышениеСек</dcsset:field>
|
||||
</dcsset:item>
|
||||
</dcsset:selection>
|
||||
<dcsset:dataParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>Владелец</dcscor:parameter>
|
||||
<dcscor:value xsi:nil="true"/>
|
||||
<dcsset:userSettingID>18fe5efd-39e9-4c5e-a823-9f3467515d0f</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>СтандартныйПериод</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8:StandardPeriod">
|
||||
<v8:variant xsi:type="v8:StandardPeriodVariant">ThisWeek</v8:variant>
|
||||
</dcscor:value>
|
||||
<dcsset:userSettingID>b6cac906-c7ae-4b53-9831-f2fca8a173a6</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>СмещениеДней</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:decimal">7</dcscor:value>
|
||||
<dcsset:userSettingID>8f5748b7-4d76-4d4b-8a26-d1cba5bc6278</dcsset:userSettingID>
|
||||
</dcscor:item>
|
||||
</dcsset:dataParameters>
|
||||
<dcsset:outputParameters>
|
||||
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
|
||||
<dcscor:parameter>МакетОформления</dcscor:parameter>
|
||||
<dcscor:value xsi:type="xs:string">Античный</dcscor:value>
|
||||
</dcscor:item>
|
||||
</dcsset:outputParameters>
|
||||
<dcsset:item xsi:type="dcsset:StructureItemGroup">
|
||||
<dcsset:groupItems>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>День</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:GroupItemField">
|
||||
<dcsset:field>ДеньПредНед</dcsset:field>
|
||||
<dcsset:groupType>Items</dcsset:groupType>
|
||||
<dcsset:periodAdditionType>None</dcsset:periodAdditionType>
|
||||
<dcsset:periodAdditionBegin xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionBegin>
|
||||
<dcsset:periodAdditionEnd xsi:type="xs:dateTime">0001-01-01T00:00:00</dcsset:periodAdditionEnd>
|
||||
</dcsset:item>
|
||||
</dcsset:groupItems>
|
||||
<dcsset:order>
|
||||
<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
|
||||
</dcsset:order>
|
||||
<dcsset:selection>
|
||||
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
|
||||
</dcsset:selection>
|
||||
</dcsset:item>
|
||||
</dcsset:settings>
|
||||
</settingsVariant>
|
||||
</DataCompositionSchema>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ExternalReport xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="fb5216ce-c552-4849-8750-806ad5f1a00e">
|
||||
<producedTypes>
|
||||
<objectType typeId="eeec8429-c12b-4b1f-a05d-83df8bb702aa" valueTypeId="131319a2-02cb-4cf1-83a0-e53e9ea77851"/>
|
||||
</producedTypes>
|
||||
<name>КонтрольИзмененияПроизводительности</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Контроль изменения производительности</value>
|
||||
</synonym>
|
||||
<containedObjects classId="e41aff26-25cf-4bb6-b6c1-3f478a75f374" objectId="fd3094ca-e1cd-4eb8-a44d-05d19dba230f"/>
|
||||
<defaultForm>ExternalReport.КонтрольИзмененияПроизводительности.Form.ФормаОтчета</defaultForm>
|
||||
<mainDataCompositionSchema>ExternalReport.КонтрольИзмененияПроизводительности.Template.ОсновнаяСхемаКомпоновкиДанных</mainDataCompositionSchema>
|
||||
<forms uuid="ea32687f-9737-4ab5-82d2-0f1fbce8c7e7">
|
||||
<name>ФормаОтчета</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма отчета</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<templates uuid="610badc4-8f37-454e-be1c-f0d825a75838">
|
||||
<name>ОсновнаяСхемаКомпоновкиДанных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Основная схема компоновки данных</value>
|
||||
</synonym>
|
||||
<templateType>DataCompositionSchema</templateType>
|
||||
</templates>
|
||||
</mdclass:ExternalReport>
|
||||
@@ -1,3 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Runtime-Version: 8.3.17
|
||||
Runtime-Version: 8.3.21
|
||||
Store-Version: 1.0.0
|
||||
|
||||
@@ -353,9 +353,14 @@
|
||||
|
||||
Если СледующаяСтрока <> Неопределено Тогда
|
||||
ПрочитаноСтрок = ПрочитаноСтрок + 1;
|
||||
|
||||
Совпадения = Анализатор.Execute(СледующаяСтрока);
|
||||
Если Совпадения.Count() = 0 Тогда
|
||||
Совпадения = Неопределено;
|
||||
Попытка
|
||||
Совпадения = Анализатор.Execute(СледующаяСтрока);
|
||||
Исключение
|
||||
ТекстОшибки = ОписаниеОшибки();
|
||||
ЗаписьЖурналаРегистрации("РазобратьФайлВСправочник",УровеньЖурналаРегистрации.Ошибка,,Замер,ТекстОшибки);
|
||||
КонецПопытки;
|
||||
Если Совпадения=Неопределено ИЛИ Совпадения.Count() = 0 Тогда
|
||||
// если следующая строка не соответствует шаблону - добавляем ее к текущей строке и пытаемся распознать объединенную часть
|
||||
СтрокаТекста = СтрокаТекста + Символы.ПС + СледующаяСтрока; //#11 сохраняем переносы строк
|
||||
Продолжить;
|
||||
@@ -371,8 +376,15 @@
|
||||
Длительность = Число(Совпадение.SubMatches.Item(3));
|
||||
ИмяСобытия = Совпадение.SubMatches.Item(4);
|
||||
УровеньСобытия = Совпадение.SubMatches.Item(5);
|
||||
Иначе
|
||||
ВызватьИсключение "Нет соответствия шаблону! " + СтрокаТекста;
|
||||
Иначе
|
||||
ТекстОшибки = "ERROR - Нет соответствия шаблону! "+Символы.ПС;
|
||||
ТекстОшибки = ТекстОшибки+" Имя файла: "+ИмяФайлаДляРазбора+Символы.ПС;
|
||||
ТекстОшибки = ТекстОшибки+" Прочитано строк: " + ПрочитаноСтрок+Символы.ПС;
|
||||
ТекстОшибки = ТекстОшибки+" Текст: " + Лев(СтрокаТекста,300)+"...";
|
||||
ЗаписьЖурналаРегистрации("РазобратьФайлВСправочник",УровеньЖурналаРегистрации.Ошибка,,Замер,ТекстОшибки);
|
||||
ОбработатьСбойныйЗамер(СтрокаТекста,СтруктураЗаписи,ПрочитаноСтрок,ПериодФайла);
|
||||
СтрокаТекста = СледующаяСтрока;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
//фильтр длительность
|
||||
@@ -440,12 +452,12 @@
|
||||
ЗначениеСвойства = ЗначениеСвойстваБезЭкранирования(Совпадение.SubMatches.Item(1));
|
||||
Если ЗаменитьДвойныеКавычкиВДвойныхКавычках Тогда
|
||||
//обратно заменяем на ОДНУ двойную кавычку
|
||||
ЗначениеСвойства = СтрЗаменить(ЗначениеСвойства, ЗаменительДвойныхКавычек, """");
|
||||
ЗначениеСвойства = СтрЗаменить(ЗначениеСвойства, ЗаменительДвойныхКавычек, """""");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗаменитьОдитнарныеДвойныеКавычкиВОдинарныхДвойныхКавычках Тогда
|
||||
//обратно заменяем на ОДНУ двойную кавычку
|
||||
ЗначениеСвойства = СтрЗаменить(ЗначениеСвойства, ЗаменительДвойныхОдинарныхКавычек, "'");
|
||||
ЗначениеСвойства = СтрЗаменить(ЗначениеСвойства, ЗаменительДвойныхОдинарныхКавычек, "''");
|
||||
КонецЕсли;
|
||||
|
||||
Отказ = Ложь;
|
||||
@@ -458,9 +470,11 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
СтруктураЗаписи.ВсеСвойства = СтрокаТекста; //сохраним в оригинале
|
||||
СтруктураЗаписи.ВсеСвойства = СтрЗаменить(СтруктураЗаписи.ВсеСвойства, ЗаменительДвойныхКавычек, """""");
|
||||
СтруктураЗаписи.ВсеСвойства = СтрЗаменить(СтруктураЗаписи.ВсеСвойства, ЗаменительДвойныхОдинарныхКавычек, "''");
|
||||
КонецЕсли;
|
||||
|
||||
Справочники.СобытияЗамера.ЗаписатьСобытие(СтруктураЗаписи);
|
||||
Справочники.СобытияЗамера.ЗаписатьСобытиеЧисло(СтруктураЗаписи);
|
||||
|
||||
СтрокаТекста = СледующаяСтрока;
|
||||
КонецЦикла;
|
||||
@@ -479,6 +493,19 @@
|
||||
Возврат 0;
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьСбойныйЗамер(СтрокаТекста,СтруктураЗаписи,ПрочитаноСтрок,ПериодФайла)
|
||||
|
||||
СтруктураЗаписи.НомерСтрокиФайла = ПрочитаноСтрок;
|
||||
СтруктураЗаписи.ТипСобытия = "";
|
||||
СтруктураЗаписи.ДатаСобытия = ПериодФайла;
|
||||
СтруктураЗаписи.ДатаСобытияМкс = 0;
|
||||
СтруктураЗаписи.УровеньСобытия = 0;
|
||||
СтруктураЗаписи.ДлительностьМкс = 0;
|
||||
СтруктураЗаписи.КлючевыеСвойства.Очистить();
|
||||
|
||||
Справочники.СобытияЗамера.ЗаписатьСобытиеЧисло(СтруктураЗаписи);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьНормализациюЗначенияСвойства(СтруктураЗаписи, Свойство, ЗначениеСвойства, Отказ)
|
||||
НастройкиНормализации = СправочникиСерверПовтИсп.РеквизитыСвойства(Свойство);
|
||||
Если НастройкиНормализации.НормализацияЗначения Тогда
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
Если ТипЗамера=ПредопределенноеЗначение("Перечисление.ТипыЗамеров.ТехнологическийЖурнал") Тогда
|
||||
Для Каждого строкарезультата Из ФайлыДляЗагрузки Цикл
|
||||
ОбновлениеДанных.РазобратьФайлВСправочник(Замер, строкарезультата.ПолноеИмя);
|
||||
Ответ = ОбновлениеДанных.РазобратьФайлВСправочник(Замер, строкарезультата.ПолноеИмя);
|
||||
КонецЦикла;
|
||||
ИначеЕсли ТипЗамера=ПредопределенноеЗначение("Перечисление.ТипыЗамеров.PerfomanceMonitor") Тогда
|
||||
Для Каждого строкарезультата Из ФайлыДляЗагрузки Цикл
|
||||
|
||||
Reference in New Issue
Block a user