Система контроля действий пользователя / Employee Monitoring Software (СКДП, EMS)

Публикация № 1257059

Администрирование - Администрирование СУБД

СКДП NativeAPI Компонента Бездействие GetLastInputInfo Неактивность

Подсистема для сбора информации об активности пользователей.

Тестирование производилось на типовой конфигурации ERP 2.4.7.151 (версия БСП 3.0.1.434)

 

Часть 1. Описание подсистемы.

 

Представляю вашему вниманию подсистему "СКПД", основное назначение которой - собирать время бездействия пользователей на клиентских машинах. Эта информация может быть полезна: руководителям, программистам, администраторам и аналитикам. Как именно распорядится этой информацией зависит от вас. Вот список некоторых кейсов, где эта информация может пригодится:

  • требуется дополнительный контроль над производительностью труда сотрудников
  • требуется получить список пользователей, которые систематически оставляют 1С включенным на ночь / выходные / праздники
  • необходимо провести анализ производительности труда сотрудников одной категории между теми, кто работает дистанционно и теми кто работает в офисе

Пример собранных данных за месяц работы подсистемы (ед.изм. в секундах). В базе более 1000 пользователей и с постоянным онлайном 300-400 человек:

 

 

Что можно сказать по этим данным. Пользователь начинает работать с 1С около 8 утра и заканчивает около 17:00, оставляет компьютер/терминал включенным.

Работает непосредственно с компьютером меньше половины рабочего времени. Но в целом работу делает.

На 12:00 (обед) приходится взрывной рост производительности труда.

 

А это уже данные по другому сотруднику, программисту...

 

Существует второй вариант отчета, который предназначен для вывода графика и консолидированной информации по всем пользователям:

 

Тут можно проанализировать есть ли в данных какая-либо системность. Повторяются ли наблюдаемые значения.

Анализы по моему предприятию за 2 месяца наблюдений выявили следующую закономерность.

В среднем, пользователи половину своего рабочего времени за компьютером ничего не делают. Это около 4-5 часов в день из 9 (включая обед).

 

Часть 2. Интеграция подсистемы в конфигурацию предприятия.

 

Вся подсистема выстроена над API функции Windows - GetLastInputInfo(), которая вызывается через внешнюю компоненту. Таким образом подсистема может работать только на пользовательских станциях под управлением MS Windows (тестировалось на WinXP, Windows 7, Windows 10).

Компонента устанавливается пользователю через временный каталог в неявном виде, никаких уведомлений при этом он не получает. Это автоматически ограничивает её использование в Web клиентах, где без разрешения пользователя никакие компоненты установить нельзя.

Подсистема использует функции БСП и особенности конфигурации ERP 2.4, на которой производились тесты. Не должно составить особой сложности перевести подсистему на любую другую конфигурацию.

 

Список объектов подсистемы:

Общие модули: _СКДП,_СКДПКлиент,_СКДПВызовСервера,_СКДПКлиентГлобальный,_СКДПВызовСервераПовтИсп,_СКДПКлиентСервер

Регламентные задания: _СКДППеренесЗамеров

Константы: _ПараметрыСКДП

Отчеты: _СКДПАнализРезультатовЗамеров

Обработки: _СКДП

Регистр сведений: _СКДПЗамерыВремени

 

Для работы подсистемы необходимо модифицировать следующие общие модули: ОбщегоНазначенияКлиентЛокализация, ОбщегоНазначенияЛокализация.

В них нас интересуют процедуры: ПередНачаломРаботыСистемы,ПриНачалеРаботыСистемы,ПослеНачалаРаботыСистемы

и ПриДобавленииПараметровРаботыКлиентаПриЗапуске

При сравнении и объединении конфигураций будет хорошо видно, что необходимо дополнить.

 

Часть 3. Описание принципа работы и настройки.

 

В момент входа пользователя в прикладное решение, на его компьютер со стороны сервера передается файл с внешней компонентой, который записывается во временный каталог пользователя, а затем происходит подключение компоненты на клиенте со стороны 1С. Компонента из временного каталога удаляется (при возможности). Объект компоненты продолжает свое существование в адресном пространстве приложения 1С на клиенте в переменной ПараметрыПриложения (глобальная переменная БСП в модуле управляемого приложения).

Подключается обработчик ожидания, который через каждый заданный интервал (по умолчанию 20 секунд) вызывает функцию внешней компоненты.

Данные накапливаются в течении 5 минут (по умолчанию), а затем передаются на сервер и записываются в Хранилище Системных Настроек.

Один раз в час (по умолчанию), регламентным заданием данные извлекаются из хранилища системных настроек и переносятся в Регистр Сведений.

Такой механизм сбора данных выбран не случайно. Если писать данные в регистр сведений каждые 5 минут от имени 500 пользователей, то Журнал Регистрации будет сильно разрастаться и содержать в себе очень много лишних данных о событиях записи.

 

Из-за особенностей в подходе сбора данных появилась необходимость реализовать удобное управление настройками и данными.

Настройки сохраняются в константе, а управление ими осуществляется через команду "Настройки СКДП" в подсистеме:

Флажок "Выполнять замеры" отвечает за включение/выключение подсистемы. При отключении - никаких замеров и установок компоненты не производится, регламентное задание перестает работать, а результаты собираться.

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

Настройка "Сворачивать замеры" необходима для консолидации (группировки) данных, основная цель которой - сокращение объемов данных для хранения. Без "сворачивания" замеров в реквизитах регистра сведений будет более точная информации о времени события, также будет доступна расширенная информация.

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

"Интервал сохранения результата" - насколько часто надо передавать накопленные данные на сторону сервера. Чем ниже значение, тем чаще идет вызов сервера, тем меньше данных накапливается в памяти приложения.

ВНИМАНИЕ: после изменения настроек пользователи должны перезайти в программу, т.к. настройки кэшируются.

 

Дополнительные функции управления скрыты в меню:

 

 

С помощью команды "Перенести замеры" можно не дожидаться выполнения регламентного задания, а сделать перенос моментально.

Команда "очистить временное хранилище замеров" очищает все настройки (замеры) подсистемы, которые успели накопиться за время её работы.

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

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

 

Сюда выводятся данные, которые содержатся в Системном Хранилище Значений, но которые еще не были перенесены в Регистр Сведений. Т.е. данные,

которые пока еще не попали в основной отчет по замерам. Исходя из того, что регламентное задание по переносу замеров запускается 1 раз в час, то это все те данные, которые успели накопиться за час работы за минусом последних 5 минут, которые содержаться пока еще на стороне клиента и за минусом тех 20 секунд со времени последнего полученного значения.

Тут также есть команда выполняющая технические функции:

Позволяет просматривать содержимое всего того, что накопилось в Системном Хранилище Значений:

 

Часть 4. Вместо заключения.

 

Я не даю никаких гарантий за достоверность данных. За применение этой подсистемы в реальном бизнесе и за последствия, связанные с этим (упущенная выгода, увольнения сотрудников, заражение компоненты уже на вашей стороне и т.п.).

Стоит понимать, что полученные данные с помощью этой подсистемы нельзя воспринимать как истину в последней инстанции. При принятии любого решения следует опираться на другие источники информации и факты.

Сбор данных идет только пока работает 1С, это значит, что пока приложение закрыто - системой это будет трактоваться в пользу сотрудника (отсутствующие показания воспринимаются как Активность). Таким образом, если пользователь оставляет постоянно 1С включенным, когда уходит домой, то данные необходимо анализировать только за время его рабочей смены иначе он попадает в поле необоснованного подозрения (как все программисты 1С оставляющие приложение на терминале на выходные).

Данные действительны только для 1 сеанса пользователя, а не для компьютера/сервера в целом. Таким образом, если человек раскладывает Пасьянс при свернутом приложении 1С, то для подсистемы это будет Активностью. Она видит, что происходят нажатия клавиш или дергается мышка, но с какой целью и в каком приложении конкретно - неизвестно.

Таким образом можно сделать вывод, что если в колонке результата замеров показывается 3600 секунд, то сотрудник даже мышку в руках не держал час.

Данные аккумулируются порциями каждые 20 секунд в одно общее значение. Поэтому если в результатах стоит значение 20 минут за 1 час, то это может означать, что человек либо 20 минут подряд ничего не делал на компьютере. Либо 40 минут активно работал на компьютере, но периодически отвлекался на бумаги или на совещания, но суммарно накопилось 20 минут небольшими порциями.

О том, как обрабатывается ситуация, когда открыто 10 сеансов на одном или разных компьютерах под одним пользователем. Представьте швею, которой поручили шить сразу на 3-х швейных машинках. Пока она шьет на одной, на двух остальных накапливается время бездействия. В итоге, суммарно, время бездействия с двух машинок превысит время активности на одной. Даже в том случае, если она будет попеременно работать на всех.

Задача сводится к тому, чтобы найти перекрывающиеся периоды, объединив значения на пересечениях. Таким образом подсистема считает, что машинистка работала какое-то суммарное время и неважно на каких машинках, если принять за факт то, что с физической точки зрения сотрудник не может одновременно работать сразу за несколькими аппаратами. В противном случае (когда 2 разных пользователя под одной учетной записью или, когда один левой рукой водит мышкой одного компьютера, а правой рукой мышкой другого компьютера) время будет считаться не совсем корректно, т.к. объединение периодов активности приведет к уменьшению времени бездействия. В подобных ситуациях потребуется дополнительный анализ того почему такое происходит с помощью альтернативных источников данных. Нередко пользователи могут сидеть под чужими учетными записями сотрудника, который ушел в отпуск и пытаются его подменить (с учетом его прав) всем коллективом.

Некоторые пользователи, по неизвестной причине, запускают 1С и тут же закрывают. Такие ситуации видны как время бездействия - 1 сек. По журналу регистрации это отчетливо видно.

Поддержка Linux и MacOS не планируется ввиду трудностей реализации аналогичной функции, которая бы не требовала XServer или доступа к драйверам устройств пользователем с ограниченными правами без их явного предоставления внешней компоненте.

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

Наименование Файл Версия Размер
Конфигурация с подсистемой СКДП (включает в себя .dll файлы компоненты в виде двоичного макета)

.cf 340,51Kb
29.06.20
1
.cf 340,51Kb 1 Скачать
Zip архив компоненты по технологии NativeAPI (dll файлы x86 и x64 версии библиотеки, плюс манифест). Готовая к подключению.

.zip 115,97Kb
29.06.20
1
.zip 115,97Kb 1 Скачать
Исходный код компоненты по технологии NativeAPI + собранные dll файлы

.zip 136,41Kb
29.06.20
1
.zip 136,41Kb 1 Скачать

Специальные предложения

Автор запретил комментарии

См. также

Легкое и гибкое управление списком доступных баз 1С у пользователей Промо

Стартеры 1С Сервисные утилиты Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

5 стартмани

05.12.2018    13761    13    RomikR    9    

Переход с ERP на КА 2 или УТ 11

Администрирование СУБД v8 КА2 УУ Абонемент ($m)

Как известно сейчас 1С реализует программные продукты «1С:ERP Управление предприятием 2», «1С:Комплексная автоматизация 2» и «1С:Управление торговлей 11» одним блоком. Именно благодаря этому подходу на текущий момент во всех решениях есть переход на решения более высокого уровня. Ну как говорится если можно вперед, значит можно и назад. Хотя данный подход нигде и не задокументирован.

1 стартмани

сегодня в 15:20    67    0    user923728    0    

Сравнение пометок удаления в текущей и архивной копии базы

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Эта обработка подключается к указанному архиву базы и сравнивает его с текущей конфигурацией на пометку удаления. При необходимости можно отменить привести к соответствию эти базы нажатием всего на одну кнопку.

2 стартмани

сегодня в 14:30    91    0    nurligaianov    0    

Подбор последовательности обновления

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Обработка позволяет найти самый короткий путь для обновления древнего релиза.

1 стартмани

08.07.2020    814    0    Dmitr033    4    

Получение списка необновлённых баз напрямую из SQL

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Обработка будет полезна в организациях с большим числом баз. Позволяет быстро сформировать список тех баз, у которых редактируемая конфигурация отличается от конфигурации БД.

1 стартмани

01.06.2020    645    1    cvsbook    0    

Обслуживание базы данных на PostgreSQL

Администрирование СУБД v8 Россия Абонемент ($m)

