Выкинуть пользователей из 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