![]() |
|
Принудительное программное отключение пользователей для монопольного входа | ☑ | ||
---|---|---|---|---|
0
Zevs1998
20.07.05
✎
14:14
|
Существует ли средство для принудительного программного закрытия всех сеансов пользователей (закрытия клиентских программ 1с)?
При планировании монопольного запуска 1С на сервере по расписанию при условии, что кто-то из пользователей всё ещё сидит в системе 1С монопольно не стартует и окно ошибки без участия пользователя не снимается. Хотелось бы перед запуском 1С в монопольном режиме запустить какую-либо утилитку для принудительного отключения пользователей. |
|||
1
Samba
20.07.05
✎
14:30
|
В ГлобальномМодуле Напиши,по-моему должно работать....
ОбработкаОжидания("ВыкинутьВсех",15) Функция ВыкинутьВсех() Если Константа.ВыкинутьВсехКромеТебя = 1 Тогда Если ИмяПользователя() <> "Твоеимя" тогда ЗавершитьРаботуСистемы(0); КонецЕсли; КонецЕсли; КонецФункции |
|||
2
Ёпрст
20.07.05
✎
14:32
|
(0) да уж .... пару раз так выкинешь всех с базы (особенно если они тяжелые обработки запускали или доки проводили) и будешь нудно базу восстанавливать из архива....
На кой тебе монопольный режим то ? |
|||
3
Ёпрст
20.07.05
✎
14:33
|
+2 я имел ввиду снятие net сессий
|
|||
4
Гуру 1С
20.07.05
✎
14:35
|
(1) - лучше анализировать в ИБ наличие файла-флажка.
Создавать удобно из VBScript (OpenConf Script). |
|||
5
goodfella
20.07.05
✎
14:35
|
||||
6
АвторскиеПрава Частич
20.07.05
✎
14:37
|
Процедура ОстановкаСистемы()
ОчиститьОкноСообщений(); Сигнал(); Сообщить("ВНИМАНИЕ! ОСТАНОВКА ПРОГРАММЫ!","!!!"); Сообщить("Просьба сохранить все необходимые документы или элементы справочников.","!!!"); Если ПопыткаВыхода=1 Тогда Коммент="Предупреждение об остановке системы."; ЗаписьЖурналаРегистрации(Коммент,,,,4); КонецЕсли; Если ПопыткаВыхода=4 Тогда ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал(); Предупреждение("Ваше время истекло! ОСТАНОВКА СИСТЕМЫ.",1); Коммент="Отключение охамевшего пользователя."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ЗавершитьРаботуСистемы(0); КонецЕсли; Ответ=0; Если ПопыткаВыхода<4 Тогда // Если не проверять, то при отключении (см. выше) система успевает снова задать вопрос. Ответ=Вопрос("Вы готовы к остановке системы",4,10); КонецЕсли; Если Ответ=7 Тогда // Ответ - НЕТ Сигнал(); Коммент="Отсрочка отключения № "+Строка(ПопыткаВыхода); ЗаписьЖурналаРегистрации(Коммент,,,,4); ПопыткаВыхода=ПопыткаВыхода+1; ИначеЕсли Ответ=6 Тогда // Ответ - ДА Сигнал(); Сигнал(); ОчиститьОкноСообщений(); Коммент="Отключение раб. станции "+Строка(ИмяКомпьютера())+"."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ПопыткаВыхода=ПопыткаВыхода+1; ЗавершитьРаботуСистемы(1); ИначеЕсли Ответ=-1 Тогда // Ответ не получен. Выход по таймауту. ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал(); Предупреждение("Внимание! ОСТАНОВКА СИСТЕМЫ.",3); Коммент="Отключение неответившей раб. станции "+Строка(ИмяКомпьютера())+"."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ЗавершитьРаботуСистемы(0); КонецЕсли; КонецПроцедуры Процедура АнализЗавершенияРаботы() ФИмя=СтопФайл; Если ФС.СуществуетФайл(ФИмя) = 1 Тогда Если НЕ(НазваниеНабораПрав()="Админ") Тогда ПопыткаВыхода = 1; ОстановкаСистемы(); КонецЕсли; КонецЕсли; ФИмя=""; КонецПроцедуры Процедура ПриНачалеРаботыСистемы() ... ОбработкаОжидания("АнализЗавершенияРаботы",10); ... КонецПроцедуры //ПриНачалеРаботыСистемы() Файл-флаг создается: Sub ExitAll() StopFile="stop.all" Set FSO = CreateObject("Scripting.FileSystemObject") Set tf = FSO.CreateTextFile (IBDir & StopFile) tf.Close End Sub |
|||
7
Да и еще
20.07.05
✎
14:40
|
Удаление файла-флажка:
StopFile="stop.all" Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(StopFile) Then FSO.DeleteFile StopFile End if |
|||
8
Да и еще
20.07.05
✎
14:46
|
Поправочка
StopFile=IBDir & "stop.all" Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(StopFile) Then FSO.DeleteFile StopFile End if |
|||
9
Кочуров
20.07.05
✎
15:02
|
||||
10
колодина
20.07.05
✎
17:00
|
(9) классная штука... надо использовать и спасибо большое.
|
|||
11
Zevs1998
21.07.05
✎
06:55
|
Дело в том, что мне это нужно делать по расписанию в определённое время (т.е. меня самого в это время на рабочем месте нет). У меня по расписанию 1С ночью стартует в монопольном режиме. И до этого старта мне нужно убедиться, что в 1С никто не сидит, иначе при старте в монопольном режиме 1С выставит окно с ошибкой и его уже никак не снять, кроме как вручную (ночь пропала :-)
|
|||
12
Фокусник
21.07.05
✎
08:12
|
(11) Для какий целей ночью стартует в монопольном режиме?
|
|||
13
Ночник
21.07.05
✎
08:15
|
(11) - а какого черта юзеры сидят в 1Се ночью?
|
|||
14
Zevs1998
21.07.05
✎
09:11
|
Юзеры могут работать круглосуточно (по производственной необходимости). А стартует в монопольном режиме для восстановления ГП, так как восстановление ГП при работе юзеров во-первых, здорово тормозит их работу, а во-вторых, за ночь проходит всего несколько дней, а затем в течение дня юзеры ГП могут снова отправить назад на пол-года :-)
|
|||
15
Ёпрст
21.07.05
✎
09:14
|
(14) да уж ... а если ГП застопарилась ??? Всё равно придётся "рученьками" править!
|
|||
16
Ёпрст
21.07.05
✎
09:16
|
(14) ГП на пол - года назад ???? Ах....ть! У меня на неделю - катастрофа, и то с разрешения ГБ и то под присмотром. А так период всегда закрыт. А если влезать на пол-года назад - эт пиз..ц вся себестоимость могёт полететь на х....
|
|||
17
Zevs1998
21.07.05
✎
13:43
|
Не могет, а летит и не только она. Заплюхались уже бороться
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |