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