Просмотр и анализ журнала регистрации (отчет на СКД)

0. Юрий Пермитин (YPermitin) 618 24.07.13 12:46 Сейчас в теме
Отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации. В отчете можно использовать возможности СКД для вывода отчета в различных вариантах (список, таблица, диаграмма). Поддерживаются все возможности журнала регистрации (фильтры, получаемые колонки, максимальное количество записей). В публикации содержатся примеры вариантов отчета.

Перейти к публикации

Комментарии
1. Яков Коган (Yashazz) 2148 25.07.13 17:39 Сейчас в теме
Надеюсь, это всё БЕЗ промежуточной выгрузки в xml, таблицу, файл и прочую ересь, т.е. напрямую? Потому как если нет, то баян.
2. Юрий Пермитин (YPermitin) 618 25.07.13 18:05 Сейчас в теме
(1) Yashazz, никаких промежуточных файлов.
3. Сергей Гуков (SirYozha) 173 26.07.13 07:51 Сейчас в теме
(2) через выгрузку в таблицу значений?
4. Юрий Пермитин (YPermitin) 618 26.07.13 08:07 Сейчас в теме
(3) SirYozha, устанавливайте фильтры, потом через метод "ВыгрузитьЖурналРегистрации()" в таб. значений, а она уже передается в компоновщик как внешний источник.

В публикации об этом сказано.
SirYozha; +1 Ответить
7. Яков Коган (Yashazz) 2148 30.07.13 12:25 Сейчас в теме
(4) Так я и думал. Извините, это фигня и лютый баян. Вот если б вы напрямую сделали, БЕЗ таблицы значений...
5. Vladimir A (wowik) 297 29.07.13 10:07 Сейчас в теме
6. Юрий Пермитин (YPermitin) 618 29.07.13 13:11 Сейчас в теме
(5) wowik, скачайте этот отчет и сравните возможности.
8. Юрий Пермитин (YPermitin) 618 30.07.13 20:22 Сейчас в теме
(6) YPermitin, просвети мастер как ты напрямую из файла ЖР считаешь данные и передашь их в СКД. Очень интересно.
11. Антон Ширяев (Антон Ширяев) 418 01.08.13 16:36 Сейчас в теме
(8) YPermitin,
Метод на самом деле есть, но далеко не факт, что более быстрый - парсить файлы журнала регистрации напрямую. Пример прямого парсинга есть в моей обработке Анализ и редактирование файлов журнала регистрации 1С 8.1/8.2 - ELF/LOG/LGF/LGP

Формат файлов я описал в статье - Формат файлов журнала регистрации 1С 8.1/8.2 - ELF/LOG/LGF/LGP
12. Юрий Пермитин (YPermitin) 618 01.08.13 18:29 Сейчас в теме
(11) Антон Ширяев, парсить файл это не проблема.

Проблема будет передать все это дабро в СКД для использования ее возможностей. Конечно можно извратнуться и использовать вызов функций общих модулей из СКД, но фактически это будет то же самое, что и использовать промежуточные таблицы.
10. Саша Безымяный (help1Ckr) 31.07.13 12:59 Сейчас в теме
Хорошая идея и демонстрация возможностей скд.
13. kiruha Д (kiruha) 363 13.08.13 09:52 Сейчас в теме
Основная проблема с ЖР не отбор(диаграммы нафиг не нужны), а в скорости
Как я понял ничего для этого не сделано ?
14. Юрий Пермитин (YPermitin) 618 13.08.13 10:35 Сейчас в теме
(13) kiruha, настраивайте состав полей, выбираемых из ЖР. Чем меньше полей, тем быстрее формирование отчета.

Журнал регистрации сам по себе не рассчитан на быстрое получение данных, чего уж тут. Если хотите быстро формировать по нему отчеты, то переносите в отдельную SQL-базу. Такие решения есть на Инфостарте.
15. kiruha Д (kiruha) 363 13.08.13 11:09 Сейчас в теме
Просто надеялся что возможно скрестить быстрое чтение логов + хорошая обработка как у Вас
16. Юрий Пермитин (YPermitin) 618 13.08.13 11:36 Сейчас в теме
(15) kiruha, если сделать хранение ЖР во внешней SQL-базе, то доработать отчет, чтобы он читал данные из этой базы, будет не сложно.
17. Марина Чирина (chmv) 19.08.13 08:47 Сейчас в теме
Но куда то ведь выгружается. И на это надо время
18. Марина Чирина (chmv) 19.08.13 08:48 Сейчас в теме
Все понятно - но зачем? Если срочно надо посмотреть что-то, что мы будем выгружать
19. Юрий Пермитин (YPermitin) 618 19.08.13 22:33 Сейчас в теме
(18) chmv, не совсем понял в чем ваш вопрос или замечание.
20. Марина Чирина (chmv) 20.08.13 14:32 Сейчас в теме
Ваша задача не решит вопросы. Т.к. требуется время на выгрузку
21. Марина Чирина (chmv) 20.08.13 14:33 Сейчас в теме
Вот если бы Вы сразу писали журнал регистрации в другую базу - тогда понятно. Пожелание
22. Юрий Пермитин (YPermitin) 618 20.08.13 14:45 Сейчас в теме
(21) chmv, это всего лишь отчет, использующий стандартные возможности платформы для чтения ЖР и использующий всю мощь СКД для гибкой настройки.

В рамках этой публикации выгрузку в отдельную SQL-базу выполнять нет смысла. Для этого обратите внимание, например, на эту публикацию: http://infostart.ru/public/185691
23. Марина Чирина (chmv) 21.08.13 08:53 Сейчас в теме
24. Maxim Kolkin (the1) 289 24.09.13 14:58 Сейчас в теме
Вот это я называю заслуженный плюс! Отличная публикация и полезный отчет! Спасибо
25. Кирилл Бондаренко (karapuzzzz) 59 21.01.14 15:57 Сейчас в теме
Использую конфигурацию Документооборт. Она строится на механизмах библиотеки стандартных подсистем. Было желание подключить эту обработку как внешнюю и использовать в рассылке отчетов. С первым вопросов не возникло. Добавил в модуль объекта функции и подключил как внешнюю. А вот с использованием в рассылке отчетов возникла проблема. В момент инициализации процессора КД выдает ошибку ("ПроцессорКД.Инициализировать(МакетКД, , , Истина);"). Я так понимаю, что сделать ничего не получиться?
26. Юрий Пермитин (YPermitin) 618 21.01.14 19:03 Сейчас в теме
(25) karapuzzzz, при разработке отчета не учитывал возможности БСП, поэтому вряд ли отчет можно приспособить как вы хотите. Нужно его допиливать.
27. Александр Удалов (higs) 31.03.14 08:11 Сейчас в теме
Спасибо! Удачно попалась на глаза. А то напрягало делать отборы в большом журнале стандартными методами самого ЖР.
28. Юрий Пермитин (YPermitin) 618 31.03.14 14:33 Сейчас в теме
30. Николай Коваленко (Voltage220) 24.02.15 15:01 Сейчас в теме
Не работают отчёты: Работа с данными, сеансы пользователей и количество транзакций в секунду. Информация в журнале регистрации имеется. Прошу разработчика помочь разобраться с этой проблемой.
31. Сергей Лесовой (Synoecium) 272 27.05.15 14:09 Сейчас в теме
Планируется ли доработка этого отчета? Возможности, которых не хватает на мой взгляд:
1. У поля "Метаданные" сделать выбор из списка, а не ввод строкой, легко можно ошибиться и тогда фильтр не будет применен к выборке.
2. Зачем сделано поле "ИмяПользователя", можно было для фильтра и отборов использовать справочник "Пользователи". Проблемы те же, сложно написать по памяти строкой пользователя
3. Разделить выполнение на 2 этапа: получение данных из ЖР и построение отчета СКД. Самая длительная операция это получение данных из ЖР, если данные получены по ним можно построить несколько отчетов (вынести доп. поля, настроить отбор), причем мгновенно.
4. Вынести выполнение отчета в фоновое задание, тогда пока строится отчет, можно будет работать спокойно с базой. Подобное сделано в типовом отчете "Калькуляция себестоимости" в УПП, например.
5. Добавить замер времени выполнения отчета.
32. Юрий Пермитин (YPermitin) 618 28.05.15 06:31 Сейчас в теме
(31) Synoecium, отличные идеи, но в ближайшем будущем не планировал дорабатывать отчет.
Особо им сейчас не пользуюсь, поэтому он и находится в таком "Застое".

Посмотрим, будет время - допилю. В принципе ничего особенного.
33. Никита Грызлов (nixel) 305 25.06.15 16:47 Сейчас в теме
(31) Synoecium, в фоновых заданиях можно выполнять только процедуры из общих серверных модулей. Здесь же просто внешний отчет.
Зачем вам замер времени? Какая практическая польза?

Остальные пункты да, полезные.
34. Тимур Муртазаев (Tilirxs) 03.11.15 17:31 Сейчас в теме
35. Евгений Чекушкин (check2) 21 01.05.16 05:06 Сейчас в теме
Коллега, при использовании групповых условий - ошибка:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{ВнешнийОтчет.ПросмотрИАнализЖурналаРегистрации.МодульОбъекта(244)}: Поле объекта не обнаружено (ЛевоеЗначение)

36. Евгений Чекушкин (check2) 21 01.05.16 05:13 Сейчас в теме
Поправьте, в функцию нужно добавить строки, выделено жирным италиком.
Функция СоздатьТаблицуИспользованныхОтборов(ЭлементыОтбора, СобытиеИндекс, УровеньИндекс, СтатусТранзакцииИндекс, ПоляЖурналаРегистрацииИндекс)
	
	ТабОтборов = Новый ТаблицаЗначений;
	ТабОтборов.Колонки.Добавить("Имя");
	ТабОтборов.Колонки.Добавить("ИндексОтбора");
	Для Каждого ЭлементОтбора Из ЭлементыОтбора Цикл
		Если ТипЗнч(ЭлементОтбора) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
			Продолжить;
		КонецЕсли;
		ИмяОтбора = Строка(ЭлементОтбора.ЛевоеЗначение);
		Если ЭлементОтбора.Использование Тогда
			Если ИмяОтбора = "Уровень" Тогда
				НовСтрТабОтборов = ТабОтборов.Добавить();
				НовСтрТабОтборов.Имя = ИмяОтбора;
				НовСтрТабОтборов.ИндексОтбора = ПолучитьИндексЭлементаОтбора(ЭлементыОтбора, ИмяОтбора);
				УровеньИндекс = НовСтрТабОтборов.ИндексОтбора;
			ИначеЕсли ИмяОтбора = "Событие" Тогда 
				НовСтрТабОтборов = ТабОтборов.Добавить();
				НовСтрТабОтборов.Имя = ИмяОтбора;
				НовСтрТабОтборов.ИндексОтбора = ПолучитьИндексЭлементаОтбора(ЭлементыОтбора, ИмяОтбора); 
				СобытиеИндекс = НовСтрТабОтборов.ИндексОтбора; 
			ИначеЕсли ИмяОтбора = "СтатусТранзакции" Тогда
				НовСтрТабОтборов = ТабОтборов.Добавить();
				НовСтрТабОтборов.Имя = ИмяОтбора;
				НовСтрТабОтборов.ИндексОтбора = ПолучитьИндексЭлементаОтбора(ЭлементыОтбора, ИмяОтбора);
				СтатусТранзакцииИндекс = НовСтрТабОтборов.ИндексОтбора;
			ИначеЕсли ИмяОтбора = "ПараметрыДанных.ПоляЖурналаРегистрации" Тогда
				НовСтрТабОтборов = ТабОтборов.Добавить();
				НовСтрТабОтборов.Имя = ИмяОтбора;
				НовСтрТабОтборов.ИндексОтбора = ПолучитьИндексЭлементаОтбора(ЭлементыОтбора, ИмяОтбора);
				ПоляЖурналаРегистрацииИндекс = НовСтрТабОтборов.ИндексОтбора;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла; 
	
	Возврат ТабОтборов;
	
КонецФункции
Показать
37. Юрий Пермитин (YPermitin) 618 01.05.16 13:36 Сейчас в теме
(36) check2, ок, постараюсь в ближайшее время обновить файл в публикации.

P.S. В ближайшие полтора - два месяца будет новая версия отчета.
Там будет возможность напрямую читать данные из файла ЖР нового формата, что должно быть быстрее + переработан интефрейс для работы с отборами.
Пока только думаю делать ли для обычного приложения новую версию или сконцентрироваться на управляемом интерфейсе.
38. Владимир клонин (Vklonin) 02.06.16 14:31 Сейчас в теме
Добрый день. При запуске в 1С ЕРП 2.0 при нажатии кнопки настройки выходит ошибка "Не передан служебный параметр "НастройкаОтчета""
Можно как то это обойти?
39. Юрий Пермитин (YPermitin) 618 07.06.16 23:04 Сейчас в теме
(38) Vklonin, добрый день!

Эту ошибку исправил.

Самая последняя версия отчета всегда здесь.
Исправленная версия сейчас там же. В разделе Issues можете посмотреть какие изменения будут внесены в отчет в будущем.
40. MariP Назарова (MariP) 16 05.09.16 12:25 Сейчас в теме
Могу ли я в этом отчете посмотреть загрузку по пользователям?
41. Юрий Пермитин (YPermitin) 618 05.09.16 13:06 Сейчас в теме
(40) MariP, если Вы имеете ввиду посмотреть сколько объектов было создано пользователями за период времени, то можно настроить отчет с такими показателями.

Последняя версия отчета доступна здесь.

Там проще с настройками работать, но он сделан только для управляемого интерфейса (на старых конфигурациях не будет работать).
42. Антон Володченко (Euroset1) 5 27.02.17 07:17 Сейчас в теме
	Если ТипЗнч(Код) = Тип("УровеньЖурналаРегистрации") Тогда
		Возврат Код;
	ИначеЕсли ТипЗнч(Код) = Тип("Строка") Тогда
		ЧислоИзСтроки = ПреобразоватьКЧислу(Код);
		Если Код = ЧислоИзСтроки Тогда
			Возврат УровеньЖурналаРегистрации.Информация;
		ИначеЕсли Код = ЧислоИзСтроки Тогда
			Возврат УровеньЖурналаРегистрации.Ошибка;
		ИначеЕсли Код = ЧислоИзСтроки Тогда
			Возврат УровеньЖурналаРегистрации.Предупреждение;
		ИначеЕсли Код = ЧислоИзСтроки Тогда
			Возврат УровеньЖурналаРегистрации.Примечание;
		Иначе
			Возврат Неопределено;
		КонецЕсли;     		
	КонецЕсли;
Показать


Че за дичь? Сравниваем два одинаковых значения до посинения и возвращаем разный результат? Это на каком языке должно отработать?
43. Юрий Пермитин (YPermitin) 618 27.02.17 10:49 Сейчас в теме
(42)
ЧислоИзСтроки = ПреобразоватьКЧислу(Код)


Это называется опечатка =)
Если будет свободное время - исправлю. Последняя версия всегда на GitHub, здесь не обновляю.

P.S. Спасибо за корректный язык предъявления ошибки ;)
44. Антон Володченко (Euroset1) 5 27.02.17 17:17 Сейчас в теме
(43)
там еще в соседней какой-то процедуре тоже самое.
45. Юрий Пермитин (YPermitin) 618 27.02.17 18:55 Сейчас в теме
46. Юрий Пермитин (YPermitin) 618 03.03.17 22:20 Сейчас в теме
(42) (42) Эти функции попросту не использовались в текущей версии отчета и перешли из устаревшей версии 1.0, которая больше не поддерживается.
Зафиксировал изменения этим коммитом: https://github.com/YPermitin/EventLogAnalyzer-for-1C-Enterprise-8.x/commit/4292a52dfb20d68b256c5638a91685bd48b0e0f5

Еще раз спасибо за комментарий. Если будут еще вопросы - всегда готов помочь.
47. Анатолий Андреев (tiger12) 3 18.04.17 16:38 Сейчас в теме
Ошибка

Не передан служебный параметр <Настройки отчета>
Прикрепленные файлы:
48. Анатолий Андреев (tiger12) 3 18.04.17 16:43 Сейчас в теме
(47) это в старой версии. скачал новую, все нормально
49. Александр Губанов (gubanoff) 44 17.08.17 14:49 Сейчас в теме
(0) Просто шикарный отчет, все работает из коробки, спасибо! Только нужно скачивать последнюю версию с гитхаба.
Оставьте свое сообщение