Имя: Пароль:
1C
1С v8
Как программно задать ссылку для нового объекта, чтобы эта ссылка осталась после
0 Команданте
 
12.09.12
11:03
записи...
Сабж
1 eklmn
 
гуру
12.09.12
11:06
ПолучитьСсылкуНового()
2 chelentano
 
12.09.12
11:07
ПолучитьСсылкуНового()
Возвращаемое значение:
Тип: СправочникСсылка.
Описание:
Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового значение ссылки.
3 Команданте
 
12.09.12
11:09
(2) УстановитьСсылкуНового() надо заранее вызывать?
4 Sammo
 
12.09.12
11:10
(3) Из СП
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: СправочникСсылка. Ссылка, которая будет назначена при записи нового объекта.
Описание:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.

Сам как думаешь?
5 Команданте
 
12.09.12
11:12
(4) т.е. через Новый УникальныйИдентификатор()?
6 Команданте
 
12.09.12
11:15
нет
<Ссылка> (обязательный)

Тип: ДокументСсылка.
Ссылка, которая будет назначена при записи нового объекта
как я передам в параметр методу ссылку на документ, который ещё не записан
не понимаю
7 Команданте
 
12.09.12
11:16
пробую так
   СпрОбъект = Справочники.Номенклатура.СоздатьЭлемент();
   СпрОбъект.Наименование = "111";
   СпрОбъект.УстановитьСсылкуНового(СпрОбъект.Ссылка);
   СсылкаНового = СпрОбъект.ПолучитьСсылкуНового();
   СпрОбъект.Записать();
   Если СсылкаНового = СпрОбъект.Ссылка Тогда
       Икс = 1;
   КонецЕсли;


не работает
8 Команданте
 
12.09.12
11:17
хелп гуру 1с
это вообще в принципе возможно или нет?
какой-то метод противоречивый УстановитСсылкуНового
9 Skylark
 
12.09.12
11:18
все можно
щас, покурим и кусок кода подкинем :-)
10 Kashemir
 
12.09.12
11:19
СпрОбъект.УстановитьСсылкуНового(Новый УникальныйИдентификатор());
СсылкаНового = СпрОбъект.ПолучитьСсылкуНового();
11 Команданте
 
12.09.12
11:20
(10) несоответствие параметров
ожидается документссылка, а не уникальный идентификатор (((
12 Скай
 
12.09.12
11:20
СсылкаНового = Справочники.Номенклатура.ПолучитьСсылку();
УстановитьСсылкуНового(СсылкаНового);
13 Sammo
 
12.09.12
11:21
Бррр.
У этих функций разное назначение.
УстановитьСсылкуНового использует ПолучитьСсылку - он предназначен для того, чтобы создать объект с ссылкой с определенным гуидом.

ПолучитьСсылку нового нужна для того, чтобы перед записью записать в базу данные с ссылкой на еще не записанный объект (хотя зачем?)
14 Команданте
 
12.09.12
11:22
(12) МОЗГ!
15 Sammo
 
12.09.12
11:22
Т.е. если тебе надо объекту созать ссылку с определенным гуидом, то используй ПолучитьСсылку + установитьссылкунового
16 Команданте
 
12.09.12
11:22
всем мегамощный респект
17 Homer
 
12.09.12
11:22
НовыйGUID = Новый УникальныйИдентификатор(Заявка.Значение.КодВ1С);
НоваяСсылка = Документы.ЗаявкаНаПодключение.ПолучитьСсылку(НовыйGUID);
ЗаявкаОбъект = Документы.ЗаявкаНаПодключение.СоздатьДокумент();    
ЗаявкаОбъект.УстановитьСсылкуНового(НоваяСсылка);
18 acsent
 
12.09.12
11:23
можно проще

НоваяСсылка = Документы.ЗаявкаНаПодключение.ПолучитьСсылку();
ЗаявкаОбъект = Документы.ЗаявкаНаПодключение.СоздатьДокумент();    
ЗаявкаОбъект.УстановитьСсылкуНового(НоваяСсылка);
19 Команданте
 
12.09.12
11:27
мне эта штука была нужна потому что в событии ПередЗаписью создаётся подчинённый объект, которому надо присвоить ссылку...
ПриЗаписи() не пробовал....
также есть вариант записывать документ при создании как правило хорошего тона
20 Команданте
 
12.09.12
11:27
а вы бы что выбрали?
21 Команданте
 
12.09.12
11:28
ещё вариант записывать в ПередЗаписью() с условием
и на втором цикле его проскакивать...
что лучше?
22 Alex S D
 
12.09.12
11:29
я бы сделал после записи
23 Команданте
 
12.09.12
11:30
(22) у документа нет такого события
только у формы
24 Команданте
 
12.09.12
11:31
вот странно почему после записи нет
хотя это же в принципе при записи. ведь транзакция ещё жива...
25 ptiz
 
12.09.12
11:38
(24) А чем оно будет отличаться от ПриЗаписи ?
26 Команданте
 
12.09.12
11:40
(25) можно обновить данные формы
не универсальный метод для программной записи объекта
27 Команданте
 
12.09.12
11:40
вообще форма сама обновляет данные, если чо
по крайней мере, в УФ
так всё-таки, надо попробовать метод документа ПриЗаписи()
28 Команданте
 
12.09.12
11:42
аааа
я вспомнил
мне же надо было ещё присваивать ссылки на подчинённые документы самому документу
29 Команданте
 
12.09.12
11:43
придётся, видимо, в ПередЗаписью прописывать условие СубДокументыЗаписаны
30 Alex S D
 
12.09.12
11:44
а документ проводится?
31 Команданте
 
12.09.12
11:46
(30) конечно
в обработке проведения тоже стоит проведение субдоков
32 Команданте
 
12.09.12
11:49
ну всё, у меня стек приказал долго жить
33 Команданте
 
12.09.12
11:49
попробовал

   Если Не ЭтотОбъект.ДополнительныеСвойства.Свойство("СубДоки") Тогда
       ЭтотОбъект.Записать();
       ЭтотОбъект.ДополнительныеСвойства.Вставить("СубДоки");
       Возврат;
   КонецЕсли;

конечно, грубо и неправильно
34 Команданте
 
12.09.12
11:50
ладно, буду ссылку ставить программно хD
35 ptiz
 
12.09.12
12:15
(26) Объясни, как ты собираешься получить форму для обновления в модуле объекта?
Закон Брукера: Даже маленькая практика стоит большой теории.