|
Работа с метаданными
| ☑ |
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) урааааааааааааа.... спасибо. работает
|
|