bdd2

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

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

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

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

 

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

 

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

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

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

 

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

 

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

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

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

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

См. также

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

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

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

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

спасибо, а можно как-то обновлять при переходе с закладки "Настройки" на "Лог"?
19. Алексей Плутенко (Noy) 1053 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) 1053 14.09.11 13:16 Сейчас в теме
(21) для изменения 3-го параметра нужно заново перечитывать файл журнала , что равнозначно открытию обработки заново.
В принципе можно сделать, но большого смысла нет
23. Алексей Плутенко (Noy) 1053 14.09.11 13:18 Сейчас в теме
(22)+ к тому же в коде стоит ограничитель на чтение не более 3-х последних мегабайт журнала.
24. Александр (TrinitronHome) 14.09.11 13:24 Сейчас в теме
понятно, ладно буду перезапускать
большое спасибо за оперативные ответы
25. Алексей Плутенко (Noy) 1053 14.09.11 13:29 Сейчас в теме
(24) Данная обработка позиционируется как "монитор" - для отслеживания текущих событий, а не анализа архивных.
У меня есть еще одна подобная обработка 7.7 Кто изменил документ????. Возможно она больше подойдет для твоих целей.
26. Александр (TrinitronHome) 14.09.11 14:22 Сейчас в теме
Согласен, меня этот вариант устраивает вполне
27. Сергей (Che) Коцюра (CheBurator) 3366 15.09.11 18:04 Сейчас в теме
Правильная обработка!
надо бы прикрутить ее тоже к роботу по действиям в заднем числе - изредка делается у мен ятакое...
28. Сергей (Che) Коцюра (CheBurator) 3366 15.09.11 18:06 Сейчас в теме
(25) а в "кто изменил документ" - = Обработка имеет ограничение на количество запусков.
а полнофункциональную..?
29. Алексей Плутенко (Noy) 1053 15.09.11 18:24 Сейчас в теме
(28) В приоткрытии что-то типа
демо=1;
нужно поправить. Или могу скинуть на мыло.
ЗЫ там код с этой обработкой перекликается сильно (парсинг событий и тп)
30. Иван Иванов (Famza) 80 15.09.11 23:45 Сейчас в теме
А если журнал регистрации периодически архивировался - данные будут все или только из текущего файла?
31. Алексей Плутенко (Noy) 1053 16.09.11 10:06 Сейчас в теме
(30) Только из текущего файла.
Повторюсь: эта обработка для мониторинга, а не анализа.
32. Иван Иванов (Famza) 80 16.09.11 12:51 Сейчас в теме
(31) Это не критично. Для работы с историей я создал папку, куда она копируется, и использую копию истории в отчетах - перестраховщик, однако. :-)
33. Алексей Плутенко (Noy) 1053 16.09.11 13:08 Сейчас в теме
(32) хм... перестраховщик говориш?
тогда эта метода как раз для тебя - сделай робота на основании этой обработки, который будет перекидывать записи в dbf, а еще лучше в sql. Получишь полноценную БД (можно и индексы прикрутить).
Теоретически это можно переписать на скрипт и закинуть в планировщик - будет работать и без запущеной 1С-ки
34. Иван Иванов (Famza) 80 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) 34 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) 1053 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) 1053 13.02.12 11:25 Сейчас в теме
(49) Используй второй вариант. Можешь интервал обновления увеличить
51. sanches (sanches) 227 09.02.13 21:28 Сейчас в теме
Спасибо, понадобилось формировать отчет о том, кто и когда входил-выходил из базы. Думаю использовать данную обработку за основу.