![]() |
![]() |
|
Как назначить ссылку новому объекту перед записью? ₽ |
☑ | ||
---|---|---|---|---|
0
zmb
01.03.07
✎
17:39
|
Создаю в восьмерке элемент справочника, еще не записываю, но надо получить Ссылку.
|
|||
1
Три буквы
01.03.07
✎
17:40
|
зачот!
|
|||
2
Max_Minsk
01.03.07
✎
17:40
|
(0) Покажи как создаешь.
|
|||
3
Ц_У
01.03.07
✎
17:40
|
нельзя получить ссылку на несуществующий элемент
|
|||
4
Широкий
01.03.07
✎
17:41
|
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
ПолучитьСсылкуНового (GetNewObjectRef) Синтаксис: ПолучитьСсылкуНового() Возвращаемое значение: Тип: СправочникСсылка. Описание: Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового() значение ссылки. См. также: СправочникМенеджер, метод ПолучитьСсылку |
|||
5
Max_Minsk
01.03.07
✎
17:41
|
(3) Почему? У него уже GUID есть при создании.
|
|||
6
dimoff
01.03.07
✎
17:41
|
УстановитьСсылкуНового
|
|||
7
zmb
01.03.07
✎
17:42
|
хз, нельзя, можно, тем не менее в синтаксис помошнике есть какие-то методы, но написано там все коряво и не понятно.
|
|||
8
dimoff
01.03.07
✎
17:42
|
(7) Два простых метода, в 6 и в 4, чего сложного
|
|||
9
Три буквы
01.03.07
✎
17:44
|
век живи, век учись.
интересно, а в каких ситуациях это бывает нужно? |
|||
10
Terv
01.03.07
✎
17:45
|
(9) самое частое при обмене.
|
|||
11
Vozhd
01.03.07
✎
17:45
|
(9) В случаях, когда лень использовать транзакции...
|
|||
12
zmb
01.03.07
✎
17:47
|
Кроме флуда, может кто написать просто пример, если так все просто?
|
|||
13
Ц_У
01.03.07
✎
17:47
|
(9)+1 ..век...дураком помрешь (с)
|
|||
14
Колумбарий
01.03.07
✎
17:47
|
2(9) Например при обменах... когда топология баз - звезда
|
|||
15
asady
01.03.07
✎
17:47
|
||||
16
Три буквы
01.03.07
✎
17:47
|
(11)эээ?
|
|||
17
Vozhd
01.03.07
✎
17:49
|
(16) угу!
|
|||
18
TormozIT
гуру
01.03.07
✎
17:52
|
Привожу код из типовых УТ И УПП.
Неправильно получать ссылку нового таким образом. Считаю, что это некорректный прием в типовых конфигурациях. Ведь ранее уже могли сделать те же действия. В таком случае все предыдущие ссылки будут невалидными! Правильно будет заменить типовой код на этот:
|
|||
19
TormozIT
гуру
01.03.07
✎
17:53
|
Как показывают мои исследования
неявно вызывается всегда у нового объекта при его создании и нет смысла ее снова устанавливать, ведь кто то до этого уже мог использовать старую ссылку нового. А при установке ссылки нового вы принудительно меняете. И, все ссылки на старую ссылку нового станут невалидными после записи объекта. |
|||
20
dimoff
01.03.07
✎
17:55
|
(18) Что значит "невалидными"?
|
|||
21
TormozIT
гуру
01.03.07
✎
17:55
|
(20) "<объект... не найден..."
|
|||
22
dimoff
01.03.07
✎
17:56
|
(21) Где он будет не найден, если он никуда не записывался?
|
|||
23
dimoff
01.03.07
✎
17:57
|
Глюк бывает когда в транзакции при записи создается новый объект и присываивается полю, но потом сам не записывается. Ссылка в поле остается, хотя объект не существует. Но подобное происходит без всяких УстановитьСсылкуНового
|
|||
24
TormozIT
гуру
01.03.07
✎
17:58
|
Таким образом, после записи мы получим невалидную ссылку в реквизите "ГоловнойКонтрагент" |
|||
25
zmb
01.03.07
✎
17:59
|
Стоп, напишите на примере номенклатуры :)
|
|||
26
dimoff
01.03.07
✎
18:00
|
(25) Скопируй все сообщения ТормозИТ в блокнот, вызови пункт Правка - Поиск и замена, замени Контрагенты на Номенклатура
|
|||
27
TormozIT
гуру
01.03.07
✎
18:00
|
Если ЭтоНовый() Тогда
Делай так и будет тебе счастье. |
|||
28
zmb
01.03.07
✎
18:02
|
Кароче, я зря сюда зашел, тут больше половины только флудят и выёпываются, а остальные только пытаются предположить, ну и на том спасибо...
|
|||
29
dimoff
01.03.07
✎
18:02
|
(28) Не за что, заходи ещё, будет третья половина, которая пошлет тебя туда, куда ты заслуживаешь.
|
|||
30
Vozhd
01.03.07
✎
18:03
|
(28) Точно подмечено! Предлагаю обфлудить эту тему :-)
|
|||
31
TormozIT
гуру
01.03.07
✎
18:03
|
Ответ на (0) уже писали.
Я лишь еще раз обращаю твое внимание на него ПолучитьСсылкуНового() |
|||
32
dimoff
01.03.07
✎
18:04
|
(31) Хватит флудить
|
|||
33
Vozhd
01.03.07
✎
18:06
|
(32) Пожалуйста, не ограничивайте свободу слова инженеров знаний. ;-)
|
|||
34
AntonioS
01.03.07
✎
18:12
|
(18)
ПолучитьСсылкуНового (GetNewObjectRef) Описание: Позволяет для нового (созданного и еще не записанного) объекта получить ранее установленное методом УстановитьСсылкуНового значение ссылки. Вот почему то тут говорят, про то, что получать можно только ранее установленную ссылку. В чем подвох? |
|||
35
TormozIT
гуру
01.03.07
✎
19:25
|
(34) Да, написано. Однако (19)
|
|||
36
TormozIT
гуру
01.03.07
✎
20:58
|
Коллеги. Приношу свои извинения.
(18), (19), (27) не совсем верные утверждения. Сейчас взял еще раз проверил ситуацию. В некоторых случаях, в самом деле, платформа сразу неявно вызывает УстановитьСсылкуНового() при создании объекта. Но в некоторых она этого не делает. Закономерность я пока не смог установить. Поэтому правильное получение ссылки нового, на мой взгляд, должно выглядеть так:
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |