Вы знаете, как Стаханов стал рекордсменом?
Под его логином в шахту спускались четыре бригады...
//------------------------------------------------------------------------------------------------------------------------------------
Быстрый запуск
Клиент
- В пустой каталог кладем UsersLog.exe и UsersLog.ini
- Блокнотом открываем UsersLog.ini
- Секция [CONNECT] параметр "String". Должен быть разремарен (не должно стоять точки с запятой в начале строки) только один из шаблонов и в нем должны быть указаны корректные данные.
По-умолчанию в файле настроек приведены три возможных ODBC строки подключения к базам данных. SQL, dbf и Excel. Все параметры в них указаны.
Для sql - перед использованием нужно создать базу данных и пользователя/пароль для подключения к ней. Таблицу клиент создаст сам.
Для dbf - перед использованием в строке соединения нужно вместо "Dbq=d:\" прописать корректный путь до файла базы данных. Файл клиент создаст сам.
Для excel - перед использованием в строке соединения нужно вместо "Dbq=f:\UsersLog.xls;DefaultDir=f:\" прописать имя файла и путь. Файл клиент создаст сам.
- Запускаем клиента UsersLog.exe. Должно открыться окно клиента.
- Стартуем клиента (Кнопка Start). В системном трее значок программы должен стать зеленым. Если значок в системном трее остался черным, значит что-то не так с соединением с базой данных, проверям строку ODBC соединения. Также можно включить режим логирования [MAIN]WriteLog=1, перезапустить клиента и посмотреть на ошибку в C:\Users\ИмяПользователя\AppData\Local\UsersLog\UsersLog.log.
- По-умолчанию: Клиент сканирует активное окно раз в секунду и показывает это. Один раз в 10 минут пытается скинуть эту информацию в центральную базу или запомнить локально. При этом он очищает свой кеш.
- Для масштабирования на многих пользователей делаем папку общедоступной и прописываем запуск клиента всем пользователям. При этом меняем параметр в секции[MAIN]Hide=1. А база данных в строке соединения [CONNECT]String должна быть доступна всем.
- Просматриваем остальные настройки UsersLog.ini? меняем их, если нужно. (Все настройки прокомментированы в самом файле или в описании ниже)
1С
- Поставляемый файл 1Cv8.cf содержит подсистему UsersLog, которую можно внедрить в любую конфигурацию или использовать отдельно. Для использования отдельной базы данных достаточно в пустую базу загрузить 1Cv8.cf.
- В 1С устанавливаем доступной роль логUsersLog
- Для загрузки данных из центральной базы клиента в 1С используется обработка "Загрузить users log". В ней выбирается/заполняется строка соединения с базой данных клиента, формат даты ('yyyy-MM-dd' для sql и #yyyy-MM-dd# для dbf), период загрузки.
- Обработка загружает данные, формирует и проводит документы "Действия пользователей".
- На основании оборотного регистра сведений "Анализ деятельности пользователей" строятся отчеты "Анализ деятельности пользователей"
//------------------------------------------------------------------------------------------------------------------------------------
Настройка UsersLog.ini
Булевы параметры могут принимать значения 0 или 1.
[MAIN]
- Hide=0 или Hide=1 - Скрывать ли основное окно при запуске. Если будет 1, то закрыть клиента можно будет только убив процесс
- AutoStart=1 - Автоматически начинать работу при старте клиента. Если будет включен скрытый режим, то клиент тоже начнет работу, не зависимо от этого параметра
- SysTrayIcon=1 - Показывать в системном трее иконку приложения или нет. При нескрытом режиме в контектсном меню иконки можно вызвать пункт "Show" и увидеть окно клиента. При скрытом такого пункта даже не будет. Но по цвету иконки видно, есть ли соединение с базой данных. Целеный - есть. Черный - нет. В нерабочее время клиент сам отключится от базы и иконка будет черной.
- WriteLog=0 - Писать ли собственный отладочный лог. При WriteLog=1 лог будет писаться по пути C:\Users\ИмяПользователя\AppData\Local\UsersLog\UsersLog.log. Открывается блокнотом. Лог очищается при каждом старте клиента.
- BeginTime=08:00 и EndTime=20:00 - тут можно указать рабочее время, в промежутке которого ведется логирование пользователя. Т.к. клиент ведет логирование, даже отключившись от базы данных, но учитывает только дату, имеет смысл установить.
[CONNECT]
;Строка соединения с базой данных на сервере
String=ODBC;DSN=MQIS;DRIVER={SQL Server};SERVER=ИмяСервера;DATABASE=ИмяБазыДанных;UID=ИмяПользователя;pwd=Пароль;Trusted_Connection=ИспользоватьВстроеннуюАвторизациюWindows
- По-умолчанию в файле настроек приведены три возможных ODBC строки подключения к базам данных. SQL, dbf и Excel. Все параметры в них указаны.
Для sql - перед использованием нужно создать базу данных и пользователя/пароль для подключения к ней. Таблицу клиент создаст сам.
Для dbf - перед использованием в строке соединения нужно вместо "Dbq=d:\" прописать корректный путь до файла базы данных. Файл клиент создаст сам.
Для excel - перед использованием в строке соединения нужно вместо "Dbq=f:\UsersLog.xls;DefaultDir=f:\" прописать имя файла и путь. Файл клиент создаст сам.
- TableName=UsersLog - Имя таблицы в базе данных или имя файла для файловой базы. Может изменяться только при вводе лицензии.
- ConnectAtStartup=1 - Выполнять соединение с центральной базой данных при старте или подождать указанный в настройках таймаут
- FormatDate=%Y-%m-%d - Формат даты, используемый ODBC драйвером.
[TIMER]
- Scan=1 - Интервал сканирования (сек). Один раз за это время клиент определяет активное пользовательское окно и запоминает в кеше информацию о нем.
- TimeOut=300 - Интервал простоя, после которого считается, что пользователь отошел (сек). В этом случае последние 300 секунд использования текущего окна считаются неверно истолкованными и время использования по этому окну откатывается на 300 секунд. Клиент переходит в режим ожидания. Простой определяется стандартыми API функциями GetTickCount()-GetLastInputInfo().
- Update=600 - Интервал записи данных и очистки текущего кеша (сек).
- Connect=3600 - Интервал попыток соединения с центральным сервером (сек). Если связь с центальной базой будет потеряна (Ноутбук уехал в командтровку), клиент перейдет во временный локальный режим сохранения данных. Значок в системном трее станет черный. Этот параметр отпределяет интервал, с которым клиент будет пытаться установить связь с центральной базой данных, чтобы добавить ей всю накопленную информацию.
[CLASSWINDOW]
КЛАССЫ ОКОН 1С
(Классы окон можно посмотреть, например, при помощи Spy++, входящего в поставку Microsoft Visual Studio)
Для обычных приложений клиент считывает только заголовок главного окна. Для 1С клиент углубляется в само приложение и считывает заголовки подокон, открытых в 1С (Оборотно-сальдовая ведомость, Справочник Контрагентов и т.д.). Данная секция описывает классы окон 1С:Предприятия, чтобы клиент мог по ним "спуститься" до нижнего окна.
- V8TopLevelFrame=V8TopLevelFrame|Afx:400000:0:0:0: - Имена или части имен классов окна основного приложения. Разделенные знаком "|"
- V8MDIClient=V8MDIClient|MDIClient - Имена или части имен клиентского окна рабочего стола приложения. Разделенные знаком "|"
- V8MDILocalFrame=V8MDILocalFrame|Afx:400000:b:10003:6: - Имена или части имен подчиненного локального окна. Разделенные знаком "|"
[APPLICATIONS]
- MakeUpApplicationName=0 - Делать имена приложений большими буквами при записи в базу данных. На различных компьютерах и операционных системах WinWord и WINWORD могут отличаться. Параметр используется, чтобы потом можно было сложить эти значения.
- SkipApplications = mtsc - Имена или части имен приложений, которые нужно пропускать. Разделенные знаком "|".
- SkipWindows = Секрет|Банк|клиент - Имена или части имен окон, которые нужно пропускать. Разделенные знаком "|"
//------------------------------------------------------------------------------------------------------------------------------------
Клиент UsersLog.exe
- Все настройки клиента хранятся в файле UsersLog.ini
- Файл настроек UsersLog.ini должен находиться рядом с UsersLog.exe и иметь то же название, что и клиентское приложение (в случае переименования exe, нужно переименовать и ini файл)
- Файл настроек UsersLog.ini редактируется обычным блокнотом
- Значения из файла настроек берутся клиентом при запуске и после этого не считываются
- Клиент запускается под именем пользователя, без каких-либо особенных прав
- Клиент считывает заголовки окон, имена приложений и т.д. при помощи документированных и легальных API функций
- Клиент с одним и тем же именем отслеживает себя и не может быть запущен дважды (если нужно, то придется менять имя исполняемому файлу)
- Для работы клиента на sql база данных, прописанная в настройках должна быть создана, таблицы создавать не нужно, клиент сделает это сам
- Для работы в dbf режиме у пользователя должны быть права на создание файлов в директории, указанной в строке соединения [CONNECT] String
- Текущая версия программы рассчитана на небольшую фирму и ограничена ведением журнала на 5 пользоватлелей и невозможность изменить имя таблицы
//------------------------------------------------------------------------------------------------------------------------------------
28.01.2015
Обновлен файл конфигурации:
- Обработка "Загрузка users log" может загружать данные из dbf файла штатным 1С средством XBase dBase III. Для этого в строке соединения нужно указать путь к файлу, а имя таблицы будет именем файла (.dbf дописывать в имя таблицы не нужно). Метод работает только для файлового режима запуска 1С.
- Работает выбор и сохранения вариантов отчета.
//------------------------------------------------------------------------------------------------------------------------------------
30.01.2015
Обновлено. Клиент 1.2.1.6. Косметические изменения ...
- Добавлена возможность сворачивать при старте в любом режиме.
- Исправлена ошибка с расчетом простоя "рабочего времени" после 00:00 часов
- Исправлена небольшая "утечка памяти" в режиме самологирования.
- По закрытию окна - сворачивание в трей.
- Для закрытия приложения не в скрытом режиме - отдельная кнопка.
- В демобазе заполнена общая область начальной страницы ...