gifts2017

"Живой" монитор журнала регистрации

Опубликовал Алексей Плутенко (Noy) в раздел Администрирование - Журнал регистрации

Мониторим в онлайне действия пользователей ИБ (без внешних компонент)

Обработка является аналогом штатного функционала 1С (Меню Сервис - Монитор пользователей - Журнал регистрации). Можно в режиме онлайн смотреть кто какой документ проводит/создает и тп.

 

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

 

Ну теперь собственно объяснение на логичный вопрос "зачем нам этот велосипед"...

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

"Фишка" (для кого это давно известный метод - проходим мимо, не портим настроение) заключается в том, что при последовательном чтении mlg файла, после того как был достигнут конец файла - не обнулять "курсор" (не знаю как правильно назвать) с помощью которого идет чтение, а просто периодически мониторить размер файла и при изменении "дочитывать" файл.

 

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

 

P.S. При каждом запуске обработки происходит открытие журнала регистрации, что может потребовать определенного времени (особенно на сетевых базах). Сама работа обработки происходит без каких-либо серьезных задержек.

P.S. P.S. Если вам, как пользователю 1С, запрещен доступ к монитору/журналу регистрации, то данная обработка об этом не знает... ;)

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

Наименование Файл Версия Размер
mlg_monitor.ert 213
.ert 40,50Kb
19.02.13
213
.ert 40,50Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Рытов (Арчибальд) 14.09.11 07:50
Приспичило же публиковаться в эпоху перемен :D
2. Александр Рытов (Арчибальд) 14.09.11 08:25
Запустил в конфе, где ТекПользователь - глобальная переменная.
Получил удовольствие :o :D
3. Сергей Рудаков (fishca) 14.09.11 08:51
(0) на файле весом в 500 МБ не умирает?
4. Алексей Плутенко (Noy) 14.09.11 09:11
(1) это намеренно ;)
(2) сорри. доберусь до работы - сделаю обфускацию переменных
(3) только задерживает дыхание перед запуском
5. Александр Рытов (Арчибальд) 14.09.11 09:12
(4) Мне-то особенно не надо, разберусь ;)
6. Сергей Рудаков (fishca) 14.09.11 09:26
(4) Просто была однажды попытка чтения файлика такого размера средствами 1С, дыхание задерживалось настолько что дождаться было невозможно. Пришлось анализировать во внешнем самописном приложении.
7. Алексей Плутенко (Noy) 14.09.11 09:40
(6) используется FileSystemObject. Сам использую на файле в 150МБ, тестрировал также на 300 МБ.
Но это все в терминале. Как оно будет по сети - надо пробовать.
8. Алексей Плутенко (Noy) 14.09.11 10:00
(7)+ только что попробовал открыть по сети :(

вообщем запуск очень медленно (каждые 50мб примерно по минуте). сама работа обработки - все ок.
тоесть по сети с большими размерами ЖР в интерактивном режиме использовать врядли получится, а вот для робота можно юзать.
9. Сергей Рудаков (fishca) 14.09.11 10:03
(8) ну это как бы закономерно, по сети лучше не пытаться этого делать :)
10. Александр Рытов (Арчибальд) 14.09.11 10:18
(8) Мне как раз для наблюдения за роботами, наверное, пригодится. Только придется выкинуть все, касающееся пользователей: у меня вместо пользователя 1С используется "ТипРобота" из внутреннего справочника.
11. Александр (TrinitronHome) 14.09.11 10:30
меняю количество дней истории с исходного 0 на 10, никаких изменений, и не запоминается это значение
12. Александр Рытов (Арчибальд) 14.09.11 10:34
(11) Есть там такая штука... Алексей, исправь три строки на четыре ;)
13. Лаура Лаура (Лаура) 14.09.11 10:46
Обработка работает. По сравнению со стандартным Монитором пользователей: удобно что не надо открывать и переключаться на другое окно, форма представления информации компактнее. Я пользователь 1С (не программист) и у меня есть вопрос - воззможно ли технически в эту обработку включить отображение действий пользователей по использованию отчетов и по открытию журналов документов?
14. Алексей Плутенко (Noy) 14.09.11 10:53
15. Алексей Плутенко (Noy) 14.09.11 10:57
(13) Можно.
1-ый вариант - дописать во все отчеты запись в жР
2-ой вариант - использовать 1с++ и дописать только одну процедурку в ГМ

в любом случае нужен программист
16. Александр (TrinitronHome) 14.09.11 11:25
исправил в строке 281 3 на 4-ку, запоминать стало, но не обновляет логи для нового периода
17. Алексей Плутенко (Noy) 14.09.11 11:51
(16) обновление идет сверху вниз (сверху свежие события). В настройках должен быть период обновления >0. После изменения периода обновления требуется перезапуск обработки.
18. Александр (TrinitronHome) 14.09.11 12:31
Noy пишет:

(16) обновление идет сверху вниз (сверху свежие события). В настройках должен быть период обновления >0. После изменения периода обновления требуется перезапуск обработки.

спасибо, а можно как-то обновлять при переходе с закладки "Настройки" на "Лог"?
19. Алексей Плутенко (Noy) 14.09.11 12:45
(18) после строки 319 добавь
		Если ТекСтрока=1 Тогда
			Форма.ОбработкаОжидания("проверка",ТЗНастройки.ПолучитьЗначение(1,"Значение"));
		КонецЕсли;

будет менятся не при смене закладок, а непосредственно при изменении параметра
20. Александр (TrinitronHome) 14.09.11 12:52
Noy пишет:

(18) после строки 319 добавь


спасибо, так будет значительно удобней
21. Александр (TrinitronHome) 14.09.11 12:56
почему-то не срабатывает
видимо, мы не поняли друг друга, т.к. я про 3-ий показатель говорю
22. Алексей Плутенко (Noy) 14.09.11 13:16
(21) для изменения 3-го параметра нужно заново перечитывать файл журнала , что равнозначно открытию обработки заново.
В принципе можно сделать, но большого смысла нет
23. Алексей Плутенко (Noy) 14.09.11 13:18
(22)+ к тому же в коде стоит ограничитель на чтение не более 3-х последних мегабайт журнала.
24. Александр (TrinitronHome) 14.09.11 13:24
понятно, ладно буду перезапускать
большое спасибо за оперативные ответы
25. Алексей Плутенко (Noy) 14.09.11 13:29
(24) Данная обработка позиционируется как "монитор" - для отслеживания текущих событий, а не анализа архивных.
У меня есть еще одна подобная обработка 7.7 Кто изменил документ????. Возможно она больше подойдет для твоих целей.
26. Александр (TrinitronHome) 14.09.11 14:22
Согласен, меня этот вариант устраивает вполне
27. Сергей (Che) Коцюра (CheBurator) 15.09.11 18:04
Правильная обработка!
надо бы прикрутить ее тоже к роботу по действиям в заднем числе - изредка делается у мен ятакое...
28. Сергей (Che) Коцюра (CheBurator) 15.09.11 18:06
(25) а в "кто изменил документ" - = Обработка имеет ограничение на количество запусков.
а полнофункциональную..?
29. Алексей Плутенко (Noy) 15.09.11 18:24
(28) В приоткрытии что-то типа
демо=1;
нужно поправить. Или могу скинуть на мыло.
ЗЫ там код с этой обработкой перекликается сильно (парсинг событий и тп)
30. Иван Иванов (Famza) 15.09.11 23:45
А если журнал регистрации периодически архивировался - данные будут все или только из текущего файла?
31. Алексей Плутенко (Noy) 16.09.11 10:06
(30) Только из текущего файла.
Повторюсь: эта обработка для мониторинга, а не анализа.
32. Иван Иванов (Famza) 16.09.11 12:51
(31) Это не критично. Для работы с историей я создал папку, куда она копируется, и использую копию истории в отчетах - перестраховщик, однако. :-)
33. Алексей Плутенко (Noy) 16.09.11 13:08
(32) хм... перестраховщик говориш?
тогда эта метода как раз для тебя - сделай робота на основании этой обработки, который будет перекидывать записи в dbf, а еще лучше в sql. Получишь полноценную БД (можно и индексы прикрутить).
Теоретически это можно переписать на скрипт и закинуть в планировщик - будет работать и без запущеной 1С-ки
34. Иван Иванов (Famza) 16.09.11 13:54
(33) Согласен. 1С надо было историю отдельной таблицей делать - тогда б проще все было. А то частенько возникает необходимость смотреть именно прошлый года, ну а работе монитора говорить нечего...
35. Vladimir Ivanovitch (tmm) 19.09.11 14:25
36. Vladimir Ivanovitch (tmm) 19.09.11 14:27
37. Anatoliy (NOVOPRO) 21.09.11 05:07
38. qwerty qwerty (login95) 27.09.11 21:37
39. Сергей Мурзинов (Sergey_Murzinov) 28.09.11 17:17
Очень полезная обработка
40. Сергей Демичев (sergdem486) 01.10.11 11:25
Работает! Но по сети очень медленно.
41. Алексей Иванов (stardog) 04.10.11 01:32
Полезная штучка. Спасибо.
42. Максим Семенов (maks5115) 05.10.11 10:18
отличное дополнение спасибо!!!
43. Виктор Щербаков (Victorman) 07.10.11 07:05
44. Виталий Журавлев (dmd) 11.10.11 20:27
Обязательно. изучу как дойдут руки. Идея понравилась, реализацию буду смотреть позже
45. aragor (aragor) 12.10.11 13:47
Немного не в то время, а так очень хорошо.
46. Фёдор Александрович (CMEPTHiK) 13.10.11 22:55
А журнал регистрации ведь можно изменять любому??? это же просто лог? Или я не так понимаю?
47. Алексей Плутенко (Noy) 14.10.11 00:21
(46) Да, можно. Но только после того как все выйдут из базы.
48. alanvbg@yandex.ru VBG (alanvbg) 19.10.11 18:36
Раньше стояла схожая задача.
Поздно увидел.
49. Лаура Лаура (Лаура) 13.02.12 08:16
Небольшой вопрос-уточнение. А эту обработку использовать "правильнее" как: запустил-получил данные-закрыл или запустил-и можно держать активной на экране в течение рабочего дня. При втором варианте я столкнулась с тем, что комп зависает, хотя и размер базы небольшой и количество сетевых пользователей тоже маленькое.
50. Алексей Плутенко (Noy) 13.02.12 11:25
(49) Используй второй вариант. Можешь интервал обновления увеличить
51. sanches (sanches) 09.02.13 21:28
Спасибо, понадобилось формировать отчет о том, кто и когда входил-выходил из базы. Думаю использовать данную обработку за основу.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа