|
Как запретить одновременное редактирование одного док-та двумя пользователями? | ☑ | ||
---|---|---|---|---|
0
Jackman
08.02.12
✎
20:14
|
Как запретить одновременное редактирование одного и того же док-та двумя пользователями? Т.е. один пользователь зашел в документ, сидит тупит, другой юзер зашел, быстро изменил и вышел, потом первый раздуплился, начал что-то менять, но сохранить не может, т.к. его версия неактуальна.
|
|||
1
mirosh
08.02.12
✎
20:15
|
(0) управляемые блокировки, это целая наука.
|
|||
2
rs_trade
08.02.12
✎
20:15
|
(0) при открытии устанавливать пессимистическую блокировку
|
|||
3
Jackman
08.02.12
✎
20:17
|
(2) Чуть подробнее, плиз.
|
|||
4
МЮЛЛЕР
08.02.12
✎
20:18
|
(0) Как вариант, устанавливай флаг модификации при открытии в подписке на событие
|
|||
5
rs_trade
08.02.12
✎
20:19
|
(3) смотри СП, Заблокировать() Но лучше наверное юзеров работать научить.
|
|||
6
МЮЛЛЕР
08.02.12
✎
20:21
|
(5) ппц... ну и знания у вас...
|
|||
7
Шапокляк
08.02.12
✎
20:22
|
(6) а можете поподробнее - чем вас такой подход не устраивает?
|
|||
8
МЮЛЛЕР
08.02.12
✎
20:23
|
+(4) Или кнопку сделай "Захватить документ" по такому же принципу
|
|||
9
МЮЛЛЕР
08.02.12
✎
20:24
|
(7) в 8.2 метод Заблокировать() используется для временной блокировки объекта в процессе выполнения одной и той же процедуры или функции в которой надо гарантировать неизменность изменения объекта из других мест этой же процедуры
|
|||
10
mvgfirst
08.02.12
✎
20:27
|
(9) А это откуда значния?
Я вот в СП такое прочитал: Синтаксис: Заблокировать() Описание: Выполняет блокировку объекта от изменения другими режимами или пользователями. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
11
rs_trade
08.02.12
✎
20:28
|
(9) откуда это?
|
|||
12
МЮЛЛЕР
08.02.12
✎
20:29
|
(11) из СП
|
|||
13
Шапокляк
08.02.12
✎
20:33
|
(9)
Процедура ПриОткрытии() Попытка ЭтотОбъект.Заблокировать(); Исключение ЭтаФорма.ТолькоПросмотр=Истина; КонецПопытки; ну вот я так делаю и нет проблем. И в СП 8.2. ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) Заблокировать (Lock) Синтаксис: Заблокировать() Описание: Выполняет блокировку объекта от изменения другими режимами или пользователями. Доступность: Сервер, толстый клиент, внешнее соединение. Пример: Попытка НовДокумент.Заблокировать(); Исключение Текст = "ru = ""Невозможно заблокировать документ."";" + " en = ""Can't lock the document."""; Предупреждение(НСтр(Текст)); КонецПопытки; А у вас откуда такой СП? |
|||
14
МЮЛЛЕР
08.02.12
✎
20:35
|
(10)
завтра еще раз методичку Гончарова почитаю, самому интересно. |
|||
15
МЮЛЛЕР
08.02.12
✎
20:36
|
+(14) там пример есть, может чего не догнал
|
|||
16
МЮЛЛЕР
08.02.12
✎
20:40
|
(15) насколько помню, Гончаров позиционирует него именно так, как в (9) написал
|
|||
17
МЮЛЛЕР
08.02.12
✎
20:42
|
+(16)
Там пример был типа: Объект1 = ОбъектВася; Объект2 = ОбъектВася; Объект1.Заблокировать(); Объект2.ЗАписать() - записывает Объект1.Записать() - не даст. |
|||
18
Jackman
08.02.12
✎
20:43
|
Спасибо, попробую через Заблокировать().
|
|||
19
МЮЛЛЕР
08.02.12
✎
20:44
|
(18) отпишись, интересно
|
|||
20
Jackman
08.02.12
✎
20:56
|
(19) Всё получилось, делал как в (13). Еще раз всем спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |