gifts2017

Определение простоя в работе пользователя.

Опубликовал Андрей Скляров (coder1cv8) в раздел Администрирование - Журнал регистрации

Данная разработка предназначена для отслеживания простоя (т.е. отсутствия движений мышью/нажатий клавиатуры) работы пользователя в течение определенного промежутка времени и выполнения одного из следующих действий:
- Блокировка сеанса 1С;
- Блокировка сессии Windows;
- Завершение работы 1С;
- Завершение работы Windows.

Разработка оформлена в виде подсистемы, которая легко может быть интегрирована в любую типовую (или свою) конфигурацию.

Общая структура подсистемы:
1. Константы:
1.1. Период опроса простоя – периодичность, с которой проверяется текущее время простоя системы (в секундах).
1.2. Время простоя – максимальное время НЕ активности пользователя, после которого система считается находящейся в состоянии простоя (в секундах).
1.3. Действие при простое (одно из возможных действий, перечисление).
2. Роль «Проверять простой сеанса». Установите эту роль для пользователей, у которых должна выполняться проверка простоя работы. Предназначена для отделения обычных пользователей от тех, для кого проверка не выполняется (например, фоновые задания, внешние подключения и т.д.).
3. Обработка «Блокиратор». Форма служит для редактирования констант (недоступно пользователю, у которого установлена роль «Проверять простой сеанса»).

Порядок установки:
1. Объедините эту конфигурацию с исходной. Обратите внимание на единственное место, где требуется внести изменения в исходную конфигурацию – это модуль приложения.
2. Откройте в режиме «Предприятия» обработку «Блокиратор» и заполните настройки.
3. Установите для нужных пользователей в доступных ролях «Проверять простой сеанса».

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

Наименование Файл Версия Размер Кол. Скачив.
DownTimeControl.zip
.1222431597 217,79Kb
10.07.13
1483
.1222431597 217,79Kb 1483 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

0. Андрей Скляров (coder1cv8) 26.09.08 16:25
Данная разработка предназначена для отслеживания простоя (т.е. отсутствия движений мышью/нажатий клавиатуры) работы пользователя в течение определенного промежутка времени и выполнения одного из следующих действий:
- Блокировка сеанса 1С;
- Блокировка сессии Windows;
- Завершение работы 1С;
- Завершение работы Windows.

Перейти к публикации

1. Андрей Скляров (coder1cv8) 26.09.08 16:25
Часто встречаю вопросы на форумах типа "Как заблокировать/закрыть сеанс 1С при простое", поэтому появилась такая вот безделица... )
2. Михаил Ражиков (tango) 26.09.08 16:29
хорошо бы этот функционал полностью внешний
3. Андрей Скляров (coder1cv8) 26.09.08 16:34
(2) Можно если, разве что, сделать в виде внешней обработки и её открытой у пользователя держать всё время... Что, согласись, не красиво.
А так изменения вносимые в конфигурацию минимальны, только подключение обработчика ожидания при начале работы, остальные все объекты добавляются.
4. Роман Петров (PeRom) 26.09.08 16:53
Отлично за идею, на досуге опробую.
5. zyto (zyto) 26.09.08 18:23
Это из серии - работаешь, работаешь, и тут бац - заставка!
6. Андрей Скляров (coder1cv8) 26.09.08 19:12
(5) В смысле?... )
Хотя, лично у меня, не возникало необходимости в подобных утилитах... Сам бывает "медитирую" над кодом пока заставка не появится... )
Но раз люди спрашивают, значит кому-то это необходимо. Вон бывает ключиков на всех не хватает )
7. Сергеев Н. (sergeevn1) 29.09.08 03:59
А у меня отчет формируется два часа без нажатий мыши и клавиатуры. Тоже получится простой?
8. Андрей Скляров (coder1cv8) 29.09.08 08:06
(7) Надо отчеты оптимальней писать, товарищ! ))
А если серьезно, то да, если пользователь вообще не будет трогать клавиатуру и мышь эти 2 часа, уйдет например куда-нибудь - то это простой. А если он свернет окошко 1С и будет другими делами заниматься, то простоя не будет.
9. Михаил Семенов (Shaman100M) 29.09.08 14:37
(8) Если выполняется отчет, опрос "по бездействию" пользователя не производится до тех пор, пока отчет не выполнится? Тогда, имхо, логично к накапливаемому общему времени простоя добавлять не время выполнения отчета, а просто один период опроса, или, обобщенно, [кол-во опросов за время выполнения чего-л] х [период опроса]
10. Андрей Скляров (coder1cv8) 29.09.08 15:33
(9) Да, опрос времени бездействия выполняется через ОбработчикОжидания, поэтому, естественно, в период формирования отчета/выполнения обработки он не делается. Суть в том что считается время простоя системы, а не 1С. Поэтому формирование отчета в общем случае не является простоем, что вполне логично, ИМХО.
11. Трактор Трактор (Трактор) 29.09.08 21:31
ИМХО считаю лишним делать три константы ПериодОпросаПростоя, ВремяПростоя, ДействиеПриПростое. Я бы обошёлся одной константой "НатройкаПриПростое" типа строка неограниченной длины. Туда можно запихивать структуру с нужным количеством полей.
Возможно это тема для форума, но мне лень идти на форум...
12. Андрей Скляров (coder1cv8) 30.09.08 08:03
(11) Конечно, можно вообще все константы таким образом "упаковать". Но это, на мой взгляд, не совсем методически грамотно. Да и здесь главное сделать наглядно, что бы был понятен принцип. А дальше каждый может модернизировать как считает нужным...
13. Олег Веселов (sml) 01.10.08 17:58
а как насчет того, чтобы простоем считать неактивность сессии (не елозит мышь в окне 1С, не нажимаются клавиши в активном окне 1С и при этом загрузка процессора процессом 1с = 0?

дело в том, что многие юзверя понаоткрывают окон 1С на рабочем столе и в это время трут в асе или шарят в нете - а ресурсы заняты в это время.
14. Андрей Скляров (coder1cv8) 01.10.08 18:53
(13) Ну а что же вы хотите от БЕСПЛАТНОЙ разработки? ) Можно сделать и это. У софтпоинта, вроде, есть подобное решение, которое считает именно активность процесса 1С, но это и денег стоит не малых я думаю...
15. Михаил (puh) 27.11.08 17:02
(13) 1С всегда загружает проц, либо это обработки ожидания, либо в открытых списках идет обновление информации.
16. Светлана Мих (alina-aud) 13.02.10 19:14
заинтересовала Ваша обработка ...
подскажите, а для терминального сервера можно доработать? Т.е. человек удаленно по rdp заходит в сессию ..... срабатывает блокиратор, но после закрытии 1С через пару секунд и закрывается сеанс пользователя с сервером....
17. Андрей Скляров (coder1cv8) 14.02.10 19:42
(16) да, это возможно сделать )
18. Светлана Мих (alina-aud) 14.02.10 22:35
(17) к сожалению, shutdown -l не поддерживает указание времени задержки в 5 секунд ... [shutdown -l -t 5]
на сервере запущена программа, которая "контролирует" закрытие 1с, а потом уже разрешает закрыть сессию .... и вот без этой задержки идея и накрылась =(
19. Андрей Скляров (coder1cv8) 15.02.10 09:15
(18) скрипт написать, вызывающий shutdown, куда вставить sleep(5000)
20. Светлана Мих (alina-aud) 15.02.10 12:24
(19) вот, подсказали кусок кода ... как бы сюда вставить задержку?

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")

errResult = objWMIService.Create("B:\1cv8.exe", null, int1cID)

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcesses = objWMIService.ExecNotificationQuery _ ("Select * From __InstanceDeletionEvent Within 1 Where TargetInstance ISA 'Win32_Process'")

Do Until False = True
Set objProcess = colProcesses.NextEvent
If objProcess.TargetInstance.ProcessID = int1cID Then
Exit Do
End If
Loop

Set objShell = CreateObject("Wscript.Shell")
objShell.run "shutdown /l"
21. Вадим Иванцов (grum01) 06.09.11 08:13
(20) Настрой сеанс терминала (в настройках пользователя), на запуск 1С при входе на сервер. Тогда сеанс RDP будет автоматически закрываться сам при окончании работы в программе.
:D
22. Филин (fillin) 11.09.11 22:06
Какая-то польза от новой системы, наверное, есть. Напомнили, что надо воздать должное авторам. (На http://infostart.ru/profile/activity/downloads/ теперь есть значки-напоминалки)
Скачал эту разработку уже давно. Аж 25.10.08.

Прикрутил к корпоративной УПП, кое-что допилил: добавил предупреждения юзерам о скором закрытии сеансов, лог в журнал регистрации, и после закрытии сеанса с помощью AutoIt выводится сообщение о том, что сеанс 1С закрыт из-за простоя (Чтоб юзера не паниковали).
Эффект: У нас 110 ключей было. Их стало не хватать, но на новые в бюджете тек. года средств не было. После того, как прикрутил эту обработку, и мертвые сеансы стали автоматом завершаться через 2 часа, выснилось, что реально работающих пользователей в среднем 80 человек.
Теперь у нас нет проблем с нехваткой ключей.
23. Игорь (uropek) 20.09.11 21:27
то, что доктор прописал!
24. Сергей Мурзинов (Sergey_Murzinov) 28.09.11 18:37
Используем, сначала юзвери ворчали, потом привыкли. Нормально
25. Nur Islam (Ruslan***) 06.12.11 17:38
Спасибо. Применил идею завершения работы в 1С.
26. Юлия Петрова (petrovaUL) 20.12.11 06:44
Спасибо. Пригодиться - оптимизировать работу пользователей, бывает из 1С-ки не выходят и ПК не отключают.
27. Petr Ivanov (goodman12) 20.12.11 07:30
Спасибо, полезно. А то черти эти вечно забывают выходить как положено
28. Николай Пархоменко (Klondaik) 26.12.11 15:12
Отличная публикация. Сделал с ее помощью выход в режим ожидания программы, а то складские работники вечно оставляют все открытым и по свим делам ходят.
29. Иван Иванов (piton667) 18.01.12 17:56
Столкнулся с похожей проблемой, ключей не хватает, сервак тормозит, а юзеры по 3 часа висят неактивные.....

Может кто загонялся над таким вопросом , может можно подключаться к диспетчеру служб терминалов как к КОМ-объекту? Чтобы от туда получать простои пользователя, и на основании этого выкидывать их...
33. antgrom (antgrom) 11.05.12 17:51
Взял файл по ссылке на Народ.
Блокировка не работает ни в оригинальной конфе , ни при объединении с другой базой.
Проверял только в файловом режиме.
ОС : Виста.
Платформа : 8.1.13.41.


В чем может быть причина отсутствия блокировок ?
34. antgrom (antgrom) 12.05.12 18:04
+ 33 Все работает. Вопрос снят.

Реализовано красиво.
35. Михаил (Santur) 23.10.12 17:52
(22) fillin, а не хотели бы поделиться допиленной версией?
36. Виталий Васькович (mr_best_23rus) 17.07.13 22:19
Автору респект! Подсистема помогла!
37. Иван Иванов (avk2009) 18.11.13 11:25
Спасибо за разработку, а главное за то, что скачивание бесплатное! Сконвертировал для 1С 8.2 - все работает без нареканий.
38. Василий (Velliar) 03.02.14 11:51
А с терминальной сессией дружит обработка?Понимает она что 1С запущенна, но терминал свернут?
39. Степан Иванов (medvedev8) 15.09.14 08:58
Добрый день! Подскажите, пожалуйста, возможно ли в качестве времени простоя считать время простоя 1С, а не всей системы?
40. Рамиль Баширов (bashirov.rs) 15.10.14 12:35
Возьмем на заметку. Спасибо - ставлю плюс!
41. Namig Pirkuleiv (Namig) 24.12.14 20:26
в 8.0.18.2 выдает ошибку: {ОбщийМодуль.ПроверкаПростоя(8)}: Метод объекта не обнаружен (ВремяПростоя)
ВремяПростоя=Блокиратор.ВремяПростоя()/1000; // в секундах
42. Евгений Кредько (kredko) 03.08.15 07:33
Для SQL-ного варианта такая фича будет когда-нибудь?
Хотя уже не надо. Написал сам для документооборота на уФ.
43. Сергей Пономарёв (izidakg) 16.08.16 16:08
просто и эффективно, наткнулся на эту разработку в БД клиента и только потом уже тут нашел подробное описание и обсуждение.
у меня только один вопрос - в обработке "Блокиратор" в макете зашит файл EXE и естественно возник вопрос а что он делает?
44. Раиса Захарова (Risoks) 24.11.16 13:27
Скачала. Не могу воспользоваться:
"Структура конфигурации несовместима с текущей версией программы"
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа