|
Нужна помощь по управляемым блокировкам | ☑ | ||
---|---|---|---|---|
0
Пип Пибип
26.08.13
✎
15:36
|
День добрый, господа
Есть база УТ 10.3, сильно измененная. Есть платформа 8.2.17.153 Есть документ ПеремещениеТоваров. У него есть табличная часть Товары. Есть некая обработка с некой формой. На ней отображаются данные из табличных частей Товары сразу нескольких документов ПеремещениеТоваров. На этой форме данные можно изменить, нажать на форме кнопку Записать - и данные с формы попадут в тобличные части соответствующих докуметов Внимание, вопрос Как через управляемые блокировки обеспечить многопользовательскую работу при этом? Пользователи могут одновременно открыть и эту форму и документы, которые на форме выведены. Планирую делать так: 1) Режим управления блокировкой данных в транзакции у документа ПеремещениеТоваров ставлю Управляемый 2) Режим управления блокировкой данных в транзакции для регистров документа - не трогаю (стоит Автоматический, регистов более 10) 3) При взведении флага Модифицированность на форме обработки, создаю объект БлокировкаДанных 4) Дальше пока не придумал - добавляю элемент блокировки, что-то вроде этого: ЭлементБлокировки = Блокировка.Добавить("ПеремещениеТоваров.Товары");
Как потом наложить условие-ограничение, что бы была заблокирована табличная часть именно определенного документа? 5) При открытии пользователем формы документа ПеремещениеТоваров, накладываю аналогичную блокировку? Через объектную блокировку (методы Заблокировать(), Заблокирован() у объекта документа) решить задачу не удалось - как я понял, они работают только в рамках одного пользовательского сеанса - правильно ли я понял? |
|||
1
Fragster
модератор
26.08.13
✎
15:38
|
не взлетит - управляемые блокировки только в пределах транзакции
|
|||
2
Мебиус
26.08.13
✎
15:40
|
ТС, блокировки здесь вообще не в тему, а в указанном виде задачу решить невозможно в принципе
|
|||
3
Пип Пибип
26.08.13
✎
15:41
|
если буду записывать все документы в одной явной транзации - это поможет?
|
|||
4
Пип Пибип
26.08.13
✎
15:42
|
(1), (2) верю обоим джентельменам. Пичаль.
|
|||
5
Пип Пибип
26.08.13
✎
15:47
|
Подкину еще - на вскидку, какие могут быть сделаны заменители/припарки в моем случае? Может, кто-либо сталкивался с таким, на практике
Просто сказать руководству "нет", без объяснения почему нельзя сделать так или чем можно заменить - недостаточно |
|||
6
Жан Пердежон
26.08.13
✎
15:48
|
(5) скажи руководству, что и так все норм работает
|
|||
7
ptiz
26.08.13
✎
15:52
|
Заблокировать() - работает замечательно.
Если в одном сеансе сделать .Заблокировать(), то в другом .Заблокировать() уже выдаст ошибку. |
|||
8
z01
26.08.13
✎
15:53
|
"На ней отображаются данные из табличных частей Товары сразу нескольких документов ПеремещениеТоваров. На этой форме данные можно изменить, нажать на форме кнопку Записать - и данные с формы попадут в тобличные части соответствующих докуметов
" достаточно заблокировать документ в момент когда "На этой форме данные можно изменить". |
|||
9
DimGan
26.08.13
✎
15:57
|
Так то еще возникает проблема обновления данных в других открытых формах. Тут как бы нужно запрещать сам вывод если в одной из форм данные уже загружены.
|
|||
10
DimGan
26.08.13
✎
15:59
|
(9)+ т.е. необходимо где то хранить информацию об открытых ТЧ, или использовать версии в этих ТЧ
|
|||
11
Жан Пердежон
26.08.13
✎
16:06
|
(9) ничего не надо, другим пользователям сохранить не даст
|
|||
12
z01
26.08.13
✎
16:06
|
(9)а разве в типовом варианте данные документа на форме обновляются если их меняет тот кто первый открыл? )))
|
|||
13
tushich
26.08.13
✎
16:11
|
Объектные блокировки как раз в тему!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |