Добрый день! Помогите разобраться. Не могу понять как работают методы ЗаблокироватьДанныеДляРедактирования() и РазблокироватьДанныеДляРедактирования() Платформа 8.3.19.1467
Есть документ Заказ поставщику у которого есть реквизит Заказ покупателя. После записи Заказа поставщику (режим проведение) на клиенте вызывается серверный метод который изменяет в Заказе покупателя значение одного реквизита (Дата доставки). Но перед тем как поменять устанавливается метод ЗаблокироватьДанныеДляРедактирования().
В чем собственно вопрос, если просто открыть форму заказа покупателя из заказа поставщика и провести заказ поставщику никакой ошибки блокировки данных нет и дата доставки (в заказе покупателя) успешно меняется. Если же в той же открытой форме заказа покупателя очистить только что заполненный реквизит дата доставки и записать документ не закрывая форму, то перейдя в заказ поставщику и при попытке снова провести уже возникает ошибка блокировки данных. Мне не понятно почему, так как форма заказа покупателя не модифицирована (записана).
Фрагмент:
в ИдентификаторФормы передаю УИД формы заказа поставщику.
Попытка
ОбъектДокумента = ДокументЗаказПокупателя.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ДокументЗаказПокупателя, , ИдентификаторФормы);
Заблокировано = Истина;
ОбъектДокумента.ОжидаемаяДатаВручения = КлючИЗначение.Значение + ДеньВСекундах;
ОбъектДокумента.Записать(РежимЗаписиДокумента.Запись);
РазблокироватьДанныеДляРедактирования(, ИдентификаторФормы);
Исключение
Если Заблокировано Тогда
РазблокироватьДанныеДляРедактирования(, ИдентификаторФормы);
КонецЕсли;
КонецПопытки
(0) Открытие формы "Заказ покупателя" пользователем не устанавливает блокировку на документ, поэтому твой "Заказ Поставщику" спокойно меняет твою дату.
Документ "Заказ покупателя" заблокируется только если пользователь начнет что то редактировать. Снимется блокировка после закрытия формы.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс