Имя: Пароль:
1C
1С v8
Консоль кластера 8.3.5 "жестко" выгоняет пользователей.
0 Плот
 
14.04.15
07:11
Ребята привет!
Обновились до сабжа, и теперь, консоль жестко выгоняет пользователей, без всяких сообщений, просто закрывает и все, даже не смотря на то что у пользователя может быть открыто модальное окно или имеется не сохраненная инфа. В 8.2 все было аккуратненько.
Подскажите пжл пути решения этой проблемы.
1 ДенисЧ
 
14.04.15
07:16
Это не проблема.
2 Плот
 
14.04.15
07:34
(1) Не понял вашего посыла. Это настраивается?
3 ДенисЧ
 
14.04.15
07:34
(2) Это не является проблемой.
Проблемой является, когда консоль кластера не может выгнать зависшего пользователя.
4 Fish
 
14.04.15
07:36
(2) Емнип, в 8.2 консоль так же работала. Ничего не поменялось.
5 kosts
 
14.04.15
07:36
(0) В свойствах надо вводить датувремя начала выгона и окончания выгона.
6 Плот
 
14.04.15
07:53
(4) Да ну, у меня корректно работала, сначала "матюгалась", потом предлагала сохранить данные. Никого жесткого не выгоняла.
(5) Как без этого? Само собой.
7 Fish
 
14.04.15
08:03
(6) "потом предлагала сохранить данные" - Кому предлагала? Пользователю? А если его на месте нет, то нельзя было выгнать? Что-то не припомню такого поведения.
8 Плот
 
14.04.15
08:20
(7) Если пользователя на месте не было, выгонял принудительно. :-)
9 kosts
 
14.04.15
08:25
Вот код из типовой, глянь, может чем-то поможет

Процедура КонтрольРежимаЗавершенияРаботыПользователей() Экспорт

    // Получим текущее значение параметров блокировки
    ТекущийРежим = СоединенияИБ.ПараметрыБлокировкиСеансов();
    БлокировкаУстановлена = ТекущийРежим.Установлена;
    
    Если НЕ БлокировкаУстановлена Тогда
        Возврат;    
    КонецЕсли;
        
    ВремяНачалаБлокировки = ТекущийРежим.Начало;
    ВремяОкончанияБлокировки = ТекущийРежим.Конец;
    
    ИнтервалПредупреждения    = ТекущийРежим.ИнтервалОжиданияЗавершенияРаботыПользователей;
    ИнтервалЗакрытьСЗапросом  = 0;
    ИнтервалЗакрытьБезЗапроса = - ИнтервалПредупреждения / 5;
    ИнтервалПрекратить        = - ИнтервалПредупреждения / 2.5;
    ТекущийМомент             = ТекущаяДата();
    
    Если ВремяОкончанияБлокировки <> '00010101' И ТекущийМомент > ВремяОкончанияБлокировки Тогда
        Возврат;
    КонецЕсли;
    
    ТекстСообщения = СоединенияИБКлиентСервер.ИзвлечьСообщениеБлокировки(ТекущийРежим.Сообщение);
    
    Если НЕ ЗначениеЗаполнено(ВремяНачалаБлокировки)
     ИЛИ ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалПрекратить Тогда
        
        ПропуститьПредупреждениеПередЗавершениемРаботыСистемы = Истина;
        ЗавершитьРаботуСистемы(Истина, Истина);
        
    ИначеЕсли ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалЗакрытьБезЗапроса Тогда
        
        Предупреждение(НСтр("ru = 'Работа системы завершается.'"), 30);
        ПропуститьПредупреждениеПередЗавершениемРаботыСистемы = Истина;
        ЗавершитьРаботуСистемы(Ложь, Истина);
        
    ИначеЕсли ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалЗакрытьСЗапросом Тогда
        
        Предупреждение(НСтр("ru = 'Работа системы завершается.'"), 30);
        ПропуститьПредупреждениеПередЗавершениемРаботыСистемы = Истина;
        ЗавершитьРаботуСистемы(Истина, Истина);
        
    ИначеЕсли ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалПредупреждения Тогда
        
        ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                           НСтр("ru = 'Работа системы будет завершена в %1.'"),
                           ВремяНачалаБлокировки);
        Предупреждение(ТекстСообщения, 30);
        
    КонецЕсли;
    
КонецПроцедуры
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс