|
Блокировка объекта при работе с ним Fish, Прохожий, spiller26, diamkms, Сергиус, reg0303, okmail, Жан Пердежон, ndrv, JohnGilbert, Hawk_1c, Fedor-1971, rozer76, elka302, PuhUfa, igouranga, dergreche, ivanov-i-i, 2S
| ☑ | ||
|---|---|---|---|---|
|
0
ТДК
01.07.26
✎
17:33
|
В БД присутствует ряд объектов требующих изоляции от изменения в других сеансах.
В процедуре прописал ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка, , ЭтаФорма.УникальныйИдентификатор) В целом это решило проблему. Однако, ряд случаев портящих жизнь остался. При выключении электричества, перезагрузки компьютера, принудительного завершения программы с открытым окном, сеанс пользователя в консоли администрирования висит и объект остается заблокированным. Самостоятельно он не всегда разблокируется, приходится подключаться и выкидывать из консоли. Существует ли красивое, программное и простое решение для такой задачи? В 7.7 блокировка формы/объекта была сразу пессимистичной и подобных кейсов не возникало. Платформа 1С:Предприятие 8.3 (8.3.27.1606) |
|||
|
1
Волшебник
01.07.26
✎
17:31
|
>> Существует ли красивое и простое решение для такой задачи?
Не делать это: выключении электричества, перезагрузки компьютера, принудительного завершения программы |
|||
|
2
Garykom
гуру
01.07.26
✎
18:05
|
(0) РегЗадание напиши свое
Которое будет стартовать после "выключении электричества, перезагрузки компьютера, принудительного завершения программы с открытым окном" |
|||
|
3
ТДК
01.07.26
✎
18:06
|
(2) Мысль интересная, а как рег.задание узнает, что сеанс в консоли зависший?
|
|||
|
4
X Leshiy
01.07.26
✎
18:18
|
Администрирование - Параметры информационной базы - Прочие - Время завершения спящего сенаса (в секундах).
По умолчанию там сутки, поставь меньше. |
|||
|
5
Garykom
гуру
01.07.26
✎
18:35
|
(3) Пофиг на зависший сеанс
Используй свой перечень объектов с датами захвата - если прошло слишком много времени - разблокируй Ну типа нехрен захватывать объекты более чем на 2 часа |
|||
|
6
ДенисСмирнов
01.07.26
✎
19:22
|
можно ставить номер сеанса/логин рядом с признаком блокировки. если сеанса нет, то блокировку снимать. ну и плюс таймауты - захватывать объекты на два часа действительно нефиг.
|
|||
|
7
timurhv
01.07.26
✎
20:04
|
(6) Поддерживаю, не забыть повесить это на рег.отчетность. Пускай главбух ночью в последний день сдачи радуется)
|
|||
|
8
ТДК
22.07.26
✎
16:07
|
Вопрос не хохмы ради. Каким образом на кластере можно определить, что клиентский сеанс не доступен и что в консоли приложения его можно удалить?
|
|||
|
9
Altone
23.07.26
✎
15:08
|
(8) создай регистр. при блокировке объекта - новая запись в регистр. при разблокировке - удаляй запись .
при старте сеанса (или регламентным по записям спустя условно 30 секунд от старта блокировки), пробегись по записям регистра и разблокируй. |
|||
|
10
vicof
24.07.26
✎
16:58
|
+(9) И на регистр не забудь блокировки накладывать и снимать)
|
|||
|
11
Dirk Diggler
25.07.26
✎
21:49
|
(9) так же делаю. В регистр пишу кроме объекта еще номер сеанса с временем старта как уникальный отпечаток - блокировку должен снять тот же сеанс, а если при попытке писать блокировка стоит, а сеанса уже нет блокировка удаляется принудительно
|
|||
|
12
Dirk Diggler
25.07.26
✎
21:50
|
(7) админ ночью сотни форм одновременно открывает?
|
|||
|
13
Прохожий
27.07.26
✎
14:15
|
(8) Вроде сервер клиентов не опрашивает, наоборот как-будто. Но можно подключить обработчик ожидания бесконечный и сеансом каждые 5 минут писать в РегистрСведений.КтоЖивой.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |