|
Работа с метаданными | ☑ | ||
|---|---|---|---|---|
|
0
nikulya
30.10.11
✎
20:19
|
Подскажите кто знает:
СвойстваДокумента=Метаданные.Документы.Найти("ПоступлениеТоваровУслуг"); Для каждого Реквизит из СвойстваДокумента.Реквизиты Цикл сообщить(Реквизит.Имя); КонецЦикла; Как в цикле понять является ли реквизит ссылочным типом? |
|||
|
1
hatsher
30.10.11
✎
20:23
|
ПОпытка
СсылкаНаПустойОбъект = Реквизит.получитьОбъект().Ссылка; Сообщить("Это ссылочный объект"); Исключение Сообщить("Это не ссылочный объект"); КонецПопытки |
|||
|
2
nikulya
30.10.11
✎
20:29
|
Реквизит имеет тип Объект метаданных и обратиться к нему через получитьОбъект никак не получится
|
|||
|
3
Wobland
30.10.11
✎
20:33
|
(0) ТипЗнч()=Тип(), не?
|
|||
|
4
hatsher
30.10.11
✎
20:34
|
ну тогда
Если Метаданные.Документы.Найти(реквизит.Имя) ИЛИ Метаданные.Справочники.Найти(реквизит.Имя) |
|||
|
5
nikulya
30.10.11
✎
20:34
|
(3) не подходит
|
|||
|
6
nikulya
30.10.11
✎
20:36
|
(4) неоднозначно. Например - реквизит называется клиент а справочник Контрагенты
|
|||
|
7
Лефмихалыч
30.10.11
✎
20:37
|
Метаданные.НайтиПоТипу()
|
|||
|
8
Михей
30.10.11
✎
20:39
|
(0)
Ссылочный = Ложь; Для Каждого ТекТип Из Реквизит.Тип.Типы() Тогда Если НЕ (ТекТип = Тип("Булево") ИЛИ ТекТип = Тип("Строка") ИЛИ ТекТип = Тип("Число") ИЛИ ТекТип = Тип("Дата")) Тогда Ссылочный = Истина; КонецЕсли; КонецЦикла; |
|||
|
9
hatsher
30.10.11
✎
20:43
|
(8) а если это перечисление, константа или набор каких-то записей?
|
|||
|
10
Михей
30.10.11
✎
20:45
|
(9) Перечисление это ссылочный тип, константа не может быть реквизитом у документа, так же как и набор записей
|
|||
|
11
nikulya
30.10.11
✎
20:47
|
(8) урааааааааааааа.... спасибо. работает
|
| Форум | Правила | Описание | Секции | Поиск |