![]() |
![]() |
![]() |
|
Метаданные. не корректно работает метод Содержит. Имхо | ☑ | ||
---|---|---|---|---|
0
NcSteel
26.09.09
✎
15:15
|
Сабж. Скорее всего я не верно руки заточил под Метаданные.
Вот пример: Объект - Объект на документ: Код: Если Метаданные.Документы.Содержит(Объект.Метаданные()) Тогда //Все нормально "Истина" Объект.Метаданные().Реквизиты.Содержит(Справочники.ДоговорыКонтрагентов.ПустаяСсылка().Метаданные()) //А вот тут дает Ложь. КонецЕсли; Что сделал не так? |
|||
1
H A D G E H O G s
26.09.09
✎
15:16
|
Объект.Метаданные().Реквизиты
ОписаниеТипов, а не ОбъектМетаданных |
|||
2
H A D G E H O G s
26.09.09
✎
15:16
|
Объект.Метаданные().Реквизиты.Содержит(ТипЗнч(Справочники.ДоговорыКонтрагентов.ПустаяСсылка()))
|
|||
3
H A D G E H O G s
26.09.09
✎
15:17
|
НЕТ
|
|||
4
H A D G E H O G s
26.09.09
✎
15:17
|
Для Каждого Реквизит ИЗ Объект.Метаданные().Реквизиты Цикл
Реквизит.Содержит(ТипЗнч(Справочники.ДоговорыКонтрагентов.ПустаяСсылка())) КонецЦикла; |
|||
5
NcSteel
26.09.09
✎
15:18
|
Что то не так:
КоллекцияОбъектовМетаданных (MetadataObjectCollection) Содержит (Contains) Синтаксис: Содержит(<Объект метаданных>) Параметры: <Объект метаданных> (обязательный) Тип: ОбъектМетаданных: WebCервис, ОбъектМетаданных: WSCсылка, ОбъектМетаданных: БизнесПроцесс, ОбъектМетаданных: Документ, ОбъектМетаданных: ЖурналДокументов, ОбъектМетаданных: Задача, ОбъектМетаданных: Интерфейс, ОбъектМетаданных: Константа, ОбъектМетаданных: КритерийОтбора, ОбъектМетаданных: Нумератор, ОбъектМетаданных: Обработка, ОбъектМетаданных: ОбщаяКартинка, ОбъектМетаданных: Макет, ОбъектМетаданных: ОбщийМодуль, ОбъектМетаданных: Форма, ОбъектМетаданных: Стиль, ОбъектМетаданных: Язык, ОбъектМетаданных: Отчет, ОбъектМетаданных: ПакетXDTO, ОбъектМетаданных: ПараметрСеанса, ОбъектМетаданных: Перечисление, ОбъектМетаданных: ПланВидовРасчета, ОбъектМетаданных: ПланВидовХарактеристик, ОбъектМетаданных: ПланОбмена, ОбъектМетаданных: ПланСчетов, ОбъектМетаданных: ПодпискаНаСобытие, ОбъектМетаданных: Подсистема, ОбъектМетаданных: Последовательность, ОбъектМетаданных: РегистрБухгалтерии, ОбъектМетаданных: РегистрНакопления, ОбъектМетаданных: РегистрРасчета, ОбъектМетаданных: РегистрСведений, ОбъектМетаданных: РегламентноеЗадание, ОбъектМетаданных: Роль, ОбъектМетаданных: Справочник, ОбъектМетаданных: ЭлементСтиля, ОбъектМетаданных: Графа, ОбъектМетаданных: Измерение, ОбъектМетаданных: ЗначениеПеречисления, ОбъектМетаданных: ОперацияWebСервиса, ОбъектМетаданных: Перерасчет, ОбъектМетаданных: ПараметрWebСервиса, ОбъектМетаданных: ПризнакУчетаПланаСчетов, ОбъектМетаданных: ПризнакУчетаСубконтоПланаСчетов, ОбъектМетаданных: Реквизит, ОбъектМетаданных: ТабличнаяЧасть, ОбъектМетаданных: Ресурс, ОбъектМетаданных: РеквизитАдресации. Объект метаданных, наличие которого определяется в коллекции. Возвращаемое значение: Тип: Булево. Описание: Определяет, принадлежит ли объект метаданных данной коллекции. И из : Метаданные.Документы.Содержит(Объект.Метаданные()) все корректно же. |
|||
6
NcSteel
26.09.09
✎
15:19
|
(4) А перебор что то Имхо не красиво )
|
|||
7
NcSteel
26.09.09
✎
15:21
|
ОбъектМетаданных: Документ (MetadataObject: Document)
Реквизиты (Attributes) Использование: Только чтение. Описание: Тип: КоллекцияОбъектовМетаданных. Коллекция объектов метаданных, описывающих реквизиты данного объекта метаданных. КоллекцияОбъектовМетаданных все таки должен (0) работать. |
|||
8
H A D G E H O G s
26.09.09
✎
15:22
|
Пардон
Для Каждого Реквизит ИЗ Объект.Метаданные().Реквизиты Цикл Если ТипЗнч(Реквизит.Тип)=Тип("ОписаниеТипов") Тогда Реквизит.Тип.Содержит(ТипЗнч(Справочники.ДоговорыКонтрагентов.ПустаяСсылка())) КонецЕсли; КонецЦикла; |
|||
9
NcSteel
26.09.09
✎
15:23
|
(8) Ты лучше скажи почему (0) не работает. Согласно (7) должен же работать.
|
|||
10
H A D G E H O G s
26.09.09
✎
15:27
|
(9) Потому что внутри МетаданныеДокументы есть МетаданноеДокумент
А внутри МетаданноеДокумент.Реквизиты нет МЕТАДАННОГО МетаданноеСправочник. Это как бы логично, я не понимаю, откуда такие мысли у тебя? |
|||
11
NcSteel
26.09.09
✎
15:31
|
Так как если открыть в отладчике:
Метаданные.Документы.РеализацияТоваровУслуг.Реквизиты то мы увидим коллекцию ОбъектовМетаданных, хотя они конечно пофиксины. Так хотелось элегантно решить, эх придется цикл фигачить. ((( |
|||
12
Jolly Roger
26.09.09
✎
16:56
|
(0) для начала надо бы вместо
Справочники.ДоговорыКонтрагентов.ПустаяСсылка().Метаданные() использовать Метаданные.Справочники.ДоговорыКонтрагентов |
|||
13
H A D G E H O G s
26.09.09
✎
16:59
|
Сообщить(Строка(Справочники.ДоговорыКонтрагентов.ПустаяСсылка().Метаданные()=Метаданные.Справочники.ДоговорыКонтрагентов));
Выдает ИСТИНА Что мы делаем не так? |
|||
14
Jolly Roger
26.09.09
✎
17:01
|
(13) как минимум, на одну точку короче...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |