Имя: Пароль:
1C
 
Выгнать пользователей
0 Выгон
 
30.05.05
13:54
Как выгнать пользователей из базы автоматически?
Надоело каждый раз их обзванивать, чтобы сохранить изменения в MD-шнике.
1 Ferz
 
30.05.05
13:56
Поиск
2 Бес Толковый
 
30.05.05
14:09
(0) нуууу... минимизировать количество необходимых выгонов можно при помощи turbomd...
А с остальным действительно в поиск...
3 Выгон
 
30.05.05
14:14
Ссылки можно? У меня файл-сервер.

ТурбоМД я пользую, МД-шник даже в новый файл сохраняю (1cv7new.MD) (скрпипт OpenConf).
Осталось только это.
4 gr13
 
30.05.05
14:22
поиск по форуму сделай... тут много чего было...
5 неправильный метод
 
30.05.05
14:40
зачем обзванивать всех ? ГБ скажи...дальше ее проблемы...и ваще не ставь себя ниже плинтуса, не заменяй оргпроблемы техническими решениями.
6 Выгон
 
30.05.05
14:43
Глав бух ни причем.
Это вообще не бухия.
Юзера(ов) обычно не застанешь на раб месте.

Где найти Close1c?
7 1111
 
30.05.05
14:46
net send * Вышли все вон из моей 1С !!! :)
Только в терминале, кажется, не сработает.
8 Ёпрст
 
гуру
30.05.05
14:51
1.Константа НадоЗавершитьРаботу (0-не надо, 1- надо);
2.В глобальнике:
ПриНачалеРаботыСистемы()
.....
ОбработкаОжидания("АнализЗавершенияРаботы",10);
....

3.Процедура АнализЗавершенияРаботы()      
   Если Константа.НадоЗавершитьРаботу = 0  Тогда
       Возврат ;
   ИначеЕсли Константа.НадоЗавершитьРаботу > 0 Тогда  
       Сообщить("Программа закрыта для работы.");
       врИмяПользователя = Нрег(ИмяПользователя());
       Если (врИмяПользователя = "админ") Тогда
           // Админ. Ему положено.
           Возврат ;
           //ИначеЕсли  Тогда
           // здесь можно еще блатных поставить
           КонецЕсли;
   ИначеЕсли Константа.НадоЗавершитьРаботу < 0 Тогда  
       Сообщить("Программа закрыта для работы.");
       врИмяПользователя = Нрег(ИмяПользователя());
       Если (врИмяПользователя = "админ") Тогда
           // Админ. Ему положено.
           Возврат ;
       КонецЕсли;
   КонецЕсли;  
   СтатусВозврата(0);
   ЗавершитьРаботуСистемы();
КонецПроцедуры //АнализЗавершенияРаботы
9 Выгон
 
30.05.05
15:09
Значит нужно перед этим войти в ИБ под админом и установить константу НадоЗавершитьРаботу в 1?
10 Ёпрст
 
гуру
30.05.05
15:22
(10) в принципе не важно под кем , главное штоб доступ был к этой костанте
11 angrig
 
30.05.05
15:26
Процедура ОстановкаСистемы() Экспорт
   ОчиститьОкноСообщений(); Сигнал();
   Сообщить("ВНИМАНИЕ! ОСТАНОВКА ПРОГРАММЫ.   ","!!!");
   Сообщить("Просьба сохранить все необходимые документы или элементы справочников.","!!!");
   Если ПопыткаВыхода=1 Тогда
       Коммент="Предупреждение об остановке системы.";
       ЗаписьЖурналаРегистрации(Коммент,,,,4);
   КонецЕсли;
   Если ПопыткаВыхода=4 Тогда
       ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал();
       Предупреждение("Ваше время истекло! ОСТАНОВКА СИСТЕМЫ.",1);
       Коммент="Отключение охамевшего пользователя.";
       ЗаписьЖурналаРегистрации(Коммент,,,,4);
       ЗавершитьРаботуСистемы(0);
   КонецЕсли;
   Ответ=0;
   Если ПопыткаВыхода<4 Тогда    // Если не проверять, то при отключении (см. выше) система успевает снова задать вопрос.
       Ответ=Вопрос("Вы готовы к остановке системы",4,10);
   КонецЕсли;
   Если Ответ=7 Тогда // Ответ - НЕТ
       Сигнал();
       Коммент="Отсрочка отключения № "+Строка(ПопыткаВыхода);
       ЗаписьЖурналаРегистрации(Коммент,,,,4);
       ПопыткаВыхода=ПопыткаВыхода+1;
   ИначеЕсли Ответ=6 Тогда // Ответ - ДА
       Сигнал(); Сигнал(); ОчиститьОкноСообщений();
       Коммент="Отключение раб. станции "+Строка(ИмяКомпьютера())+".";
       ЗаписьЖурналаРегистрации(Коммент,,,,4);
       ПопыткаВыхода=ПопыткаВыхода+1;
       ЗавершитьРаботуСистемы(1);
   ИначеЕсли Ответ=-1 Тогда // Ответ не получен. Выход по таймауту.
       ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал();
       Предупреждение("Внимание! ОСТАНОВКА СИСТЕМЫ.",3);
       Коммент="Отключение неответившей раб. станции "+Строка(ИмяКомпьютера())+".";
       ЗаписьЖурналаРегистрации(Коммент,,,,4);
       ЗавершитьРаботуСистемы(0);
   КонецЕсли;
КонецПроцедуры
//******************************************************************************
Процедура ПроверкаОстановки() Экспорт
   Каталог=КаталогИБ();
   СтопФайл="stop.all";
   ФИмя=Каталог+СтопФайл;
   Если ((ФС.СуществуетФайл(ФИмя)    = 1) ИЛИ
         (Константа.DisableSystem    = Перечисление.Булево.Да)  ИЛИ
         (Константа.DisableNewLogons = Перечисление.Булево.Да)) Тогда
           Если НЕ(НазваниеНабораПрав()="Админ") Тогда
                 ОстановкаСистемы();
             КонецЕсли;
   КонецЕсли;
   ФИмя="";
КонецПроцедуры
12 angrig
 
30.05.05
15:27
(11) Реализовано без констант. Просто создаешь файл  stop.all и всех вышибает, если сами не хотят выйти.
13 angrig
 
30.05.05
15:28
(11) Работает, если 1С у юзверей не заблокирована...
14 Выгон
 
30.05.05
15:33
(11)
О! Вот это я понимаю. То что нужно. Проверка через файл-флаг.
Спасибо!
15 Выгон
 
30.05.05
15:34
(13) - да уже читал, что для заблокированных нельзя.
А можно ли блокировать возможность блокировки?
16 Факер_S
 
30.05.05
15:43
с помощью WSH можно процессы на машинах убивать, если я не ошибаюсь
17 PVasili
 
30.05.05
15:59
(0)Для 8 можно  http://itland.ru/rep/index.php?id=380
18 Факер_S
 
30.05.05
16:03
и есчо (не моё)

Процедура делает Log Off (Парам=4), Shutdown (Парам=5) или Reboot (Парам=6) выбранному компьютеру:

Процедура глViolateComputer(ИмяКомпа,Парам) Экспорт
   Попытка
       ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
       ScrptCtrl.Language="vbscript";
       ScrptCtrl.AddCode("
       |Function ViolateComputer()
       |    Set WMI = GetObject(""winmgmts:{(Shutdown,RemoteShutdown)}\\"+СокрЛП(ИмяКомпа)+"\Root\CIMV2"")
       |    For Each OS In WMI.ExecQuery(""SELECT * FROM Win32_OperatingSystem"")
       |        OS.Win32Shutdown("+Парам+")
       |    Next
       |End Function
       |");
       ScrptCtrl.Run("ViolateComputer");
   Исключение
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
КонецПроцедуры //глViolateComputer
19 skunk
 
30.05.05
16:48
(11)есть еще пару фишек когда не взлетит... и придеться к зверю скакать... или звонить
20 MuI_I_Ika
 
31.05.05
00:39
А я вот как представлю что будет, если я начну выгонять своих пользователей из базы мне плохо становится. (Очень не люблю слушать как бухгалтера матерятся)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.