История работы пользователей

Администрирование - Поиск данных

Подключаемая обработка для просмотра истории работы конкретного пользователя

Изучая записи Журнала Регистрации в поисках намеков на действия пользователей, в очередной раз, поймал себя на мысли, что хорошо было бы посмотреть не только сухие данные по изменению объектов ИБ, но и увидеть как пользователь работает с интерфейсом системы. Какими вариантами отчетов пользуется, какие разделы открывает, какие документы открывал. Часто эта информация нужна, чтобы оперативно получить ссылку на объект с которым пользователь работал и у него возникли проблемы.

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

Читая документацию 1С стало ясно, что последние 200 записей истории каждого пользователя хранятся в ИБ на сервере в таблице _usersworkhistory.

UsersWorkHistory

Документация поведала мне, что есть замечательный метод ИсторияРаботыПользователя.Получить(). Но описание к нему дало ясно понять, что метод этот очень недоработан, т.к. менеджер ИсторияРаботыПользователей позволяет очистить всю историю всех пользователей, но получить всю историю или по какому-либо отдельно взятому пользователю - невозможно. Только под Текущим!

Я подумал, неужели в 1С нет никаких методов запустить отдельно взятую процедуру под нужным мне пользователем? И оказалось, что легких путей - нет! Но есть Регламентные задания, которые умеют выполняться под любым пользователем...

Оставалось понять как решить следующие потянувшиеся проблемы:

- как в рамках обработки не редактируя конфигурацию создать нужное мне регламентное задание, которое будет выполнять процедуру из этой обработки;

- регламентные задания невозможно запустить по щелчку мыши в отличие от фоновых;

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

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

- нужно как-то ловить момент завершения регламентного задания;

Все эти проблемы были решены через трюки и уловки. Скажу только, что обработку обязательно необходимо подключать через механизм БСП: ДополнительныеОтчетыИОбработки, под пользователем с правами Администратора, обязателен Клиент-Серверный вариант базы (иначе рег.задания не работают), обработка в процессе выборки истории создает рег.задание в ИБ, пишет данные в Справочник.ДополнительныеОтчетыИОбработки, удаляет рег.задание по окончании. Никакие внешние компоненты, shell скрипты или COM объекты не используются.

Пользуйтесь на свой страх и риск, на здоровье! Ничего такого серьезного и криминального она не делает. Советы по улучшению приветствуются.

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

Наименование Файл Версия Размер
История работы пользователей:
.epf 15,74Kb
17.07.17
5
.epf 1.2 15,74Kb 5 Скачать

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение