gifts2017

Удобная "выгонялка" пользователей из 1С без доработок кода

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

Удобная выгонялка пользователей из 1С без доработки конфигурации.

!Внимание! Тестировал только на 25-ом релизе!
Патчим 1С (seven.dll) и у нас готовая выгонялка пользователей. Управляется одним движением мыши по значку 1С в трее (появляется когда открываем конфигуратор), после чего у пользователей идет оповещение в трее и в заголовке окна о том что 1С будет закрыто через 5 минут. Идет отсчет времени. Для тех кто попытался зайти будет выведено предупреждение и пользователь не будет допущен в базу пока не будет отменена блокировка базы.
Исходники прилагаются.
Основано на разработках romix, за что ему огромное человеческое спасибо!

* 11.03.08 Добавил возможность настраивать выполнение произвольных команд до блокировки и после (например net send * "Можно заходить в базу", test.cmd и т.д.) Если указать путь к файлу как .\test.cmd то запуск будет из каталога ИБ.
Добавил возможность отключения иконки в трее. может потребовать если надо запускать конфигуратор в пакетном режиме. Надо просто создать файл notray в каталоге ИБ.
* 22.06.07 Добавил возможность настраивать выводимое сообщение и время ожидания в сек.
После закрытия баз dbf версии не требуется заново индексировать базу.
* 01.11.07 Исправлена ошибка при закрытии монитора и 1С в режиме заблокированной базы.

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

Наименование Файл Версия Размер Кол. Скачив.
KillUsers-v2.2.rar
.1205240188 405,56Kb
06.03.13
926
.1205240188 405,56Kb 926 Скачать
KillUsers-v2.1.rar
.1182254071 339,13Kb
06.03.13
875
.1182254071 339,13Kb 875 Скачать

См. также

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

Комментарии

1. aftar 25.01.07 14:15
;) .. синтаксис русского языка сложней дается чем Delphi
2. Андрей (andrewalexk) 25.01.07 13:36
:)
значит говоришь юзерам "поробуйте"...?.
хехе
3. Евгений Стоянов (quick) 06.02.07 09:10
Нашел ошибку при блокировке базы. Можно скачивать пробовать, так же выложил исходники.
4. Sasha (-Alfa-) 26.01.07 10:39
Комплексная конфигурация 1С 7.7, база в формате DBF, выполнил все инструкции, файл seven.dll успешно пропатчен, при запуске конфигуратора появляется значек в трее. Но ни один пользователь не получает сообщений, база не блокируется. Подскажите, если были похожие случаи, что я мог неправильно сделать
5. Евгений Стоянов (quick) 26.01.07 12:46
Не возникало такой проблеммы по крайней мере на 24 и 25 релизе. Возможно вы забыли пропапчить 1С у пользователей ;).
6. Евгений Стоянов (quick) 26.01.07 12:48
На сайте обновление.
* исправлено "поробуйте" -> "попробуйте"
:))
7. Sasha (-Alfa-) 26.01.07 14:22
Пропатчил у пользователей, ни один не видит сообщений, на одной из машин под управлением Windows 2000, даже не отображается значек в трее, (если запустить на ней 1С в режиме конфигуратора)
8. Алексей (akm-76) 01.02.07 07:28
А в терминале будет работать?
9. Валерий (VV) 01.02.07 11:09
Ради интереса проделал все предложенное.
1. В базу, пока не закомментировал в ини строку, зайти больше не смог - не пускала, хотя несколько раз нажимал Разблокировать.
2. Срубает некорректно - потом переиндексировать надо.
3. В терминале будет работать?
10. Евгений Стоянов (quick) 01.02.07 11:24
интересно а у остальных 270 работает? :)
11. idw idw (idw) 13.04.07 09:01
А можно сделать так, чтобы самому в настройках можно было выставлять время, через которое база 1С будет закрыта?
12. Egles (egles) 26.04.07 09:41
13. Доржи Цыденов (support) 26.04.07 10:22
Почему здесь нет скриншотов?
14. Egles (egles) 28.04.07 11:08
Хорошо бы если этот проект имел продолжение, идея заключается в том что в терминальном режиме пользователи порой просто нажимают на крестик в правом верхнем углу экрана какбы закрыв терминал и довольные хотелось бы чтобы обработка проверяла активность пользователей, т.е. допустим если изменений в док, или в справочниках и т.д. нет более 30 минут дата завершить работу пользователей и хорошобы показывала список текущих пользователей - вот такие пожелания к этому проекту!
P/S не смог посмотреть скриншоты и не понял как работает открыть и закрыть базу. Единственное када в конфигураторе решил применить изменения тада вылезает сообщение у пользователей о вынужденном закрытии!
15. Виктор (anagkh) 22.06.07 15:51
16. Аркадий Кучер (Abadonna) 23.06.07 10:04
За unit PatchMemory - бАААлшое спасибо.
Windows.TerminateProcess(Windows.GetCurrentProcess,1); - наверное, все-таки некорректно: 1С будет завершена аварийно.
+1

17. Аркадий Кучер (Abadonna) 23.06.07 11:48
Благодаря одной твоей "ошибочке" при выкладывании исходников
пришлось качнуть JEDI VCL, коими остался очень доволен :)
Так что еще +10 в уме ;)
18. Евгений Стоянов (quick) 25.06.07 11:39
http://www.delphi-jedi.org/ - компоненты необходимые для проекта (только для разработчиков).
19. Артур Аюханов (artbear) 15.10.07 15:50
+1
А нельзя ли добавить возможность программного управления блокировкой/разблокировкой?
20. Евгений Стоянов (quick) 16.10.07 12:38
(19) Легко. Блокировка это создание файла в папке с базой block.lck, разблокировка соответсвенно это его удаление. Можно создавать файл средствами 1С. Создается ещё файл в каталоге ИБ locker.ini для спецификации сообщения и таймаута (он не обязателен). Можно ещё выгонять из конфигуратора :) config.lck, сделано для любителей оставить конфигуратор на ночь.
21. Владимир Паникаровских (Voldemar) 22.10.07 15:41
Нечто подобное делал собственными средствами 1С. Есть вполне достойная команда "ЗавршениеРаботыСистемы", которая корректно завершает работу пользователя. Необходимость выхода конкретного пользователя/группы пользователей/всех пользователей записывается в отдельный файл. От каждого пользователя контролируется наличие этого файла, для чего в глобальном модуле пишем "ОбработкаОжидания("ПроверкаОстановки",30);" и с интервалом 30 секунд запускается процедура "ПроверкаОстановки()", которая и проверяет наличие этого файла. Ну а дальше - дело техники. Образец моего использования могу выложить для желающих. P.S. эту же обработку использую и для рассылки сообщений. Предусмотрел и такую возможность.
vas.kif-ae; +1 Ответить 1
22. Евгений Стоянов (quick) 22.10.07 16:42
Изначально я тоже это делал штатными средствами 1С :).
23. Михаил (mdzen) 07.11.07 19:43
Идея хорошая. Попробовал - однако работает,
но "Патчим 1С (seven.dll) " всетаки не есть гуд (лицензию нарушаем).
Без патчей както бы обойтись.
Ну а в общем +1
24. Mihenius (mihenius) 28.11.07 12:13
(21) А как ты выгонишь тех кто поставил блокировку? А если 1с потеряла фокус? А если формируется долгий отчет?
Обычным Звершением не обойтись ... Плюс еще штатной Обработкой ожидания тоже.
25. Аркадий Кучер (Abadonna) 28.11.07 13:14
(24) Надо просто стараться сначала выгнать корректно, а уж если не получается - терминатором
26. Евгений Стоянов (quick) 28.11.07 15:43
Блокировка, фокус, долгий отчет это все ерунда.. килим с процессов!! :) хотя выгнать корректно конечно бы не мешало, если кто кусок кода пришлет как это сделать, то добавлю.
27. Mihenius (mihenius) 21.12.07 11:41
(24) Есть еще ОбработкаОжидания Альфа, она работает ;)
28. highlander highlander (highlander) 05.02.08 15:02
У меня огромная просьба по данному вопросу. У кого работает эта утилитка сбросьте пожалуйста пропатченную dll-ку и все что необходимо. А то я уже второй день маюсь. Все к чему я пришел - это значок в трее, при нажатии на который выскакивает указанное меню. Но в меню когда я выбираю комманду разблокировать - абсолютно ничего не происходит. И пользователи продолжают свою работу. 1С 7.70.020 Win2003 Serv. Может проблема в релизе? Может обновить до 24 или 25?
29. Евгений Стоянов (quick) 28.02.08 11:37
У всех пользователей надо так же пропатчить 1С.
30. Олег (kordell) 09.04.08 23:24
Большое спасибо. Давно искал нечто достойное. Работает на 27-ом SQL замечательно.
31. Eugeny (pectopatop) 11.06.08 17:53
+1
особенно учитывая вопрос artbear и ответ на него.
т.е. и без конфигуратора можно выгонять - а потом например копировать папку базы...
но и глюки тоже есть - программа по ходу своих ругательств "До закрытия осталось .. !" меняет заголовки всяких левых окон, например, у моей открытой в то же самое время Оперы заголовок стал "До закрытия 1С осталось ... " и у Тотал Коммандера.
WinXP SP2, старая, сильно заюзаная.
32. Eugeny (pectopatop) 11.06.08 17:58
+ и второй еще глюк я заметил - если из конфигуратора запускать блокировку (например через 5 мин), а за это время выйти из Конфигуратора, то:
1. база не блокируется, т.е. заходить в нее можно будет
2. но при выходе из таких "нелеальных" сессий платформа 1С ругается "RunTime Error! ...". И так - пока не снимем блокировку. Потом корректно закрывается платформа.
1С 7.7.25 SQL. база ДБФ.
33. Eugeny (pectopatop) 11.06.08 17:59
34. Евгений Стоянов (quick) 15.06.08 17:45
(31) Заголовки сделаны специально для терминальных пользователей у которых нет трея.
35. Alexey (zarius) 24.07.08 14:28
отличная вещь! спасибо! + 1 (+100 в уме)
кто нибуть пробывал это дело на большом количестве пользователей? есть какие нибуть "баги" (или "фичи") использования на настоящий момент?
36. sergey03 (Sergey03) 29.07.08 06:18
Работает только с правами администратора, а если у пользователя права в системе "Пользователи" то 1с не запускается.
37. Константин Исиченко (IsiKosta) 10.09.08 09:33
Зачем две версии выложено? Какая из них "более рабочая"? У меня версия 2.2 и не работает. Почему бы автору не протестировать на 27 релизе платформы?
Обнаружены косяки: у меня платформа 27, Win XP, пользователи могут заходить в базу после блокирования. После разблокирования остаются заголовки "Осталось ..." - это некорректно.
Во всех окнах такие же сообщения. Есть пожелание: поставил блокировку - появляется галка. А то непонятно в каком состоянии база.
38. serg_13 (serg_13) 09.10.08 12:36
В самописной базе в терминале не прокатывает, помогите разобраться
39. Евгений Стоянов (quick) 11.10.08 01:05
>>В самописной базе в терминале не прокатывает, помогите разобраться
Не зависит от того самописанная база или нет. Релиз должен быть 25, на нем тестировал.
И 1С должна быть пропатчена обязательно у ВСЕХ пользователей, иначе они смогут заходить :)
40. Маха (ОбнажЁнная_Маха) 04.12.08 15:46
Ох, спасибо! Очень удобная штучка! :)

(39) Как вариант - можно 1С пропатчить только у себя и тут же зайти в нее монопольно! Своим телом, так сказать, прикрыть... Тогда уж точно никто не пройдет! :D
41. MIK В (mikukrnet) 17.12.08 15:52
Не работает под 27 в терминале обычном
42. Alex Stasyuk (GreenFox) 24.03.09 10:23
Большое спасибо на 27-м релизе работает просто супер
45. Майк (mike_matros) 26.05.09 08:38
на 27 релизе работает? ваще никакой иконки даж не появляицо!!!!!!
46. Роман Бица (Kazimar) 08.09.10 14:02
Все работает супер, кроме одного "НО". Почему-то когда база заблокирована, я сам вхожу, тестю и т.д., а потом при выходе из 1С вылетает ошибка и закрывается из ошибкой (одним словом "Вылетает" при закрытии)
47. Kavar (Kavar) 06.10.10 10:51
на 27 релизе не заработало.
Никакой реакции на "Заблокировать базу"
48. Андрей (andersss) 26.09.11 09:44
49. Евгений Стоянов (quick) 27.09.11 09:02
andersss пишет:
И у меня не работает

Реакция не будет моментальная. Проверка на файл блокировки происходит один раз в минуту. Т.е. поставил блокировку и жди минимум минуту. Важно! У конечных пользователей 1С тоже должна быть пропатчена.
50. Андрей (andersss) 06.10.11 20:16
Что то уменя не получилось с этой выгонялкой
51. Vladimir Ivanovitch (tmm) 13.10.11 10:05
Вообще-то неудобно. Отказался.
52. Алексей Лейт (AlekseiLeit) 14.11.11 17:06
53. Vladimir Ivanovitch (tmm) 30.11.11 13:02
54. Александр Спасибухов (keyloger) 05.12.11 12:32
А если сидят пользователи через терминал в линухе , это сообщение будет им отобраджаться и будет их выкидывать?
55. Александр Спасибухов (keyloger) 05.12.11 12:36
И еще вопрос по теме , если ты к примеру пропатчил в папке бин все как в инструкции, будет ли работать утилита, если просто папку bin скопировать на другие машины :)
56. Andrej Snezhinka (SnegAvik) 12.12.11 17:08
Где то выше писали про ОбработкуОжидания, это на самом деле проще и работает более корректно нежели через патченые *.dll потому что в 1с есть все что нужно
58. Shurix Noise (shurix) 01.06.12 20:04
Пару вопросов:
- Работает ли ваша "выгонялка" с Секретным Релизом 1С? Например, вот эта ( http://es-work.narod.ru/projects.htm#KillUsers ), весьма похожая на вашу по скриншотам, не работает.
- Работает ли она с RemoteApps? Т.е. интересует, куда будет выводится предупредительное сообщение, если трэя как такового просто не будет
59. Shurix Noise (shurix) 03.06.12 00:36
Сам спросил - сам ответил :-). Представляю небольшой отчёт по ляпам и ошибкам:
1) с RemoteApps можно использовать лишь самую старую версию "выгонялки", которая вместо сообщения из трэя показывает предупредительное окошко на полэкрана. Эта версия еще тут сохранилась - http://kb.mista.ru/article.php?id=446

2) Принцип блокировки базы действует так: при входе в режиме Конфигуратор в каталоге базы создается файл 1Cv7.LCK. Если выбирается "Заблокировать базу", то там же создается еще один файл block.lck
В 2.х туда записывается имя win-пользователя, который включил блокировку базы. Именно поэтому в 2.х под одним и тем же блокировка базы не работает (впрочем, можно отредактировать этот файлик, благо сам он не залочен, и убедиться, что блокировка работает :-). В версии 1.х файл block.lck пустой, поэтому блокирование базы работает и под этим же пользователем.

3) Вкупе с Секретным Релизом всплывает глюк, который не позволяет использовать эту "выгонялку" - при запуске Конфигуратора файл 1Cv7.LCK создается, однако иконка в трэе не появляется. По крайней мере, в Win2008 SP1 (x86) и Win2008 R2. Если ручками создать файл block.lck, то блокировка базы работает.

Вот, собственно, и всё. Остается сделать "видимость" иконки в трэе в Секретном Релизе, а заодно сделать опцию выбора вида уведомления - обычным окошком или пузырём из трея.
60. Shurix Noise (shurix) 03.06.12 18:52
"Костыль" для использования вместе с Секретным Релизом (может кому понадобится):
создаёте два батника и запуском их осуществляете блокировки/разблокировки базы.

rem Заблокировать базу
echo . > Путь_к_1с_базе\1Cv7.LCK
echo %Username% > Путь_к_1с_базе\block.lck


rem Разлокировать базу.cmd
if exist Путь_к_1с_базе\block.lck del /Q Путь_к_1с_базе\block.lck
if exist Путь_к_1с_базе\1Cv7.LCK del /Q Путь_к_1с_базе\1Cv7.LCK
61. Александр (Alexander78) 08.08.12 17:20
Спасибо. Оченб пригодилось.
62. Костя Белозеров (klif) 05.12.12 08:30
Вопрос.
Killuser 1.0.0.16 , релиз 27. win2008 R2. В трее есть, файл block.lck появляется, пользователей не выкидывает. Раньше на win 2003 проблем не было!
63. Светлана Даниленко (LanaSN) 12.09.13 14:55
Спасибо, очень удобная обработочка!
64. Ruslan (flash82) 18.06.14 12:11
Когда то давно искал что то подобное.... потом реализовал стандартными средствами...
65. Александр Никитин (ManyakRus) 13.11.15 15:27
чё-то как-то глючит
сначала выгонялка работало иногда,
а теперь вообще не работает Win2008 R2 Terminal
в том числе все версии программы
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа