Выкинуть пользователей из 1С 7.7 обработка

Выкинуть пользователей из 1С 7.7 обработка

Эти процедуры необходимо добавить в глобальный модуль:

Процедура ОстановкаСистемы()
  ОчиститьОкноСообщений(); Сигнал();
  Сообщить(“ВНИМАНИЕ! ОСТАНОВКА ПРОГРАММЫ!”,”!!!”);
  Сообщить(“Просьба сохранить все необходимые документы или элементы справочников.”,”!!!”);
  Если ПопыткаВыхода=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

Удаление файла-флажка:

StopFile=IBDir & “stop.all”
Set FSO = CreateObject(“Scripting.FileSystemObject”)
If FSO.FileExists(StopFile) Then
    FSO.DeleteFile StopFile
End if