Имя: Пароль:
1C
 
Как организовать принудительное отключение пользователей
Ø
0 sparur
 
15.04.05
10:44
Знаю тема уже обсуждалась и думаю не раз, но практически везде предлагают заводлить константу. Но я где-то видел (щас найти не могу), что есть решение со спец справочником, который к тому же может хранить данные о входе\выходе юзеров, ну что-то типа монитора с историей...
Разъясните плиз еще разок, очень буду благодарен
1 ruslan384
 
15.04.05
11:10
я сделал в справочнике Пользователи графу ВЫКИНУТЬ и ставлю туда ДА при необходимости
2 sparur
 
15.04.05
11:13
а структуру справочника можно привести? и где проверяется этот реквизит (ВЫКИНУТЬ)?
3 ruslan384
 
15.04.05
11:20
1)Справочник уже должен быть
2)В глобальном модуле:
ОбработкаОжидания("ОпросСостоянияСистемы",30);
Процедура ОпросСостоянияСистемы()
  Спр = СоздатьОбъект("Справочник.Пользователи");
  Если Спр.НайтиПоКоду(глПользователь.Код)=1 Тогда
    Если спр.Удалить=Перечисление.ДаНет.Да Тогда
     спр.Удалить=Перечисление.ДаНет.Нет;
      спр.Записать();
      ЗавершитьРаботуСистемы(1);
    КонецЕсли;
  КонецЕсли;
КонецПроцедуры
4 КонецЦикла
 
15.04.05
11:22
Да можно и без справочников... вот как закрыть, если модальное окно, например, открыто? Может на proclub.ru есть что-то...
5 sparur
 
15.04.05
11:41
что за модальное окно и какие проблемы с ним?
6 Lexusss
 
15.04.05
11:48
7 Naumov
 
15.04.05
11:55
Проще всего выдернуть сетевой кабель из сервера, или Reset нажать...
8 КонецЦикла
 
15.04.05
11:58
2(5) Ну, обычно делают через ОбработкаОжидания(), которая проверяет наличие файла или еще чего-то... если что-то есть - то завершаем работу.. а тут получится облом... надо другими ср-вами...
9 Gav
 
15.04.05
12:01
Если SQL, делаем хранимую процедуру. При необходимости ее запускаем ,из чего угодно.
10 Fynjy
 
15.04.05
12:12
WSH и админские права ... И делай в сетки шо хош :)
11 mikeA
 
15.04.05
12:53
(4) говорят в последней версии 1С++ можно и модальное
12 KoliFan
 
15.04.05
13:39
При наличии модальных окон завершить работу системы из самой системы невозможно. Ди и не только при наличии модальных. Не все, даже немодальные, окна, порождаемые 1С, являются дочерними по отношению к ней.
Посему, на мой взгляд, единственное решение - это внешнее приложение, которое "грохает" систему в заранее заданное время или при заранее заданных условиях.
Во всяком случае, у себя на работе я сделал именно так.
13 sdaf
 
15.04.05
13:42
citrix - и никаких проблем
14 Пим Сибирский
 
15.04.05
14:14
13, адназначна
15 sparur
 
15.04.05
16:44
юзаю Цитрикс, а как там вот выкидывать пользователей не знаю. Вернее знаю как можно проследить кто использует какое приложениеи затем убивать сессию. но вот если один юзер сидит в 2-х, 3-х разных базах 1с-ки, а надо его выкинуть из одной определенной, то вот тут как Цитрикс может помочь?
16 Viking
 
15.04.05
16:53
Процедура Сформировать()
  
    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");
КонецПроцедуры
ИмяКомп - имя компа в сети
парам - параметр... Log Off (Парам=4), Shutdown (Парам=5), Reboot (Парам=6)
17 Viking
 
15.04.05
16:55
тоже самое для v8
----------
строку ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
меняем на ScrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
18 Кочуров
 
15.04.05
17:03
Ежели тебе нужно пользователей выкинуть и бэкап сделать: http://v7backup.narod.ru