|
Непонятка с типами (прошу совета по ОбъектМетаданных.Тип.Типы() ) | ☑ | ||
---|---|---|---|---|
0
EuVod
26.10.17
✎
12:33
|
Что-то не догоняю - хочу перебрать все табличные части справочника и выщемить реквизиты ТЧ, у которых тип = ХранилищеЗначения.
пошел например так: Для каждого мдТЧ Из Метаданные().ТабличныеЧасти Цикл ТЧ = ЭтотОбъект[мдТЧ.Имя]; Для каждого РеквизитТЧ Из мдТЧ.Реквизиты Цикл Если РеквизитТЧ.Тип.СодержитТип(Тип("ХранилищеЗначения") Тогда .... не работает, потому что в единственном элементе массива РеквизитТЧ.Тип.Типы() указан тип который называется как имя этого реквизита, но хотя в конфигураторе прописано, что это "ХранилищеЗначения"получается никаким сравнением выяснить это нельзя? |
|||
1
EuVod
26.10.17
✎
12:35
|
ну тут опечатки, потому что реальный код чуток другой - пока лишнее убирал, слегка зацепил скобочку, но суть думаю ясна.
знает ли кто? пока остается только тупо перебирать значения фактические и уже их тип сравнивать с Тип("ХранилищеЗначения") (просто при копировании справочника у которого в реквизитах некоторых ТЧ хранятся настройки СКД, хочу эти настройки переносить в создаваемую копию) |
|||
2
RomaH
naïve
26.10.17
✎
12:45
|
(0) в единственном элементе массива РеквизитТЧ.Тип.Типы() указан тип который называется как имя этого реквизита
непонятно |
|||
3
Buster007
26.10.17
✎
12:49
|
(0) не верю
|
|||
4
EuVod
26.10.17
✎
12:58
|
в отладчике это выглядит так
Метаданные().ТабличныеЧасти.ПравилаПредоставления.Реквизиты.СпособПредоставления.Тип.СодержитТип(Тип("ХранилищеЗначения")) = ложь хотя этот реквизит именно что ХранилищеЗначения при этом если вычислчить в отладчике значение: Метаданные().ТабличныеЧасти.ПравилаПредоставления.Реквизиты.СпособПредоставления.Тип.Типы()[0] Способы предоставления скидок наценок Тип |
|||
5
EuVod
26.10.17
✎
13:01
|
т.е. в качестве типа, содержащегося в описании типов, которое определяет этот реквизит указано значение типа тип, но называется (представляется в отладчике) оно не "ХранилищеЗначения" а именем (синонимом) самого реквизита.
т.е.тип значения этого реквизиты - это такой тип для значения этого реквизита. из метаданных не выдает получается инфы. Хотя о реквизитах других типов (число, строка и т.п.) нормально показывает |
|||
6
Buster007
26.10.17
✎
13:04
|
у меня все нормально показывает. Там где хранилище и есть хранилище.
Видать ты криво как-то смотришь... |
|||
7
EuVod
26.10.17
✎
13:13
|
(6) может есть какая-то особенность для реквизита табличной части?
|
|||
8
Fragster
гуру
26.10.17
✎
13:15
|
(7) просто это ссылка на справочник
|
|||
9
Fragster
гуру
26.10.17
✎
13:15
|
ну, или перечисление
|
|||
10
Fragster
гуру
26.10.17
✎
13:15
|
а не хранилизе
|
|||
11
EuVod
26.10.17
✎
13:19
|
не очень понятно что можно смотреть криво.. в модуле объекта обращаюсь к его метаданным.
у меня в ТЧ ПравилаПредоставления есть реквизит СпособПредоставления его тип Храниище значения. пытаюсь с этим поработать программно Метаданные().ТабличныеЧасти.ПравилаПредоставления.Реквизиты.СпособПредоставления.Тип это описание типов. как выяснить что он содержит тип "ХранилищеЗначения" - либо методом СодержитТип либо получить массив Методом Типы() и перебрать там уже сами типы сравнив опять же с Тип("ХранилищеЗначения"). и вот не проканывает ( Хотя если взять объект справочника и посмотреть тип значения хранящийся в базе в ТЧ, то там нормально "ХранилищеЗначения". |
|||
12
EuVod
26.10.17
✎
13:22
|
прикольно для реквизита справочника все ок.
а для реквизита ТЧ этого справочника не работает. странно |
|||
13
EuVod
26.10.17
✎
13:24
|
тьфу. точно (8)
всем спасибо, все работает )) запутался в реквизитах |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |