Изгнание пользователей 1С 7.7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Перем ПопыткаВыхода; //----------------------------------------------------------------------------------- Процедура ОстановкаСистемы() Экспорт ОчиститьОкноСообщений(); Сигнал(); Сообщить(" ВНИМАНИЕ! ОСТАНОВКА ПРОГРАММЫ. ","!!!"); Сообщить(" Просьба сохранить все необходимые документы или элементы справочников. ","!!!"); Если ПопыткаВыхода=1 Тогда Коммент="Предупреждение об остановке системы."; ЗаписьЖурналаРегистрации(Коммент,,,,4); КонецЕсли; Если ПопыткаВыхода=4 Тогда ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал(); Предупреждение("Ваше время истекло! ОСТАНОВКА СИСТЕМЫ.",1); Коммент="Отключение охамевшего пользователя."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ЗавершитьРаботуСистемы(0); КонецЕсли; Ответ=0; Если ПопыткаВыхода<4 Тогда // Если не проверять, то при отключении (см. выше) система успевает снова задать вопрос. Ответ=Вопрос("Вы готовы к остановке системы",4,10); КонецЕсли; Если Ответ=7 Тогда // Ответ - НЕТ Сигнал(); Коммент="Отсрочка отключения № "+Строка(ПопыткаВыхода); ЗаписьЖурналаРегистрации(Коммент,,,,4); ПопыткаВыхода=ПопыткаВыхода+1; ИначеЕсли Ответ=6 Тогда // Ответ - ДА Сигнал(); Сигнал(); ОчиститьОкноСообщений(); Коммент="Отключение раб. станции "+Строка(ИмяКомпьютера())+"."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ПопыткаВыхода=ПопыткаВыхода+1; ЗавершитьРаботуСистемы(1); ИначеЕсли Ответ=-1 Тогда // Ответ не получен. Выход по таймауту. ОчиститьОкноСообщений(); Сигнал(); Сигнал(); Сигнал(); Предупреждение("Внимание! ОСТАНОВКА СИСТЕМЫ.",3); Коммент="Отключение неответившей раб. станции "+Строка(ИмяКомпьютера())+"."; ЗаписьЖурналаРегистрации(Коммент,,,,4); ЗавершитьРаботуСистемы(0); КонецЕсли; КонецПроцедуры //--------------------------------------------- Процедура ПроверкаОстановки() Экспорт Каталог=КаталогИБ(); СтопФайл="stop.all"; ФИмя=Каталог+СтопФайл; Если ФС.СуществуетФайл(ФИмя)=1 Тогда ОстановкаСистемы(); КонецЕсли; ФИмя=""; КонецПроцедуры //--------------------------------------------- Процедура ПросмотрБлокнота() Экспорт // Вставлена проверка сигнала на завершение работы системы ПроверкаОстановки(); КонецПроцедуры //--------------------------------------------- Конец Глобального Модуля -------------------------- ОбработкаОжидания("ПросмотрБлокнота",10); ПопыткаВыхода=1; |