Консультация № 62029
10.11.2006, 07:03
0.00 руб.
0 5 4
Добрый день!
Подскажите, можно ли как-то програмно, без применения внешних компонент по определенному сигналу(нажатие кнопки или заданное врем) завершить работу системы ВСЕХ пользователей кроме подавшего сигнал.
Заранее спасибо!

Обсуждение

Неизвестный
10.11.2006, 07:27
общий
это ответ
Здравствуйте, Зайцев Александр!
Я бы предложил Вам извратиться так:
1. Создать константу - ИнициаторСобытия, куда будет помещаться имя пользователя, вызвавшего событие;
2. Создать процедуру в глобальном модуле, которая будет вызывать завершение работы пользователя с помощью процедуры ЗавершитьРаботуСистемы() при условии, что константа в пункте 1 заполнена и она не равна текущему пользователю;
3. В предопред. процедуре ПриНачалеРаботыСистемы() создать обработчик ожидания на процедуру в пункте 2; а также установку константы в пункте 1 в пустую строку.
Все... потом, чтоб завершить всех остальных, вы просто заполняете константу.
Неизвестный
10.11.2006, 07:43
общий
это ответ
Здравствуйте, Зайцев Александр!

у 1с есть методическая конфа (идет на дисках ИТС) в нем есть такая обработка - завершение работы пользователей и куча прочих программных фич.

механизм таков - есть константа
Константа.СообщениеНеобходимостиЗавершения (тип текст)

в гл. модуле процедура в процедуре ПриНачалеРаботыСистемы() вызывается ОбработкаОжидания("ПроцессОбработкиОжиданияДиспетчера",120) а в процедуре ПроцессОбработкиОжиданияДиспетчера() есть код:
Если ПустаяСтрока(Константа.СообщениеНеобходимостиЗавершения)=0 Тогда
// обрабативается показ сообщенияКонстанта.СообщениеНеобходимостиЗавершения
// и завершается работа системы
ЗавершитьРаботуСистемы();
КонецЕсли;

т.е. ты заносишь в константу сообщение, пользователи его видят и сами звершают работу или система автоматически завершит работу

Неизвестный
10.11.2006, 08:08
общий
Спасибо Шалькову Павлу ВладимировичуИзвиняюсь, забыл про параметр процедуры ЗавершитьРаботуСистемы()
Неизвестный
10.11.2006, 11:40
общий
это ответ
Здравствуйте, Зайцев Александр!

Учитывая комментарии к предыдущим ответам, такой возможности однозначно нет.

P.S. Закрытие 1С при незаписанных справочниках или документах явление опасное.
Неизвестный
10.11.2006, 12:06
общий
это ответ
Здравствуйте, Зайцев Александр!
Можно 100%. Есть определенные внутренние команды, сейчас не помню ну типа "ЗавершитьРаботуПользователя".
Форма ответа