Имя: Пароль:
1C
1С v8
УстановитьСсылкуНового в управляемой форме.
0 Dionisious
 
05.01.13
12:19
Помогите пожалуйста. Уже весь мозг сломал. Как пользоваться методом УстановитьСсылкуНового в управлемой форме.

Так не работает:

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   
   Узел = РеквизитФормыВЗначение("Объект");
   
   Если Узел.ЭтоНовый() Тогда
       Узел.УстановитьСсылкуНового(ПланыОбмена.Полный.ПолучитьСсылку());
       Ссылка = Узел.ПолучитьСсылкуНового();
   Иначе
       Ссылка = Узел.Ссылка;
   КонецЕсли;
   
   НаборЗаписей = РеквизитФормыВЗначение("ПараметрыОбмена");
   
   Для каждого Запись Из НаборЗаписей Цикл
       
       Запись.Узел = Ссылка;
       
   КонецЦикла;
   
   НаборЗаписей.Записать();
   
   ЗначениеВРеквизитФормы(Узел,"Объект");
   
КонецПроцедуры


Собственно форма узла плана обмена. На нем НаборЗаписей связанного регистра сведений. При записи код отрабатывает но в регистр сведений пишет ссылку на "Объект не найден". Ну в общем не ту ссылку пишет.

Это читал: v8: УстановитьСсылкуНового() и по ссылкам переходил.

Вроде уже все перенес в ПередЗаписьюНаСервере но что то не помогает.

Заранее всем спасибо.
1 acsent
 
05.01.13
12:43
там же есть текущийобъект
2 Dionisious
 
05.01.13
12:57
(1) Что это?
3 Dionisious
 
05.01.13
13:23
Неужели ни кто не знает? Или ни кто не работает?
4 Defender aka LINN
 
05.01.13
13:41
(2) СП знает
(3) Тебе уже ответили
5 Dionisious
 
05.01.13
13:59
(4) Точно. Вот я слепой то блин. Спасибо огромное.

Вот так заработало:

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   
   НаборЗаписей = РеквизитФормыВЗначение("ПараметрыОбмена");
   
   Для каждого Запись Из НаборЗаписей Цикл
       
       Если ТекущийОбъект.ЭтоНовый() Тогда
           Запись.Узел = ТекущийОбъект.ПолучитьСсылкуНового();
       Иначе
           Запись.Узел = ТекущийОбъект.Ссылка;
       КонецЕсли;
       
   КонецЦикла;
   
   НаборЗаписей.Записать();
   
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   
   Если ТекущийОбъект.ЭтоНовый() Тогда
       ТекущийОбъект.УстановитьСсылкуНового(ПланыОбмена.Полный.ПолучитьСсылку());
   КонецЕсли;
   
КонецПроцедуры


Можно конечно все сделать в ПередЗаписьюНаСервере но почему то так кажется методологически правильнее.
6 Defender aka LINN
 
06.01.13
10:56
(5) Ащета в ПриЗаписи объект уже записан
Независимо от того, куда вы едете — это в гору и против ветра!