Имя: Пароль:
1C
 
Как правильно программно записать документ?
,
0 evorle145
 
24.05.17
14:48
Штука такая: один пользователь открыл документ и что-то в нем поправил, но еще не записал.
А другой пользователь в это же время пока первый редактирует документ, запустил обработку, в котором этот документ был перезаписан. В результате у первого пользователя при попытке записать  вылазит ошибка... Вопрос: как учесть в обработке, что документ уже редактируется?
1 Джинн
 
24.05.17
14:50
Ответ - никак.
2 NuclearWinter
 
24.05.17
14:55
>Таким образом пессимистическая блокировка гарантирует, что пользователь, начав изменять данные объекта, сможет записать эти изменения в информационную базу.

В то же время, разработчик имеет возможность задействовать рассматриваемый механизм, используя средства встроенного языка. Для того, чтобы установить пессимистическую блокировку объекта, можно использовать метод объекта Заблокировать().
3 Buster007
 
24.05.17
14:57
ЗаблокироватьДанныеДляРедактирования
4 Джинн
 
24.05.17
14:57
(2) Тогда обработка не отработает. Либо одно, либо другое. Но не оба вместе.
5 Buster007
 
24.05.17
14:57
в форме и в обработке вызываешь перед изменением
6 evorle145
 
24.05.17
15:00
(5) Понял! уже пробую. То есть я в обработке пишу Если Попытка
    НовДокумент.Заблокировать();
Исключение
    Предупреждение(НСтр("ru = 'Невозможно заблокировать документ.';"
     + " en = 'Can't lock the document.'"));
КонецПопытки;
7 evorle145
 
24.05.17
15:23
(2) спс! Помогло. Все как надо теперь)
8 Джинн
 
24.05.17
15:29
(7) Дык обработка же не запишет этот документ.
9 Ёпрст
 
24.05.17
15:31
(8) запишет, ибо документ не заблокирован.
10 Ёпрст
 
24.05.17
15:31
он же при открытии дока его сам не заблокировал в коде..
11 Лефмихалыч
 
24.05.17
15:33
(6) у тебя ни чего не изменилось
12 g00d
 
24.05.17
15:34
можно в интерактивном режиме отслеживать изменения версии документа и при изменении обьекта другим пользователем - выполнять прочитать. Можно даже повесить некую форму показывающую изменения и дать возможность пользователю склеить изменения выбрав нужные. Не сложная задача.
13 Ёпрст
 
24.05.17
15:43
(11) да ладно, пусть побудет в неведении :))
озарение оно потом, как правило, приходит
14 evorle145
 
08.06.17
09:48
(11) всмысле?
Тот пользователь, который записывает документ через обработку получает отказ и ждет когда освободят документ.

Или как то лучше можно сделать?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn