При записи документа, должен изменяться реквизит другого документа
☑
0
art93
29.07.15
✎
11:23
По кнопке в форме документа "Заказ" создаётся форма документа "Отчет"(сам документ не создаётся и не записан ещё), заполняются поля формы. Нужно реализовать, чтобы при записи документа "Отчет" изменился реквизит "ОтчетПоЗаказу"(тип:Документ.Отчет") документа "Заказ"(Ссылка на Документ заказ хранится в реквизите "ДокументОснование")
Попробовал в ФормеДокумента "Отчет":
&НаСервере
Процедура ПослеЗаписи(ПараметрыЗаписи)
Объект.ДокументОснование.ПолучитьОбъект().ОтчетПоЗаказу = Объект.Ссылка;
Объект.ДокументОснование.ПолучитьОбъект().Записать();
КонецПроцедуры
1
mzelensky
29.07.15
✎
11:36
Никогда так не делай
2
hhhh
29.07.15
✎
11:41
(0) два раза получаешь объект. Это чудишь? Или глубокий смысл есть в полкчении двух экземпляров объектов?
3
Mifka
29.07.15
✎
11:44
переведу что написали
&НаСервере
Процедура ПослеЗаписи(ПараметрыЗаписи)
Док =Объект.ДокументОснование.ПолучитьОбъект();
Док.ОтчетПоЗаказу = Объект.Ссылка;
Док.Записать();
КонецПроцедуры
4
art93
29.07.15
✎
11:47
Спасибо большое! Извините за глупые вопросы, учусь только. Переписываю из УТ10.3 в УТ11+CRM.
5
Smallrat
29.07.15
✎
12:04
(3) а если запись не прокатит?
я б еще добавил
Док.ОбменДанными.Загрузка = Истина;
6
mzelensky
29.07.15
✎
12:39
Пипец насоветовали...а никто про блокировки не подумал? Про наложения версий объекта?
7
art93
29.07.15
✎
13:57
(3) Такой вариант не работает.
(5) А куда стоит добавить эту часть?
(6) Объясните пожалуйста, в чем проблема с блокировками?
8
hhhh
29.07.15
✎
14:04
(7) всё работает. Просто на форме заказа у вас ведь старая информация, она как была так и осталась. Обновить ее вы забыли. ТО есть в базе заказ уже записался, но чтобы посмотреть, что там, нужно его прочитать из базы.
9
Smallrat
29.07.15
✎
14:16
(7) перед Док.Записать()
10
art93
29.07.15
✎
14:23
Вот так заработало:
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПослеЗаписиНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере()
Док =Объект.ДокументОснование.ПолучитьОбъект();
Док.ОтчетПоЗаказу = Объект.Ссылка;
Док.Записать();
КонецПроцедуры
А как обновить поле формы? пока не решил нужно ли это будет или форма будет закрываться, но думаю пригодится
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.