Когда-то разработал отчёт по количеству пользователей в базе. Сырой был, но работал. Потом увидел публикацию //infostart.ru/public/534462/ и вспомнил о тех сложностях, которые у меня возникли. Принцип отчтёта аналогичен описанному ("на каждый вход +1, на каждый выход -1"), однако при таком накопительном подходе за большие периоды накапливается большая ошибка - из-за сеансов, которые не были корректно завершены. Также применялся метод "обнуления в начале дня", однако ясно, что такой подход не даёт правильных значений -- т.к. при обычной пятидневке некоторые пользователи могут не закрывать окно 1С по несколько дней.
Решил всё же допилить отчёт, чтобы данные были корректны независимо от расчётного периода. Выкладываю доработанный вариант, все ошибки устранены.
Для реализации этого алгоритма задаётся время (в часах), в течение которого незавершённые сеансы считаются активными. Значение это влияет только на сеансы, по которым не был зафиксирован штатный выход. То есть вполне допускается наличие непрерывных многодневных сессий с последующим корректным выходом. Путём последовательного перебора таблицы, полученной из ЖР, по каждой его строке накапливается список текущих сессий, в который попадают и те сессии, по которым не зафиксирован выход. Таким образом в конце накапливается большая погрешность, и для её устранения проводится второй цикл по таблице, но уже в обратную сторону. При этом (сообразно с заданным временем) из текущих сессий удаляются те, которые считаются завершёнными по таймауту. Также составляется внятный текстовый список текущих пользователей для вывода в отчёт. В начало этого списка помещается число пользоваталей (в формате 3.0 с лидирующими нулями), что позволило в итогах по периоду брать Максимум() от строки.
После реализации отчёта в нём на базе основного набора данных разработаны дополнительные настройки:
- "Только диаграмма без списка" (работает быстрее за счёт того что не нужно собирать список), с периодичностью день и час,
- "Кто и когда запускал конфигуратор",
- "С каких компьютеров пользователи осуществляют вход в базу"
В качестве плана развития -- доработать отчёт для получения "топ-10 самых продолжительных непрерывных сессий", "среднее время сессии по пользователям" и т.д.
Спасибо Kaavan и его публикации //infostart.ru/public/534462/ за стимул к действию.
UPD 24.08.2016
- добавлена диаграмма Ганта работы пользователей. Графически видно кто когда запускал 1С, кто отключается на ночь, кто нет... Кто только пробует заходить в 1С, а кто сидит там постоянно.