|
Как программно получить названия всех объектов конфигурации? | ☑ | ||
---|---|---|---|---|
0
luzik
29.09.11
✎
12:20
|
Конфигурация на платформе 1С 8.2.
Нужно программно, например, в цикле, получить все объекты метаданных. Пыталась сделать через свойство глобального контекста Метаданные, но заранее я не знаю название объекта и через точку (например, Метаданные.Документы) обратиться не могу. Можно ли как-то получить названия всех объектов конфигурации. Заранее спасибо |
|||
1
evgen2011
29.09.11
✎
12:21
|
Для каждого Элемент Из метаданные Цикл
Сообщить(Элемент.Имя); конецЦикла; |
|||
2
Alexandr Puzakov
29.09.11
✎
12:30
|
МассивКлассовМетаданных = Новый Массив;
МассивКлассовМетаданных.Добавить("Справочники"); МассивКлассовМетаданных.Добавить("Документы"); МассивКлассовМетаданных.Добавить("Отчеты"); МассивКлассовМетаданных.Добавить("Обработки"); ... Для каждого КлассМетаданных Из МассивКлассовМетаданных Цикл Для Каждого ОбъектМетаданных Из Метаданные[КлассМетаданных] Цикл Сообщить(ОбъектМетаданных.Имя); КонецЦикла; КонецЦикла; |
|||
3
evgen2011
29.09.11
✎
12:33
|
(2) а перечесления? а регистры?
|
|||
4
luzik
29.09.11
✎
12:33
|
Если в синтаксисе открываешь Метаданные, то там все объекты видны. Мне хотелось бы получить все их названия, не забивая ручками в массив...
|
|||
5
evgen2011
29.09.11
✎
12:35
|
Для каждого Элемент Из метаданные Цикл
Для Каждого ОбъектМетаданных Из Метаданные[Элемент] Цикл Сообщить(ОбъектМетаданных.Имя); КонецЦикла; конецЦикла; |
|||
6
luzik
29.09.11
✎
12:37
|
Для Каждого ОбъектМетаданных Из Метаданные[Элемент] Цикл
- дает ошибку: "Получение элемента по индексу для значения не определено"..... |
|||
7
hhhh
29.09.11
✎
12:37
|
(4) а зачем вбивать ручками. Ведь можете скопировать из (2) в свою программу. Это у вас займет 4 секунды.
|
|||
8
luzik
29.09.11
✎
12:39
|
Для каждого Элемент Из метаданные Цикл
- дает ошибку "итератор для значения не определен"... |
|||
9
Alexandr Puzakov
29.09.11
✎
12:40
|
(3) ну я же пример только привел. Фигачим в массив еще элементов и будут там все метаданные...
|
|||
10
luzik
29.09.11
✎
12:42
|
скопировать названия можно, но неужели нельзя их получить в массив программно?
|
|||
11
Inform
29.09.11
✎
12:43
|
(10) смотри (2), не всегда получается в 2 строки сделать то, что хочется...
Список свойств объекта "ОбъектМетаданныхКонфигурация" для заполнения массива можно посмотреть в синтакс-помощнике |
|||
12
evgen2011
29.09.11
✎
12:46
|
(6)Для каждого Элемент Из метаданные Цикл
Для Каждого ОбъектМетаданных Из Метаданные[Элемент.Имя] Цикл Сообщить(ОбъектМетаданных.Имя); КонецЦикла; конецЦикла; |
|||
13
luzik
29.09.11
✎
13:12
|
Увы, ребята, это все не то. может непонятно пишу...
Пример для цикла по документам: "Для Каждого Док Из Метаданные.Документ Цикл" - здесь я заранее не знаю какие документы есть, аналогично мне хотелось бы перебрать все объекты метаданных, не зная заранее какие они. Возможно ли это в 1С 8? |
|||
14
Alexandr Puzakov
29.09.11
✎
14:16
|
(13) чет совсем не понятно. Нужно узнать есть ли те или иные объекты метаданных? Или что?
|
|||
15
evgen2011
29.09.11
✎
14:33
|
(13) для чего?
|
|||
16
Alexandr Puzakov
29.09.11
✎
18:09
|
||||
17
Tapo4ek
29.09.11
✎
18:26
|
МассивКлассовМетаданных = Новый Массив;
МассивКлассовМетаданных.Добавить("Справочники"); МассивКлассовМетаданных.Добавить("Документы"); МассивКлассовМетаданных.Добавить("Отчеты"); МассивКлассовМетаданных.Добавить("Обработки"); ... Для каждого КлассМетаданных Из МассивКлассовМетаданных Цикл Для Каждого ОбъектМетаданных Из Метаданные[КлассМетаданных] Цикл Сообщить(ОбъектМетаданных.Имя); КонецЦикла; КонецЦикла; - Реально решение, неужели сложно написать формирование массива из 16 строк? |
|||
18
Reset
29.09.11
✎
18:52
|
(13) Что значит "не зная какие они" ? Они известны и их список жесткий и постоянный.
Ответ уже дан в (2) и он правильный. Минимальные различия могут быть только при сильно разных версиях платформы (8.1 vs 8.2) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |