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

Администрирование - Журнал регистрации

Журнал регистрации СКД 1С 8

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

Журнал регистрации

Журнал регистрации платформы 1С:Предприятие содержит записи о действиях пользователей в информационных базах. Прочитать общие сведения о данном механизме Вы можете на официальном сайте по ссылке.

 Просмотр журнала регистрации встроенными средствами платформы

Работать с журналом регистрации можно либо с помощью встроенный в платформу средства, либо программно. Выше представлен скриншот встроенной в платформу обработки "Журнал регистрации", которая позволяет просматривать журнал в виде списка. Несмотря на возможность установки отборов на выводимые в список события, просмотривать журнал в таком виде зачастую не очень удобно. Куда удобнее было бы просмотривать журнал с группировками, собственными полями или даже в виде диаграммы.

 Форма отчета по журналу регистрации (управляемая)

Как раз для таких целей и был создан представленный отчет. Используя его можно просматривать журнал регистрации в любом виде. Ограничения находятся лишь в рамках системы компоновки данных (СКД).

Настройки отчета

Настройки фильтров, состава полей и максимального количества записей

Отчет поддерживает настройку всех фильтров журнала регистраци. Часть из них реализована в виде параметров, другая в качестве отборов. Также имеется возможность изменения состава получаемых полей.

 Основные настройки отчета по журналу регистрации (фильтры, состав полей, макс. количество записей)

Поля установки фильтров для журнала регистрации имеют названия, аналогичные выводимым полям в список событий журнала. Отбор по параметру "Поля журнала регистрации" устанавливает состав полей, которые будут получены из журнала. Отключение из этого состава полей, не используемых в отчете, позволит уменьшить время формирования отчета.

Те настройки, которые реализованы с помощью отборов, позволяют установить значения фильтров на такие поля как "Уровень", "Событие" и "Статус транзакции" с учетом всех их возможных значений. В параметры в основном вынесены настройки, значения которых заполняется произвольной строкой. Подробнее узнать о возможных значениях этих параметров Вы можете узнать в синтаксис-помощнике в информации к методу "ВыгрузитьЖурналРегистрации()".

Единственное отличие в настройках - это параметр "Метаданные". Поскольку в параметр нельзя выбрать непосредственно элемент с типом "ОбъектМетаданных", то значение отбора вводится строкой. Например, отбор по метаданным справочника "Номенклатура" будет иметь следующее стрковое значение: "Справочники.Номенклатура".

Фильтр по метаданным отчета

Если есть настройка фильтра журнала регистрации есть как в параметрах отчета, так и и в отборах, то приоритет нужно отдавать параметру, так как в подобных случаях для установки значения фильтра в методе "ВыгрузитьЖурналРегистрации()" будет использованы именно значения параметров.

Другие настройки компоновщика

Никаких ограничений на использование настроек СКД нет. В полной мере можно использовать настройку структуры отчета, условное оформление, пользовательские поля и прочие настройки. Так, например, для подсчета количества событий в отчете было добавлено пользовательское поле выражения "Количество".

Пользовательское поле

В отчете уже добавлены несколько пользовательских полей, которые могут пригодиться для создания собственных полей или добавления их в Ваш вариант отчета.

Таким образом, используя возможности СКД можно настроить отчет с достаточно сложной структурой вывода и разнообразными настройками, оформлением.

Варианты отчета

В отчете, прикрепленным к публикации, уже созданы несколько вариантов отчета. На следующих скриншотах представлены некоторые из них.

Использование метаданных      Количество транзакций в секунду

Ошибки выполнения     События журнала регистрации

На скриншоте в начале статьи был представлен отчет в виде диаграммы "Активность пользователей (общая).

Послесловие

Модуль объекта отчета открыт для просмотра/редактирования. Возможно кому-нибудь пригодиться для создания собственных разработок. В той части кода, где идет получение записей журнала регистрации с помощью метода "ВыгрузитьЖурналРегистрации()" можно произвести замену алгоритма получения записей журнала на свой собственный, например для получения данных из журнала, хранящегося в отдельной SQL-базе.

Сам использую этот отчет для анализа ошибок в конфигурации, ошибок прав доступа, действий пользователей, приводящих к ошибкам в учете и прочее.

Все замечания / предложения оставляйте в комментариях.

76

Скачать файлы

Наименование Файл Версия Размер
Просмотр и анализ журнала регистрации
.erf 114,78Kb
27.09.18
803
.erf 2.0.1 114,78Kb 803 Скачать

См. также

Специальные предложения

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

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

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

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

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

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

Посмотрим, будет время - допилю. В принципе ничего особенного.
33. nixel 537 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 695 01.05.16 13:36 Сейчас в теме
(36) check2, ок, постараюсь в ближайшее время обновить файл в публикации.

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

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

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

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

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


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


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

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

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

Не передан служебный параметр <Настройки отчета>
Прикрепленные файлы:
48. tiger12 4 18.04.17 16:43 Сейчас в теме
(47) это в старой версии. скачал новую, все нормально
49. gubanoff 45 17.08.17 14:49 Сейчас в теме
(0) Просто шикарный отчет, все работает из коробки, спасибо! Только нужно скачивать последнюю версию с гитхаба.
51. kwazi 253 18.04.18 14:01 Сейчас в теме
на GIT отчет функциональнее.
Для себя переделал вариант с инфостарта. Добавил возможность сохранять варианты отчетов и включать их в рассылки.
Это как раз те функции работы с журналом регистрации которых нет в БСП. Без них этот отчет не имеет смысла - лучше использовать обработку Журнал регистрации из БСП. А так - это просто пример использования СКД. Ну может еще возможность строить графики имеет смысл. Плюсую. Положил себе в копилку.
Оставьте свое сообщение