|   |   | 
| 
 | Как запретить одновременное редактирование одного док-та двумя пользователями? | ☑ | ||
|---|---|---|---|---|
| 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). Еще раз всем спасибо.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |