Кто когда работал в базе 1С и что записывал: график пользователей по журналу регистрации
База данных - Журнал регистрации
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обработка «График работы пользователей» по журналу регистрации показывает, кто сегодня был в базе, когда пришёл и когда ушёл, когда работал с документами, а когда программа просто висела открытой. Трекер не нужен, доработка конфигурации тоже: платформа и так ведёт журнал, обработка только читает его и раскладывает по людям и по времени.
Правило простое: если человек что-то записал, провёл или удалил — значит, в этот момент он работал. Журнал не пишет чтение: открытый список, отчёт или карточка в него не попадают, и человек, который весь день смотрит отчёты, на графике будет синим без зелёного. Зато журнал хранит каждое изменение данных, каждый вход и выход, и обработке этого хватает, чтобы показать, как прошёл день.
Что можно узнать
- Кто был в базе за день, неделю или любой другой период, а кто так и не зашёл.
- Когда человек пришёл и ушёл и сколько из этого времени действительно записывал данные — например, когда сотрудник говорит, что весь день вводил документы.
- Что именно он создал, изменил, провёл и удалил — с точным временем и компьютером.
- Кто работал с определённым видом документов.
- Кто оставляет программу открытой на ночь.
- В какие часы в базе почти не пишут — например, чтобы выбрать время для обновления.
- Кто заходил с разных компьютеров.
График
На главной закладке строка — человек, по горизонтали — выбранный период. Цвета:
- Синий — в базе. От входа до последнего действия: время, когда человек был в программе и между записями смотрел документы, списки, отчёты.
- Зелёный — записывал данные. Изменения подряд с перерывами не длиннее паузы с формы. По умолчанию пауза десять минут: две записи с разницей в пять минут — один зелёный отрезок, с разницей в полчаса — два отрезка и синее между ними.
- Серый — сеанс активен, без действий. Человек вошёл, после последней записи ничего не делал, а выхода из программы в журнале нет. Так выглядит 1С, оставленная открытой на ночь: вечером зелёное заканчивается, дальше до утра тянется серый хвост. Сервер тоже может какое-то время держать активным сеанс закрытой вкладки веб-клиента.
«Эта неделя»: четыре человека, у Администратора синие участки с записями и длинные серые хвосты — сеанс активен, а действий нет. Внизу — что записывали, со входами и выходами
Если навести мышь на отрезок, подсказка покажет время начала и конца, у зелёного — сколько было изменений, у синего — с какого компьютера, у серого — с какого момента человек ничего не делал.
Абдулов записал документы и вышел в 15:22, но второй его сеанс так и остался открытым — подсказка на сером: «сеанс активен, без действий» до сих пор
Обработка закрашивает фоном нерабочее время: выходные целиком, в будни — до начала и после конца рабочего дня. Границы рабочего дня стоят на форме, по умолчанию с 9 до 18, и на фоне сразу выделяются те, кто работает вечером или в субботу.
Обработка ставит внизу серыми строками «не входил» пользователей базы, которых за период нет в журнале, а флажок «Показывать невходивших» их убирает.
Что записывал
Под диаграммой обработка показывает подробности. Справа — таблица: каждая запись со временем, пользователем, действием (создал, изменил, провёл, отменил проведение, удалил), объектом и компьютером. Для сеансов веб-клиента журнал может не записать имя компьютера, тогда колонка пустая. Там же строки «вошёл» и «вышел» с тем, через что человек заходил: тонкий клиент, веб-клиент. По ним видно, откуда взялся короткий синий отрезок без записей: человек вошёл и ничего не сделал.
Слева дерево: вид объекта, под ним объекты с числом изменений. Если снять галочку, объект пропадёт из таблицы, из зелёных отрезков и из итогов. Если оставить отмеченными, например, только заказы покупателей, таблица и диаграмма покажут, кто с ними работал.
Щелчок по полосе человека на диаграмме оставляет внизу только его данные, ссылка «Показать всех» возвращает остальных. Поле «Все пользователи» вверху отбирает человека сразу везде: на диаграмме, в сводке и в ритме.
Щелчок по полосе Абдулова: внизу только он — провёл и изменил «Производство», изменил номенклатуру, вышел
Что считается работой
По умолчанию обработка считает работой записи документов, справочников, планов видов характеристик, счетов и расчёта, бизнес-процессов и задач — то, с чем работает человек. Флажок «Только документы и справочники» включает этот отбор: без него зелёным светился бы каждый открытый сеанс, потому что конфигурация и сама пишет из сеанса пользователя счётчики, замеры и настройки.
Регламентные и фоновые задания тоже пишут в журнал под именем пользователя. Флажок «Без фоновых заданий» оставляет только то, что человек делал сам, в клиенте 1С или веб-клиенте, и заодно ускоряет чтение журнала — об этом ниже.
Сводка
Сводка показывает ту же картину цифрами, по человеку на строку:
- Пришёл и Ушёл — первый вход и последнее действие за период. Если программа до сих пор открыта, рядом с уходом стоит «сеанс активен».
- В базе — сколько времени человек был в программе, без серых хвостов.
- С записями и Доля — сколько из этого времени он записывал данные.
- Изменений — сколько записей.
- Компьютеры — с каких компьютеров человек заходил; если их несколько, обработка ставит значок b88;.
- Больше всего — три вида объектов, которые человек записывал чаще всего.
Сводка за неделю: кто сколько был в базе, сколько из этого записывал, с каких компьютеров и что больше всего; невходившие внизу
Полоса слева — время в базе относительно самого долгого, зелёная часть — с записями. Обработка ставит первым того, кто записывал дольше всех. Кнопка «Печать» открывает сводку отдельным окном табличного документа, оттуда её можно распечатать или сохранить в файл.
Ритм
Дни по строкам, часы по колонкам, в клетке — сколько изменений за этот час. Чем темнее клетка, тем больше записей, нерабочее время серое. Ритм показывает, когда в базе пишут: с утра, после обеда, по вечерам или в выходные.
Ритм за неделю: двойной щелчок по клетке «Пт 02.10, 15:00» — внизу её одиннадцать записей
Двойной щелчок по клетке показывает внизу записи этого часа: кто, что и с каким объектом. Если период длиннее месяца, обработка складывает дни по дням недели — все понедельники в одну строку, все вторники в другую, — и получается обычная неделя базы.
Как обработка читает журнал
Обработка читает журнал регистрации один раз за период и только нужные события: вход, выход и изменения данных. Главное в отборе — имя приложения. Без него платформа отдала бы вместе с записями людей и все записи фоновых заданий, а обработке пришлось бы читать их только затем, чтобы выбросить. С отбором по приложению платформа отдаёт только клиентские сеансы:
Отбор = Новый Структура;
Отбор.Вставить("Событие", СтрРазделить("_$Session$_.Start,_$Session$_.Authentication,_$Session$_.Finish,"
+ "_$Data$_.New,_$Data$_.Update,_$Data$_.Delete,_$Data$_.Post,_$Data$_.Unpost", ","));
// Журнал пишет время сервера, а период задан по часам пользователя
Сдвиг = Окр((ТекущаяДатаСеанса() - ТекущаяДата()) / 60) * 60;
Отбор.Вставить("ДатаНачала", Период.ДатаНачала - Сдвиг);
Отбор.Вставить("ДатаОкончания", Период.ДатаОкончания - Сдвиг);
// Только то, где работает человек: фоновые задания отсекает сама платформа
Отбор.Вставить("ИмяПриложения", СтрРазделить("1CV8,1CV8C,WebClient,MobileClient,MobileAppClient", ","));
Выгрузка = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(Выгрузка, Отбор, "Дата,ИмяПользователя,ИмяПриложения,Компьютер,"
+ "Событие,Сеанс,Метаданные,ПредставлениеМетаданных,ПредставлениеДанных");
Дальше обработка идёт по журналу от старых записей к новым. Она связывает вход и выход одного сеанса по номеру сеанса и запоминает в каждом сеансе последнее действие: от входа до него — синее, после него и до выхода — серое. Она склеивает записи данных в зелёные отрезки по паузе с формы. Обработка держит прочитанный журнал во временном хранилище формы, поэтому смена пользователя, паузы или галочек перестраивает экран без повторного чтения.
На чём проверено
Я проверял на платформе 1С:Предприятие 8.5 (8.5.1.1522) и «Управлении нашей фирмой» 3.0 (3.0.14.143). В веб-клиенте, на серверной базе.
На 8.3 я не проверял. Может, откроется, а может, и нет.
Состав поставки
GrafikRabotyPolzovateley.epf— внешняя обработка «График работы пользователей», код открыт.
Платформа отдаёт журнал регистрации и список пользователей только пользователю с правом на них, поэтому обработку открывают под администратором. БСП обработке не нужна, в базу она ничего не пишет.
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.143
Вступайте в нашу телеграмм-группу Инфостарт




