Имя: Пароль:
1C
1С v8
Получить ссылку до записи документа
0 ils108
 
05.09.16
07:27
Добра всем!
Ситуация следующая. Создаю программно элемент номенклатуры. При этом заполняю единицу хранения остатков. Для этого программно создаю элемент справочника единицы измерения, в котором в качестве владельца мне бы надо указать ссылку на элемент номенклатуру, который я еще не записал и там ссылка пустая.
как-то это можно сделать без двойной записи справочника номенклатуры?
1 zak555
 
05.09.16
07:33
ПолучитьСсылкуНового()
2 ils108
 
05.09.16
07:34
(1) во, спасибо, знал, что под эту задачу должен быть метод
3 ils108
 
05.09.16
08:03
интересно, что
НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(УИД);

выдает, что объект не найден. может  я как-то неправильно понимаю этот метод?) он же должен формировать новую уникальную ссылку, чтобы еще потом присвоить элементу справочника, например
4 Jokero
 
05.09.16
08:34
УстановитьСсылкуНового(<Ссылка>)

(3) Судя по СП в 1С сами не особо въехали в этот механизм))
5 ils108
 
05.09.16
08:43
(4) все говорят о том, что работает следующим образом

СсылкаНового = Документы.РеализацияТоваровУслуг.ПолучитьСсылку();
УстановитьСсылкуНового(<Ссылка>).
НоваяРеализация.УстановитьСсылкуНового(СсылкаНового);
СсылкаНовойРеализации = НоваяРеализация.ПолучитьСсылкуНового();

но у меня ругается.
битую ссылку получает как я понимаю. а вот что с ней делать теперь непонимаю)
6 Mankubus
 
05.09.16
08:50
(5)

Книга знаний: Использование ссылки нового объекта

            СсылкаНаОбъект = Документы.РеализацияТоваровУслуг.ПолучитьСсылку();
            НоваяРеализация.УстановитьСсылкуНового(СсылкаНаОбъект);

СсылкаНовойРеализации = НоваяРеализация.Ссылка;
7 ovrfox
 
05.09.16
09:06
(5) Ты можешь использовать ссылку для назначения родителя или владельца или ссылки на новый элемент из другого объекта, но до записи ты не можешь обращаться по этой ссылке.
Вообще механизм лишний, т.к. двойная запись не так и плоха. Говорят , что в 8.3.8 объект при повторной записи не перезаписывает табличные части без необходимости.
А номенклатуру и единицу измерения желательно записывать в одной транзакции, не думаю, что даже тысяча записей одного и того же элемента в одной транзакции займет существенный промежуток времени.
8 newbling
 
05.09.16
09:59
(7) Вообще механизм лишний

А если ты решишь не записывать потом по ходу, то удалять?
9 ils108
 
05.09.16
10:16
(7) супер, мне это и нужно. назначить владельца элемента справочника. делаю все как по книге знаний описано в (6)
УИД = Новый УникальныйИдентификатор;
НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(УИД);
НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
НоваяНоменклатура.УстановитьСсылкуНового(НоваяСсылка);
НайденнаяЕдиницаОбъект.Владелец = НоваяНоменклатура.Ссылка;
10 ils108
 
05.09.16
10:21
кажись я понял где туплю
11 Jokero
 
05.09.16
10:24
я так делаю:
НовыйПлан = Документы.ПланПродаж.СоздатьДокумент();

НовыйПлан.УстановитьСсылкуНового(Документы.ПланПродаж.ПолучитьСсылку(новый УникальныйИдентификатор));
12 ils108
 
05.09.16
10:26
по ходу это невозможно реализовать.
я получаю НовуюСсылку Номенклатуры, но не могу с ней записать элемент ЕдиницуИзмерения, т.к. не записан элемент, который в свою содержит  Новуюссылку на ЕдиницуИзмерения, который тоже еще не записан. полный пыщь. а так хотелось)
13 Jokero
 
05.09.16
10:32
(12) ну в типовых так вроде и сделано. При попытке присвоить ед. измерения выдает:""Для выполнения данной операции необходимо записать элемент. Записать?".
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс