Имя: Пароль:
1C
1С v8
УстановитьБлокировкуСеансов - почему не работает ?
,
0 ПетяПетькин
 
24.10.11
17:23
Имеем внешнюю обработку:

Блокировка = ПолучитьБлокировкуСеансов();
Блокировка.КодРазрешения = "1";
Блокировка.Начало = ТекущаяДата();
Блокировка.Конец = ТекущаяДата() + 5; //2 минута
Блокировка.Сообщение = "!!";
Блокировка.Установлена = Истина;
УстановитьБлокировкуСеансов(Блокировка);


сейчас захожу в одну файловую базу на локальном компе,  одновременно под двумя пользователями, под одним из них запускаю обработку. и ничего не происходит.
Ни у одного пользователя не завершается программа.
В чем ошибка ?
1 ПетяПетькин
 
24.10.11
17:27
а если шире, стоит задача сделать свой, не типовой, выгон всех пользователей из базы УТ8.1
Типовой не понравился, нужна просто одна кнопка "Завершить работу", при нажатии на которую, выкидывало бы ВСЕХ КРОМЕ пользователя, нажавшего на эту кнопку.

Вот я думаю, если блокировка почему-то не отрабаывает, пользователей не выкидывает, то можно использовать ПрекратитьРаботуСистемы(Ложь)
но как сделать, чтобы эта команда отработала у КАЖДОГО пользователя, кроме текущего????
2 Maxus43
 
24.10.11
17:28
ТекущаяДата() + 5; //2 минута

почему это 2 минута? 5 секунд
3 ПетяПетькин
 
24.10.11
17:29
да это время менялось постоянно, коммент не актуальный !
4 Maxus43
 
24.10.11
17:29
(1) в типовой так и есть, просто интервалы проверки достаточно большие, секунд 30 иль 60 вроде. его надо подпилить просто
5 Maxus43
 
24.10.11
17:30
и главный выгонятор - это консоль всё равно, зависшие и занятые по самы помидоры клиенты не отвалятся программно
6 ПетяПетькин
 
24.10.11
17:32
вот именно что большой!
обработкаОжидания для процедуры ЗавершитьРаботуПользователей - 60 сек
это много
я прально понимаю, что надо в этой обработке ожидания время уменьшить, и все будет ок ?
7 SuperMario
 
24.10.11
17:32
(0) а почему она должна завершаться то?


Управляет блокировкой сеансов с информационной базой.
Если сеансы с информационной базой заблокированы, то с информационной базой невозможно начать новый сеанс, не указав правильный код разрешения.
Может использоваться для выполнения регламентных действий с информационной базой.
8 Maxus43
 
24.10.11
17:32
(6) будет просто чаще проверять
9 ПетяПетькин
 
24.10.11
17:34
(7) это понял, спасибо
а как мне и заблокировать базу для остальных, и выкинуть остальных, КРОМЕ ТЕКУЩЕГО пользователя ?
10 ПетяПетькин
 
24.10.11
17:53
блин, народ, подскажите!!!!
Вот в этой обработке  БлокировкаСоединенийСИнформационнойБазой
есть строка
ПодключитьОбработчикОжидания("ЗавершитьРаботуПользователей", 1);    

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

А как мне сделать так, чтобы у текущего пользователя он не стартовал, а у всех остальных стартовал????
Ошибка? Это не ошибка, это системная функция.