Имя: Пароль:
1C
1С v8
Блокировка данных для редактирования
0 DmitrYY
 
13.05.22
11:20
Добрый день! Помогите разобраться. Не могу понять как работают методы ЗаблокироватьДанныеДляРедактирования() и РазблокироватьДанныеДляРедактирования() Платформа 8.3.19.1467

Есть документ Заказ поставщику у которого есть реквизит Заказ покупателя. После записи Заказа поставщику (режим проведение) на клиенте вызывается серверный метод который изменяет в Заказе покупателя значение одного реквизита (Дата доставки). Но перед тем как поменять устанавливается метод ЗаблокироватьДанныеДляРедактирования().

В чем собственно вопрос, если просто открыть форму заказа покупателя из заказа поставщика и провести заказ поставщику никакой ошибки блокировки данных нет и дата доставки (в заказе покупателя) успешно меняется. Если же в той же открытой форме заказа покупателя очистить только что заполненный реквизит дата доставки и записать документ не закрывая форму, то перейдя в заказ поставщику и при попытке снова провести уже возникает ошибка блокировки данных. Мне не понятно почему, так как форма заказа покупателя не модифицирована (записана).

Фрагмент:

в ИдентификаторФормы передаю УИД формы заказа поставщику.

Попытка
ОбъектДокумента = ДокументЗаказПокупателя.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ДокументЗаказПокупателя, , ИдентификаторФормы);
Заблокировано = Истина;
ОбъектДокумента.ОжидаемаяДатаВручения = КлючИЗначение.Значение + ДеньВСекундах;
ОбъектДокумента.Записать(РежимЗаписиДокумента.Запись);
РазблокироватьДанныеДляРедактирования(, ИдентификаторФормы);
Исключение
Если Заблокировано Тогда
  РазблокироватьДанныеДляРедактирования(, ИдентификаторФормы);
КонецЕсли;
КонецПопытки
1 Йохохо
 
13.05.22
11:37
платформенные методы учтите, пессимистическая и оптимистическая блокировки
2 lubitelxml
 
13.05.22
11:39
Вынесите значение Даты доставки в РС, и при открытии документа показывайте, тогда не придется программно при проведении другой документ менять
3 DmitrYY
 
13.05.22
11:39
(2) это не решение проблемы, спасибо за ответ
4 PuhUfa
 
13.05.22
11:48
(0) Открытие формы "Заказ покупателя" пользователем не устанавливает блокировку на документ, поэтому твой "Заказ Поставщику" спокойно меняет твою дату.
Документ "Заказ покупателя" заблокируется только если пользователь начнет что то редактировать. Снимется блокировка после закрытия формы.
5 OldCondom
 
13.05.22
13:28
изменилась версия объекта документа "заказ поставщику", оптимистическая блокировка.
все в (1).
https://its.1c.ru/db/v839doc#bookmark:dev:TI000000522
6 OldCondom
 
13.05.22
13:28
ой, заказ покупателя
7 DmitrYY
 
13.05.22
14:23
Спасибо за помощь!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс