|
Как работает ЗаблокироватьДанныеДляРедактирования()? | ☑ | ||
---|---|---|---|---|
0
D_E_S_131
13.09.21
✎
22:28
|
В конфигурации имеется некий документ "Док1" и пара регистров сведений ("РС1" и "РС2"). В каждом регистре есть измерение со ссылкой на Док1. Делаю обработку, в которой выбираю ссылку Док1 и блокирую данные в РС1 по ключу с указанием УИД формы обработки. В другом сеансе пытаюсь так же заблокировать данные по ключу со ссылкой на тот же документ, но уже ДРУГОГО регистра РС2. Получаю исключение "Данные заблокированы в другом сеансе..."! Как же так, это же вообще разные объекты данных, хоть и имеют ссылку на один документ? Или я что не так понимаю в этом методе??
Код блокировки: Процедура Тест1НаСервере() КлючРС = РегистрыСведений.РС1.СоздатьКлючЗаписи(Новый Структура("Док", ВыбДок)); Попытка Если БлокировкаФормы Тогда ЗаблокироватьДанныеДляРедактирования(КлючРС,, УникальныйИдентификатор); Иначе ЗаблокироватьДанныеДляРедактирования(КлючРС); КонецЕсли; Исключение СтрИнфо = СтрШаблон("РС №1 уже заблокирован! %1 (%2)", КтоЗаблокировалФорму(ОписаниеОшибки()), УникальныйИдентификатор); Сообщить(СтрИнфо , СтатусСообщения.ОченьВажное); Отказ = Истина; Возврат; КонецПопытки; КонецПроцедуры P.S. Если заблокировать в одном сеансе данные РС1 или РС2 по ключу, а в другом сеансе блокировать саму ссылку на Док1, то все работает корректно. P.P.S. Проверялось на платформах 8.3.15.1830 и 8.3.17.1851. |
|||
1
D_E_S_131
13.09.21
✎
22:30
|
Если не указывать УИД формы, то по ключу регистра сведений не блокируется ничего вообще.
|
|||
2
D_E_S_131
14.09.21
✎
18:26
|
Неужели никто не использует пессимистичные блокировки?
|
|||
3
Ёпрст
14.09.21
✎
18:37
|
||||
4
H A D G E H O G s
14.09.21
✎
18:38
|
Скинь cf-шник
|
|||
5
D_E_S_131
14.09.21
✎
19:04
|
||||
6
D_E_S_131
14.09.21
✎
19:05
|
(3) В статье как нарочно избегают примеров с блокировкой набора записей РС по ключу. По ссылке на объект все блокируется нормально.
|
|||
7
H A D G E H O G s
14.09.21
✎
19:12
|
Да, походу баг платформы
|
|||
8
D_E_S_131
14.09.21
✎
19:18
|
Наверное если открыть исходники, то в блоке, где должны обрабатываться РС, написано //todo :)
|
|||
9
Ёпрст
14.09.21
✎
19:30
|
(5)
у меня так: если не указывать ид формы в методе, то не блокируется ничего |
|||
10
Ёпрст
14.09.21
✎
19:30
|
если указать ид формы - то да, есть эффект
|
|||
11
Ёпрст
14.09.21
✎
19:31
|
8.3.18.1334 без режима совместимости
|
|||
12
Вафель
14.09.21
✎
19:40
|
Если не указывать ид формы, то блокируется вроде только до конца процедуры
|
|||
13
Ёпрст
14.09.21
✎
19:42
|
(12) да, есть такое.
И для ключа РС, по-ходу тупо блокирует все объекты этого ключа. |
|||
14
D_E_S_131
14.09.21
✎
19:45
|
Тут бы попробовать сымитировать через "Основной реквизит формы", т.к. по идее кодом должно работать так же как это отработало бы на форме, но не понятно какого типа должен быть этот "основной реквизит". "Набор записей" вроде как является типом Объекта, когда открываешь на редактирование из списка какую-то запись.
Хотя следуя этой логике, может нужно не ключ РС передавать, а набор записей с установленным отбором. |
|||
15
D_E_S_131
14.09.21
✎
19:51
|
Не, набор записей не дает передать в процедуру ЗаблокироватьДанныеДляРедактирования().
|
|||
16
Вафель
14.09.21
✎
20:01
|
(13) до конца процедуры нормально блокируется. У меня так от повторных вызовов вебсервисов защита
|
|||
17
Гений 1С
гуру
14.09.21
✎
21:51
|
(0) вот я ничего не знаю про управляемые блокировки, но это не мешает мне быть высококалифицированным и востребованным специалистом.
|
|||
18
acanta
14.09.21
✎
21:57
|
(17) вообще бывают такие специалисты, которым не поможет даже знание про управляемые блокировки.
|
|||
19
Олеша Попович
20.09.21
✎
16:54
|
(0) Создал свою базу, воспроизвел, отправил на V8 https://regevent.1c.ru/sbo/tp/fd8cbf71-1a02-11ec-815d-0050569f2415/info/
|
|||
20
Олеша Попович
20.09.21
✎
16:55
|
Попробую пройти квест с регистрацией ошибки, бгг
|
|||
21
Олеша Попович
27.09.21
✎
16:02
|
Зарегистрирована ошибка платформы 10234370.
|
|||
22
lodger
27.09.21
✎
16:52
|
(19)
Номер обращения: HL-389714 Дата обращения: 20.09.2021 14:07:51 Тема: Метод ЗаблокироватьДанныеДляРедактирования() по ключу записи блокирует также запись другого регистра сведений Статус обращения: Ожидание инициатора Вам было отправлено письмо, мы ожидаем от Вас ответ. Если ответа не будет в течении 4 дней обращение будет закрыто. Дата последнего изменения: 27.09.2021 15:34:31 |
|||
23
lodger
27.09.21
✎
16:54
|
при этом https://bugboard.v8.1c.ru/error/000114847
Код ошибки: 10234370 Код(ы) обращения: HL-389714 у них медленная синхронизация какая-то. |
|||
24
Перцовый баллон
30.12.21
✎
16:37
|
Исправлена в выпущенной версии (8.3.18.1741, 8.3.19.1467, 8.3.20.1674, 8.3.21.1141)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |