|
Почему не определяет по метаданным что это справочник? | ☑ | ||
---|---|---|---|---|
0
Cerera
25.06.13
✎
11:03
|
Вот простенький код.
Для Каждого Эл Из Метаданные[ТипОбъекта][ИмяОбъекта].Реквизиты Цикл Если Метаданные.Справочники.Содержит(Эл) Тогда ТипОбъекта="Справочники"; ИначеЕсли Метаданные.Документы.Содержит(Эл) Тогда ТипОбъекта="Документы"; КонецЕсли; КонецЦикла; в Эл попадает объект типа "ОбъектМетаданных". Почему то даже когда он является справочником "Организации", команда Если Метаданные.Справочники.Содержит(Эл) Тогда не может определить этого. как поменять убрать ошибку? |
|||
1
Поросенок Петр
25.06.13
✎
11:11
|
Обходишь реквизиты, а ищешь среди справочников. Что ещё хотел?
|
|||
2
НЕА123
25.06.13
✎
11:11
|
(0)
что-то крыша у меня едет, что ли... ТипОбъекта и так у тебя содержит "Справочник", "Документ" или х.з. что... |
|||
3
Поросенок Петр
25.06.13
✎
11:13
|
Можно конечно искать по типам реквизитов, но тут тоже засада с составными типами.
|
|||
4
Maxus43
25.06.13
✎
11:14
|
Если Справочники.ТипВсеСсылки().Содержит(ТвойТипСправочника) Тогда
//это справочник |
|||
5
acsent
25.06.13
✎
11:16
|
(0) Налицо принципиальное непонимание программирования вообще
|
|||
6
Maxus43
25.06.13
✎
11:16
|
>>Почему не определяет по метаданным что это справочник?
потому что "Эл" это реквизит, а не сам справочник |
|||
7
Сэкс
25.06.13
✎
11:17
|
(5) +1
|
|||
8
Поросенок Петр
25.06.13
✎
11:25
|
Такое ощущение, что половина мисты родилась с кристальным пониманием структуры объектов в 1С (казалось бы, причем тут понимание программирования?)
|
|||
9
Cerera
25.06.13
✎
11:37
|
(6)А как определить по метаданным тип реквизита?
так чтоли Эл.Тип ? |
|||
10
Cerera
25.06.13
✎
11:45
|
Для Каждого Эл Из Метаданные[ТипОбъекта][ИмяОбъекта].Реквизиты Цикл
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Эл.Тип)) Тогда ТипОбъекта="Справочники"; ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Эл.Тип)) Тогда ТипОбъекта="Документы"; КонецЕсли; КонецЦикла; тоже нихрена |
|||
11
Поросенок Петр
25.06.13
✎
11:47
|
Нужно заставить себя понять, чем отличается тип от описания типов.
|
|||
12
acsent
25.06.13
✎
11:48
|
(10) ты вообще в справку смотришь: каких типов параметры должны быть, какие типы возвращаются?
|
|||
13
Cerera
25.06.13
✎
11:51
|
(12) ТипЗнч(Эл.Тип) возвращает "Тип"
и СодержитТип принимает тип. |
|||
14
Поросенок Петр
25.06.13
✎
11:52
|
Железный аргумент.
|
|||
15
acsent
25.06.13
✎
11:53
|
какого типа Эл.Тип?
|
|||
16
acsent
25.06.13
✎
11:53
|
какой тип вернет ТипЗнч(Эл.Тип)?
|
|||
17
Cerera
25.06.13
✎
11:59
|
(15)Описание типов
(16)Тип |
|||
18
Cerera
25.06.13
✎
12:13
|
вобщем задача нерешаема.
|
|||
19
Cerera
25.06.13
✎
12:15
|
Я начал понимать. если Эл - это реквизит, то Эл.Тип.Типы() - это список типов, которые он может принимать.
|
|||
20
hhhh
25.06.13
✎
12:21
|
стоп
Для Каждого Эл Из Метаданные[ТипОбъекта][ИмяОбъекта].Реквизиты Цикл у тебя же уже есть ТипОбъекта, зачем ты его второй раз разыскиваешь и присваиваешь? |
|||
21
Молодой 1Снег
25.06.13
✎
12:22
|
Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Эл)) Тогда
|
|||
22
Поросенок Петр
25.06.13
✎
12:22
|
Тут вопрос не в реализации, а в задаче. Лучше бы ТС сразу рассказал, что хочет сделать.
|
|||
23
Поросенок Петр
25.06.13
✎
12:22
|
(21) Ишо один.
|
|||
24
Cerera
25.06.13
✎
12:24
|
Вот я разобрался
Для Каждого Эл Из Метаданные["Документы"]["ЗаказПоставщику"].Реквизиты Цикл Для Каждого ТипТип Из Эл.Тип.Типы() Цикл Сообщить(ТипТип); Если Справочники.ТипВсеСсылки().СодержитТип(ТипТип) Тогда Сообщить("Справочник"); КонецЕсли; КонецЦикла; КонецЦикла; |
|||
25
Молодой 1Снег
25.06.13
✎
12:24
|
(23) Да, чего-то я фигню написал. Извините.
|
|||
26
Cerera
25.06.13
✎
12:25
|
(22)Ну я хочу чтобы у меня форма выбора была. На ней дерево. чтоб человечек выбирает объект метаданных и дерево быстренько заполняется реквизитами. А потом если тыкнешь по реквизиту то он тоже раскрывается и дерево уже заполняется его реквизитами. Это в результате чтоб пользователь мог добраться куда угодно, например
РеализацияТовароУслуг.Контрагент.ГоловнойКонтрагент.ОсновнойМенеджерКонтрагента |
|||
27
Поросенок Петр
25.06.13
✎
12:30
|
Смотри как конструктор запроса с составными реквизитами работает.
|
|||
28
Поросенок Петр
25.06.13
✎
12:35
|
А ещё подобная шняга у меня уже есть, только недописана и для УФ. Могу выслать.
|
|||
29
Cerera
25.06.13
✎
12:40
|
(28)[email protected]
а для чего она вам? и конструктор запроса где это так делает? |
|||
30
Поросенок Петр
25.06.13
✎
12:55
|
Ушло. Для конструктора запросов. При раскрытии составного реквизита сначала отображается список таблиц в составе, а в них уже свои наборы.
|
|||
31
acsent
25.06.13
✎
12:57
|
(26) юзай стандартные механизмы от скд
|
|||
32
Cerera
25.06.13
✎
15:57
|
Вот ещё одна проблема:
Строка(Эл.Тип.Типы()[0]) - вот это выражение показывает мне название состоящее из нескольких слов. А мне нужно как в конфигураторе оно. Как этого добиться? |
|||
33
hhhh
25.06.13
✎
16:07
|
XMLСтрока(Эл.Тип.Типы()[0])
|
|||
34
Cerera
25.06.13
✎
17:30
|
(33)Эл.Тип.Типы()[0] имеет тип "Тип" и значение "Организации" к примеру.
XMLСтрока ругается когда ей в качестве параметра это передаешь. |
|||
35
Поросенок Петр
25.06.13
✎
17:36
|
Метаданные.НайтиПоТипу(Эл.Тип.Типы()[0]).Имя
|
|||
36
Cerera
26.06.13
✎
16:20
|
(35)умничка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |