Имя: Пароль:
1C
 
Почему не работает завершение пользователей при установке блокировки начала сеансов?
0 agent-J
 
21.10.09
15:40
Сообствено сабж.

Ставлю в режиме предприятие "Сервис - Управление пользователями и доступом - Завершение работы пользователей" и "Блокировка установки соединений включена".
Но текущие сеансы не завершает.
Как вообще корректно завершить сеансы пользователей?
1 agent-J
 
21.10.09
15:44
нашел этот топик: v8: не работает установка блокировки соединений ИБ
ответа там так и не было....
2 golden-pack
 
21.10.09
15:51
Зачем корректно ? :) Просто выкинуть )
3 agent-J
 
21.10.09
15:55
возмущаются:)
4 golden-pack
 
21.10.09
15:56
Я обычно делаю так - через винду осылаю сообщение - типы выйдите из базы через 10 минут - а наглецов выкидываю )
5 agent-J
 
21.10.09
15:58
А если наглец финдиректор заказчика?
И вообще, зачем все усложнять, если есть штатный механизм.
Я так понимаю от константы "РежимЗавершенияРаботыПользователей" отказались как раз в пользу указанной выше механизма.
Значит он должен как то работать.
6 golden-pack
 
21.10.09
16:03
(5) >>А если наглец финдиректор заказчика? -> не вижу разницы. Конечно есть неадекватные люди ...
7 agent-J
 
21.10.09
16:16
anyway, топик я стартовал с целью разобратся почему не работает механизм, а не обсуждать адекватность пользователей.
Конструктивные мысли по сабжу будут?
8 GenV
 
21.10.09
16:50
(0) Файловая? Смотрел как работает код завершения?
9 agent-J
 
21.10.09
17:31
Серверная.
я думал это на уровне платформы реализовано.
хм. Сейчас вот посмотрел:

   # Если Клиент Тогда            
       Если УстановитьБлокировкуСоединений Тогда

           ОтключитьОбработчикОжидания("КонтрольРежимаЗавершенияРаботыПользователей");
           ПодключитьОбработчикОжидания("ЗавершитьРаботуПользователей", 60);    
       КонецЕсли;
   # КонецЕсли

   // параметры блокировки
   Блокировка = Новый БлокировкаУстановкиСоединений;
   
   Блокировка.Начало            = НачалоБлокировки;
   Блокировка.Конец              = ОкончаниеБлокировки;
   Блокировка.Сообщение        = Сообщение;
   Блокировка.Установлена        = УстановитьБлокировкуСоединений;
   Блокировка.КодРазрешения    = КодРазрешения;    
   
   // установка блокировки соединений
   УстановитьБлокировкуУстановкиСоединений(Блокировка)

Сейчас попробую отладчиком отловить что у нас в ЗавершитьРаботуПользователей() происходит.
10 agent-J
 
21.10.09
19:42
итак локализовал проблему:

она в процедуре УправлениеСоединениямиИБ.ПолучитьАктивныеСоединенияИБ(...)

               // Получаем массив соединений с ИБ
               Connections = ConnectToWorkProcess.GetInfoBaseConnections(InfoBase);
               Для Каждого Connection Из Connections Цикл
                   Если НЕ ВсеКромеТекущего ИЛИ (НомерСоединенияИнформационнойБазы() <> connection.ConnID) Тогда
                       Результат.Соединения.Добавить(connection);
                   КонецЕсли;
               КонецЦикла;

нет прав на получение списка соединений методом GetInfoBaseConnections.
Все права назначены. Возможно на 8.2 как то отличается работа этого метода.
AdBlock убивает бесплатный контент. 1Сергей