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