Снять пессимистичную блокировку

1. Alexwarsis 03.04.23 17:06 Сейчас в теме
Поставил задачу в одном сеансе при помощи ЗаблокироватьДанныеДляРедактирования(Ссылка,Идентификатор_формы), пытаюсь в другом сеансе снять через РазблокироватьДанныеДляРедактирования(Ссылка). И разблокировать проходит но на блокировке я падаю т.к. объект заблокирован, что я делаю не так? (произвольная форма на ней редактируются два объекта поэтому блокировкой по умолчанию пользоваться не могу)
Как снять пессимистическу блокировку в другом сеансе, вернее даже её перехватить?
В Типовых формах через меню это происходит свободно, или же через Заблокироватьданныеформы, если есть необходимость только в основном реквизите. В справке указано что такое должно работать для сохраняемых данных но тесты показали что это не так
По теме из базы знаний
Найденные решения
13. Alexwarsis 12.04.23 09:38 Сейчас в теме
Никак у наших пользователей нет необходимости разблокировать объект заблокированный другим пользователём. или кусок регистра убивайте сесию или делайте "недоформу" и через неё и основной реквизит программно зовите
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1826630 03.04.23 17:41 Сейчас в теме
Я, водитель, пытаюсь включить первую переднюю передачу в мерседесе. А пассажир пытается включить заднюю передачу.
Но че-то мерс в итоге никуда не едет.(1)
что я делаю не так?
3. user1880116 03.04.23 19:41 Сейчас в теме
(1)
в другом сеансе снять
Да ты же моя прелесть!
4. Alexwarsis 04.04.23 09:11 Сейчас в теме
Конкретная ситуация был создан объект в сеансе 1 и за компьютером один человек ушел домой и пытается отредактировать его из дома из сеанса 2 и компьютера 2. заведомо понятно что будет потеряны изменения сделанные за компьютером 1. Платформенный интерфейс разрешает это сделать а я спрашиваю как сделать это программно.
Потому что каждый раз в подобной ситуации писать кому-то из Администроров это бред что они завершили сеанс. (да в идеале было бы не закрывать закрывать просто сеанс/блокировку, но это в идеале)
5. starik-2005 3039 04.04.23 09:52 Сейчас в теме
(4)
как сделать это программно
Завершение сеансов пользователей? Есть даже такая кнопка в типовых - можно посмотреть глазками.
6. Stref75 04.04.23 10:52 Сейчас в теме
(4)
При этом блокировка данных для редактирования не запрещает запись заблокированных данных в других пользовательских сеансах (или в других экземплярах объекта в этом же сеансе), а лишь не позволяет нескольким объектам одновременно установить блокировку одних и тех же данных.
- с ИТС
8. Alexwarsis 04.04.23 17:19 Сейчас в теме
(6)
кировка данных для редактирования не запрещает запись заблокированных данных в других пользовательских сеансах (или в других экземплярах объекта в этом же сеансе), а лишь не позволяет нескольким объектам одновременно установить блокировку одних и тех же данных.


Про это я знаю. но есть типовое поведение для основного реквизита. если пользователь1 начал редактировать, а потом это попытается сделать пользователь2 то второй пользователь заберет блокировку у пользователя1. и я спрашиваю как программно этого добится. причем когда у тебя один реквизит такой это делается через метод формы заблокироватьданныеформы с клиента и все хорошо. а вот если их два то такое уже не работает.
Можете проверить на любом справочнике и посмотреть через консоль сервера или RAS в блокировки
7. user1826630 04.04.23 11:23 Сейчас в теме
(4)
а я спрашиваю как сделать это программно.
Читаем раздел СП "Администрирование сервера 1С"
9. Alexwarsis 04.04.23 17:21 Сейчас в теме
(7) Не идя на сервер через RAS или ком это делает платформа по умолчанию. вопрос в том как не прибагая к данному перехватить блокировку
10. user1826630 04.04.23 17:29 Сейчас в теме
(9)
это делает платформа по умолчанию
ну-ну... так надо завершить сеанс или "перехватить блокировку"?
11. Alexwarsis 04.04.23 17:46 Сейчас в теме
(10)
И разблокировать проходит

"перехватить блокировку" именно второе про то что сеанс можно убить через RAS сделать удобно или менее удобно зато проще через COM я знаю. Вопрос именно в перехвате
12. Alexwarsis 11.04.23 12:57 Сейчас в теме
ExternalObject.ForceUnlock(bCanUseECS)... интересно а как это сделать без этого объекта, видимо никак вытащил из стандартных форм "ObjectBlocking.lf"
ну или как его получить
13. Alexwarsis 12.04.23 09:38 Сейчас в теме
Никак у наших пользователей нет необходимости разблокировать объект заблокированный другим пользователём. или кусок регистра убивайте сесию или делайте "недоформу" и через неё и основной реквизит программно зовите
14. user1880116 12.04.23 19:30 Сейчас в теме
Итого:
(1)
Поставил задачу

(13)
у наших пользователей нет необходимости разблокировать объект


Весна в этом году сочная.
15. пользователь 12.04.23 20:33
Сообщение было скрыто модератором.
...
16. Alexwarsis 13.04.23 13:03 Сейчас в теме
(14) этот ответ 1С а не мой:
Сделать это средствами встроенного языка не получится, это функционал платформы. Да и не вижу в этом смысла, для чего дублировать то, что уже сделано в платформе?
. Так что это был сарказм. Видимо непонятный для тех кто не общается со специалистами 1С... когда на 60% вопросов получишь такой ответ.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот