![]() |
![]() |
![]() |
|
По типу значения получить пустую ссылку. Как? | ☑ | ||
---|---|---|---|---|
0
YF
26.12.11
✎
15:48
|
Есть переменная в ней тип, например:
переменная_ = Тип("СправочникСсылка.Контрагенты"); как имея значение этой переменной получить пустую ссылку справочника контрагенты? |
|||
1
PR
26.12.11
✎
15:49
|
Новый
|
|||
2
Amra
26.12.11
✎
15:50
|
(1) Скорее Переменная = Справочники.Контрагенты.ПустаяСсылка()
|
|||
3
YF
26.12.11
✎
15:51
|
(2) Охренеть
|
|||
4
YF
26.12.11
✎
15:51
|
(1) А как? пустаяСсылка = Новый переменная_?
так ругается что тип "переменная_" не определен |
|||
5
Господин ПЖ
26.12.11
✎
15:52
|
(1) +100
(2) садись, два |
|||
6
DrShad
26.12.11
✎
15:54
|
(5) +100500
|
|||
7
kuromanlich
26.12.11
✎
15:55
|
переменная.ПустаяСсылка(), не?
|
|||
8
YF
26.12.11
✎
15:57
|
(7) неа
|
|||
9
Fragster
гуру
26.12.11
✎
15:57
|
Справочники[Значение.Метаданные.Имя()].ПустаяСсылка()
|
|||
10
Fragster
гуру
26.12.11
✎
15:58
|
Справочники[Значение.Метаданные().Имя].ПустаяСсылка()
|
|||
11
DrShad
26.12.11
✎
15:58
|
(10) топик читал?
|
|||
12
Галахад
гуру
26.12.11
✎
15:59
|
Новый(Переменная)?
|
|||
13
salvator
26.12.11
✎
16:01
|
(0)
ТвояПустаяСсылка = Новый(переменная_); |
|||
14
ptiz
26.12.11
✎
16:02
|
ТвояПустаяСсылка = Новый(ТипЗнч(переменная));
|
|||
15
YF
26.12.11
✎
16:03
|
(12) ага, спс
|
|||
16
Галахад
гуру
26.12.11
✎
16:03
|
(15) Дык, см (1).
|
|||
17
andrewks
26.12.11
✎
16:07
|
(для истинных извращенцев) можно через ТЗ замутить :)
|
|||
18
YF
26.12.11
✎
16:09
|
(16) Да я запарил про вызов со скобками
|
|||
19
vmv
26.12.11
✎
16:09
|
перто, не изобретайте велосипеды
// Возвращает менеджер объекта по ссылке на объект // // Не обрабатываются точки маршрутов бизнес-процессов // // Параметры: // Ссылка - ссылка на объект, - элемент справочника, документ, ... // // Возвращаемое значение: // СправочникМенеджер, ДокументМенеджер, ... // Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт ИмяОбъекта = Ссылка.Метаданные().Имя; ТипСсылки = ТипЗнч(Ссылка); Если Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Справочники[ИмяОбъекта]; // ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Документы[ИмяОбъекта]; // ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат БизнесПроцессы[ИмяОбъекта]; // ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыВидовХарактеристик[ИмяОбъекта]; // ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыСчетов[ИмяОбъекта]; // ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыВидовРасчета[ИмяОбъекта]; // ИначеЕсли Задачи.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Задачи[ИмяОбъекта]; // ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат ПланыОбмена[ИмяОбъекта]; // ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда Возврат Перечисления[ИмяОбъекта]; Иначе Возврат Неопределено; КонецЕсли; КонецФункции МенеджерОбъектаПоСсылке = МенеджерОбъектаПоСсылке(Знгачение.Контрагент); Если ЗначениеЗаполнено(МенеджерОбъектаПоСсылке) Тогда ПустойКонтрагент = МенеджерОбъектаПоСсылке.ПустаяСсылка(); Иначе Сообщить("Значение не является ссылкой этой ИБ"); КонецЕсли; |
|||
20
Defender aka LINN
26.12.11
✎
16:13
|
(19) Положи обратно где спер. Ответ в (1)
|
|||
21
YF
26.12.11
✎
16:14
|
(19) фигня это, т.к. не дает решения для задачи из (0)
|
|||
22
hhhh
26.12.11
✎
16:14
|
(19) не угадал
|
|||
23
Axel2009
26.12.11
✎
16:26
|
Справочники[Строка(Тип("СправочникСсылка.Контрагенты"))].ПустаяСсылка()
|
|||
24
YF
26.12.11
✎
16:27
|
(23) И ты не угадал
|
|||
25
Defender aka LINN
26.12.11
✎
16:28
|
(23) Удачи со справочником "СтатьиДвиженияДенежныхСредств", например. В общем, расстрелять.
|
|||
26
Fragster
гуру
26.12.11
✎
16:32
|
(11) а, ну тогда через XMLЗначение(Тип("СправочникСсылка.Контрагенты"), "00000000-0000-0000-0000-000000000000")
|
|||
27
sda553
26.12.11
✎
16:32
|
Это понедельник, а не пятница
мета = МетаданныеНайтиПоТипу(НужныйТип); менеджер = Справочники[мета.Имя]; ПустаяСсылка = менеджер.ПустаяСсылка(); БитаяСсылка = менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор()); НовыйЭлемент = менеджер.СоздатьЭлемент(); |
|||
28
vmv
26.12.11
✎
16:33
|
в общем случае нужно выходит на менеджер объекта того объекта, которое содержит реквизит значения.
Доустим у нас есть какая-то переменная и в ней есть ссылочный реквизит КонтрагентДокумента, НомеклатураДокумента, ЧертиШтоНоСссылкаВЭтом и что игра с именами бред, ваши преобразования бред получаем значение этого реквизита и получаем его менеджер без плясок с бубном из менеджера получаем пустую ссылку - все |
|||
29
Fragster
гуру
26.12.11
✎
16:34
|
(27) -> (26) отловит не только спарвочники, но и любой ссылочный объект
|
|||
30
Axel2009
26.12.11
✎
16:42
|
Справочники[СтрЗаменить(XMLТип(Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств")).ИмяТипа, "CatalogRef.", "")].ПустаяСсылка()
|
|||
31
Axel2009
26.12.11
✎
16:43
|
(25) да согласен, давно не пользовался этой темой =)
|
|||
32
acsent
26.12.11
✎
16:44
|
А если через ПривестиЗначение?
|
|||
33
Defender aka LINN
26.12.11
✎
16:46
|
Я рыдаю...
|
|||
34
Axel2009
26.12.11
✎
16:47
|
(33) код показывай, а не рыдай
|
|||
35
Господин ПЖ
26.12.11
✎
16:49
|
до сотни дотянет?
|
|||
36
Defender aka LINN
26.12.11
✎
16:49
|
(34) Ответ в (1). В ПЕРВОМ, ять, посте.
|
|||
37
vmv
26.12.11
✎
16:50
|
у вас есть только значение, программа ТУПАЯ она вам не скажет что это за объект
"Контрагенты", "СтатьиДвиженияДенежныхСредств" и т.д. вот когда она будет говорить четко, то можете работать в одну струку, а так - вилами по воде писано) |
|||
38
Defender aka LINN
26.12.11
✎
16:50
|
+(36) Автор давно уже код написал, и доволен, а в ветке до сих пор бурлит... :)
|
|||
39
Reset
26.12.11
✎
16:50
|
Ссылка = XMLЗначение(переменная_, "00000000-0000-0000-0000-000000000000");
|
|||
40
vmv
26.12.11
✎
16:52
|
(35) НОВЫЙ() что?
когда ты получил вложенное значение реквизита некого объекта полученного, например, при обходе выборки объединенного запроса? |
|||
41
Господин ПЖ
26.12.11
✎
16:53
|
(40) закусывать надо... в (0) ясно написано что есть "тип"
|
|||
42
Defender aka LINN
26.12.11
✎
16:53
|
(40) Во-первых, у автора есть ТИП, а не значение.
Во-вторых, "Новый(Тип)". ВНЕЗАПНО, да? |
|||
43
Reset
26.12.11
✎
16:53
|
хех, а ведь верно, Ссылка = Новый (переменная_) тоже работатет ;)
|
|||
44
Reset
26.12.11
✎
16:54
|
+(43) СП его называет "Синтаксис (вариант 2)"
|
|||
45
Defender aka LINN
26.12.11
✎
16:55
|
Ну и со значением код увеличивается на 8 символов.
|
|||
46
vmv
26.12.11
✎
16:55
|
Ссылка да, пустую получим, а толку с нее - как признак использовать
как правило в таких задачах нужен новый Объект, а вот его хрен без менеджера) |
|||
47
DrShad
26.12.11
✎
17:21
|
млин, сборище акынов - кто что видит, то и поет, а не то что нужно ТС )))))
|
|||
48
Axel2009
26.12.11
✎
17:30
|
(42) реально внезапно! =)
|
|||
49
Rovan
гуру
26.12.11
✎
17:48
|
дарю:
// Предназначена для получения пустого значения заданного типа: // примитивного, или ссылочного. Используется // // Параметры: // ЗаданныйТип - тип, пустое значение которого нужно получить // Функция ПустоеЗначениеТипа(ЗаданныйТип) Экспорт Если ЗаданныйТип = Тип("Число") Тогда Возврат 0; ИначеЕсли ЗаданныйТип = Тип("Строка") Тогда Возврат ""; ИначеЕсли ЗаданныйТип = Тип("Дата") Тогда Возврат '00010101000000'; ИначеЕсли ЗаданныйТип = Тип("Булево") Тогда Возврат Ложь; Иначе Возврат Новый (ЗаданныйТип); КонецЕсли; КонецФункции // ПустоеЗначениеТипа(); |
|||
50
vmv
26.12.11
✎
17:58
|
(49)(c) УПП - Общий модуль, написал бы перто для приличия)
да, ссылка(пустое значение) ноу проблемс, проблемс получить контейнер для модификации, но это уже совсем другая история |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |