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

Опубликовал Андрей Скляров (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
1553
.1222431597 217,79Kb 1553 Бесплатно

См. также

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

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

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

дело в том, что многие юзверя понаоткрывают окон 1С на рабочем столе и в это время трут в асе или шарят в нете - а ресурсы заняты в это время.
14. Андрей Скляров (coder1cv8) 3281 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) 3281 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) 3281 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) 210 06.09.11 08:13 Сейчас в теме
(20) Настрой сеанс терминала (в настройках пользователя), на запуск 1С при входе на сервер. Тогда сеанс RDP будет автоматически закрываться сам при окончании работы в программе.
:D
22. Филин (fillin) 198 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) 4 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) 8 23.10.12 17:52 Сейчас в теме
(22) fillin, а не хотели бы поделиться допиленной версией?
36. Виталий Васькович (mr_best_23rus) 29 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) 13 15.10.14 12:35 Сейчас в теме
Возьмем на заметку. Спасибо - ставлю плюс!
41. Namig Pirkuleiv (Namig) 24.12.14 20:26 Сейчас в теме
в 8.0.18.2 выдает ошибку: {ОбщийМодуль.ПроверкаПростоя(8)}: Метод объекта не обнаружен (ВремяПростоя)
ВремяПростоя=Блокиратор.ВремяПростоя()/1000; // в секундах
42. Евгений Кредько (kredko) 15 03.08.15 07:33 Сейчас в теме
Для SQL-ного варианта такая фича будет когда-нибудь?
Хотя уже не надо. Написал сам для документооборота на уФ.
43. Сергей Пономарёв (izidakg) 118 16.08.16 16:08 Сейчас в теме
просто и эффективно, наткнулся на эту разработку в БД клиента и только потом уже тут нашел подробное описание и обсуждение.
у меня только один вопрос - в обработке "Блокиратор" в макете зашит файл EXE и естественно возник вопрос а что он делает?
serjik777; +1 Ответить
44. Раиса Захарова (Risoks) 14 24.11.16 13:27 Сейчас в теме
Скачала. Не могу воспользоваться:
"Структура конфигурации несовместима с текущей версией программы"