Предысторией создания данного продукта был перевод одного из своих клиентов на PostgreSQL. Серверная платформа не позволяла установить там pgAdmin. А скриптами и планировщиками пользоваться неудобно. Поэтому пришла идея реализовать обслуживание баз данных PostgreSQL средствами 1С.

1 стартмани

27.05.2020    1720    3    andrewbc    9    

Включение отладки на сервере

Администрирование СУБД v8 Абонемент ($m)

Два простых VBS скрипта для автоматического включения отладки на сервере для x32 и x64 систем.

1 стартмани

20.05.2020    889    2    Andy_NTG    0    

Оптимизация и работа с системными представлениями

Администрирование СУБД v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка сделана для понимания работы системных представлений. В принципе, вы можете написать целую систему мониторинга ресурсов. Основа для этого, как раз, и дана в этой обработке. Внешний вид особо не шлифовался. Считаю, что это не так критично. Использовал обращение только к MS SQL, но при желании, такое же можно написать и для Postgres, и для Oracle. Тестировал на платформе 1С 8.2.19.90.

1 стартмани

12.05.2020    884    1    darkdan77    1    

Ошибка "Для одного ссылочного кода существует более одной таблицы в базе данных" - как проще исправить

Администрирование СУБД Тестирование и исправление v8 v8::УФ 1cv8.cf Абонемент ($m)

При обновлении платформы 1с 8.3.6.2100 на платформу 8.3.16.224 под УПП 1.3.138.1 возникла ошибка "Для одного ссылочного кода существует более одной таблицы в базе данных...". В интернете много есть информации по этой проблеме, в частности в публикации https://infostart.ru/public/1126277/ приведено ее решение, но оно довольно громоздкое. Есть вариант более простой

2 стартмани

28.04.2020    1743    2    Ион    2    

Проверка подписки ИТС

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Проверка подписки ИТС по регистрационным номерам, логинам. Практическое применение API по интеграции с Порталом 1С:ИТС.

1 стартмани

17.03.2020    1740    6    kostik_love    0    

История работы пользователей (отчет на СКД)

Администрирование СУБД v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Отчет для просмотра истории работы пользователей (СКД, просмотр для любого пользователя).

2 стартмани

14.03.2020    4467    50    YPermitin    26    

Ограничение доступа в базу по количеству сеансов или дате

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Расширение позволяет ограничить доступ в базу по количеству активных сеансов или дате. Не затрагивает объекты типовой конфигурации. Сделано и протестировано на БП 8.3 версий 3.0.65.84 и выше. Требует платформу не ниже 8.3.16. Представлены версии расширения для конфигураций с режимом совместимости 8.3.12, 8.3.14 и 8.3.15.

2 стартмани

12.03.2020    1357    1    folo    0    

Очистка хранилища настроек пользователей (обычные и управляемые формы)

Администрирование СУБД v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка очищает хранилище настроек пользователей.

1 стартмани

10.02.2020    1694    15    Denr83    0    

Изменение имени домена для выбранных пользователей информационной базы

Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Предлагаю Вашему вниманию обработку используемую в реальном производственном процессе на нашем предприятии. Задача переименования доменов возникла при реорганизации предприятия, имена некоторых доменов для удобства решено было изменить, но при таком количестве пользователей изменение имен доменов штатными средствами выглядело нереально. Было решено создать обработку для изменения имен доменов Информационной базы. Обработка предназначена для работы в клиент-серверных базах и тестировалась на платформе 8.3.14.1854. Работает в режиме внешней обработки.

1 стартмани

30.01.2020    1453    0    bryantsev.yury    0    

Транслятор запросов 1С в SQL

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Инструмент для трансляции запросов платформы 1С в SQL, а также их диагностики.

10 стартмани

07.01.2020    10445    77    YPermitin    89    

Проверка SQL базы данных 1С 8.1, 8.2, 8.3

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Обработка предназначена для проверки SQL базы данных 1С. Используется только для клиент-серверной версии 1С, у которой база данных хранится под управлением MS SQL Server. Конфигурация 1С значения не имеет.

2 стартмани

25.12.2019    6071    39    dgonson    19    

На время отключаем контроль остатков и проверку документов

Администрирование СУБД v8 ERP2 УТ11 КА2 Абонемент ($m)

На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением.

1 стартмани

24.12.2019    7167    9    sapervodichka    2    

Тест серверного оборудования на допустимое количество пользователей: как это использовать?

Администрирование СУБД Нагрузочное тестирование Сервера v8 1cv8.cf Абонемент ($m)

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

3 стартмани

17.12.2019    9922    10    sapervodichka    3    

Удаление спящих сеансов

Администрирование СУБД v8 УПП1 Абонемент ($m)

Удаление сеансов, имеющих статус "спящий".

1 стартмани

16.12.2019    3810    10    &-rey    7    

Очистка кэша нескольких баз прямо из 1С

Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для очистка кэша нескольких баз непосредственно из 1С (только в обычном режиме).

1 стартмани

04.12.2019    3156    16    r.moschenskiy    2    

Работа с базами данных 1С в SQL Server Management Studio (Расширение для SSMS)

Администрирование СУБД Производительность и оптимизация (HighLoad) Администрирование данных 1С Структура метаданных v8 Абонемент ($m)

Расширение позволяет просматривать связи объектов метаданных и таблиц БД, сгруппированные данные (по группам метаданных) об используемом дисковом пространстве и выполнять трансляцию SQL текста запроса в термины 1С. И бонусом - при наведении курсора мыши на таблицу или поле показывает назначение объекта в терминах 1С.

10 стартмани

27.11.2019    10135    36    akpaevj    46    

Запуск внешних обработок по списку пользователей

Роли и права Администрирование СУБД v8 БП3.0 Абонемент ($m)

Создает командный файл для запуска пользователей по списку.

1 стартмани

07.11.2019    3941    2    Mari_Kuznetzova    0    

Монитор показателей и лицензий с графиками

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Онлайн диаграмма лицензий 1С и показателей сервера 1С в различных измерениях и отборах.

1 стартмани

07.10.2019    11801    131    sapervodichka    17    

CF & SQL : конструктор прямых запросов к БД 1С

Инструментарий разработчика Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Программа для чтения и анализа внутренней структуры данных 1С V8.х, Содержит конструктор прямых SQL запросов, позволяет обрабатывать и редактировать тексты SQL-запросов, выполнять прямые запросы к базе данных 1С и обрабатывать полученные результаты.

1 стартмани

02.10.2019    15901    186    dmitrydemenew    44    

Закрытие незавершенных сеансов

Сервисные утилиты Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Как удалять потерянные сеансы пользователей, чтобы они не мешали работе. Обработка протестирована на платформе версии 8.3.13.1644.

1 стартмани

20.09.2019    10319    47    AnatolPopov    8    

Создание пользователей системы взаимодействия

Обработка справочников Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Простенькая команда по созданию пользователей в системе взаимодействия на базе всех пользователей информационной базы 1С.

1 стартмани

12.12.2018    3376    8    da_1c    0    

Размер таблицы SQL базы 1С

Статистика базы данных Сервисные утилиты Администрирование СУБД Структура метаданных v8 1cv8.cf Россия Абонемент ($m)

Обработка для анализа структуры БД в виде таблиц SQL, их объемов и объемов индексов таблиц. Писалась для анализа в целях оптимизации работоспособности и быстродействия 1С. Будет полезна администраторам и разработчикам, в целях поиска нужной таблицы в SQL по метаданным конфигурации. Две обработки: 1. "Размер таблицы SQL базы 1С не УФ" - не управляемые формы - работает на любой конфигурации 1С 8.2/8.3 (тестировалась УПП 10.3, КА 1.1, ЗУП 2.5 и т.д.) 2. "Размер таблицы SQL базы 1С УФ" - под управляемые формы - работает под любыми конфигурациями 1С 8.3 (тестировалась УТ 11)

1 стартмани

11.04.2017    18090    105    Mouros    5    

Анализ настроек кластеров 1С (+ менеджер файлов на сервере)

Сервисные утилиты Администрирование СУБД v8::УФ 1cv8.cf Абонемент ($m)

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

10 стартмани

26.12.2015    25436    59    zenechka    33    

Скрипт для выгрузки информационной базы

Архивирование (backup) Скрипты автоматизации Администрирование СУБД v8 Россия Абонемент ($m)

Скрипт позволяет произвести выгрузку информационной базы 1С клиент-серверного варианта.

1 стартмани

06.11.2015    28710    11    bashirov.rs    16