|
Туплю. Как по значению определить что это документ или справочник или допустим отчет. |
☑ |
0
arsik
гуру
01.03.19
✎
16:24
|
Значением может быть или ссылка или объект.
|
|
1
Aleksey
01.03.19
✎
16:25
|
что такое значение?
|
|
2
RomanYS
01.03.19
✎
16:26
|
ТипЗнч(Значение) = Тип("СправочникОбъект.Банки")
|
|
3
Мыш
01.03.19
✎
16:30
|
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Значение))
и т.д.
|
|
4
Buster007
01.03.19
✎
16:30
|
Найти(XMLТип(Тип).ИмяТипа, "Справочник") > 0
|
|
5
mistеr
01.03.19
✎
16:30
|
Справочники.ТипВсеСсылки.СодержитТип(ТипЗнч(Значение))
|
|
6
Aleksey
01.03.19
✎
16:31
|
|
|
7
arsik
гуру
01.03.19
✎
16:32
|
(1) Какое то значение, там может быть ссылка на объект или сам объект
(2) Не, мне нужно допустим по ссылка на документ "Счет" узнать, что это ссылка на документ. Или по объекту типа ДокументОбъект.Счет, узнать что это документ.
(3) (5) С объектом не сработает.
(4) Ну по текстовому представлению я знаю как, но мне не нравится.
|
|
8
mistеr
01.03.19
✎
16:34
|
(7) Если алгоритм зависит от того, ссылка это или объект, то эту часть лучше вынести в вызывающий метод.
|
|
9
Aleksey
01.03.19
✎
16:35
|
(7) Передавай ссылку т.е. Объект.Ссылка или ссылка.Ссылка
|
|
10
RomanYS
01.03.19
✎
16:37
|
Метаданные.Документы.Содержит(ЗначениеИлиОбъект.Метаданные())
|
|
11
arsik
гуру
01.03.19
✎
16:39
|
Все разобрался. Спасибо камрады.
Что то давно метаданные не ковырял. Вот примерно так.
Если Метаданные.Документы.Содержит(Объект.Метаданные()) Тогда
Сообщить("Документ");
ИначеЕсли Метаданные.Справочники.Содержит(Объект.Метаданные()) Тогда
Сообщить("Справочник");
иначе
Сообщить("Что то еще");
КонецЕсли;
|
|
12
Buster007
01.03.19
✎
16:40
|
ОбщегоНазначения.МенеджерОбъектаПоСсылке
|
|
13
RomanYS
01.03.19
✎
16:44
|
(11) попытку не забудь, ".Метаданные()" может не быть
|
|
14
arsik
гуру
01.03.19
✎
16:50
|
(13) тогда так.
метаОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Объект));
Если метаОбъекта<>Неопределено Тогда
Если Метаданные.Документы.Содержит(метаОбъекта) Тогда
Сообщить("Документ");
ИначеЕсли Метаданные.Справочники.Содержит(метаОбъекта) Тогда
Сообщить("Справочник");
иначе
Сообщить("Что то еще");
КонецЕсли;
КонецЕсли;
|
|
15
RomanYS
01.03.19
✎
16:52
|
(14) Молодца! Без попытки обошелся)
|
|
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан