|   |   | 
| 
 | Самый простой способ получить список всех объектов метаданных конфигурации? | ☑ | ||
|---|---|---|---|---|
| 0
    
        TormozIT гуру 07.02.18✎ 11:23 | 
        Хочу выгрузить конфигурацию в файлы с фильтрацией объектов метаданных по НЕ вхождению в заданные подсистемы. 
 Для этого хочу получить список всех объектов метаданных. Есть ли какой то простой способ это? | |||
| 1
    
        Bigbro 07.02.18✎ 11:28 | 
        Пока Метаданные.Справлчник()
 ... | |||
| 2
    
        Рэйв 07.02.18✎ 11:29 | 
        Менеджеры = Новый СписокЗначений;
 Менеджеры.Добавить("Документы"); Менеджеры.Добавить("Справочники"); Менеджеры.Добавить("ПланыВидовХарактеристик"); Менеджеры.Добавить("ПланыСчетов"); Менеджеры.Добавить("ПланыВидовРасчета"); Менеджеры.Добавить("ПланыОбмена"); Менеджеры.Добавить("БизнесПроцессы"); Менеджеры.Добавить("Задачи"); Менеджеры.Добавить("Константы"); Для Каждого Эл из Менеджеры Цикл Имя=Эл.Значение; Для каждого Вид из Метаданные[Имя] Цикл Сообщить(""+Имя+"."+Вид.Имя); Конеццикла; КонецЦикла; | |||
| 3
    
        Рэйв 07.02.18✎ 11:29 | 
        если что забыл, то добавишь в СЗ:-)     | |||
| 4
    
        Мыш 07.02.18✎ 11:33 | 
        (2) Менеджеры = СтрРазделить("Справочники,Документы,..",",");     | |||
| 5
    
        Рэйв 07.02.18✎ 11:34 | 
        (4)Так тоже можно     | |||
| 6
    
        TormozIT гуру 07.02.18✎ 11:35 | 
        (1) Это лишь вершина утомительного айсберга. Таких свойств очень много.     | |||
| 7
    
        Serg_1960 07.02.18✎ 12:11 | 
        (0) "Для этого хочу получить список всех объектов метаданных" - ПолучитьСтруктуруХраненияБазыДанных() ?     | |||
| 8
    
        TormozIT гуру 07.02.18✎ 12:12 | 
        (7) Далеко не все объекты метаданных участвуют в структуре БД.     | |||
| 9
    
        Serg_1960 07.02.18✎ 12:26 | 
        Эээ.. ничего умнее, чем в конфигураторе включить фильтр "По подсистемам" и на панели "Отбор по подсистемам" снять галочку у корня и установить на последней "не входящие в подсистемы" и далее ручками, ручками в голову не приходит.     | |||
| 10
    
        Serg_1960 07.02.18✎ 12:33 | 
        PS: Как-то голову себе не забивал этим, ибо в моих типовых конфигурациях ("Редактируется с сохранением поддержки") нет метаданных, которые не входят в подсистемы.     | |||
| 11
    
        бомболюк 07.02.18✎ 13:24 | 
        получаешь от Метаданные ILanguageExtenter и вперед.     | |||
| 12
    
        Serg_1960 07.02.18✎ 13:27 | 
        Мой скромный гений забуксовал, родив две гениальные строки:
 Для Каждого ТекПодсистема Из Метаданные.Подсистемы Цикл Для Каждого ТекОбъект Из Метаданные.Подсистемы[ТекПодсистема.Имя].Состав Цикл | |||
| 13
    
        Cyberhawk 07.02.18✎ 14:03 | 
        (12) Возможность перебирать объекты подсистемы появилась только с какого-то релиза платформы 8.2, до этого нельзя было легко получить все объекты определенной подсистемы...     | |||
| 14
    
        TormozIT гуру 07.02.18✎ 17:58 | 
        Да. Я сделал обход всех подсистем и их состава. Но есть объекты которые не входят в подсистемы.     | |||
| 15
    
        Вафель 07.02.18✎ 18:06 | 
        на бсп можно прям по справочнику искать     | |||
| 16
    
        Cyberhawk 08.02.18✎ 10:40 | 
        (15) Там нет гарантии, что он актуальный     | |||
| 17
    
        Serg_1960 09.02.18✎ 14:54 | 
        Перед обходом по подсистемам, получаешь из метаданных все объекты, сохраняешь их (имена) в любой удобной коллекции и при обходе составов по подсистемам - ищешь и удаляешь из коллекции. В конечном осадке остаются объекты, не включенные ни в одну подсистему.     | |||
| 18
    
        TormozIT гуру 09.02.18✎ 15:35 | 
        (17) "получаешь из метаданных все объекты" 
 Так в этом то и заключается основная проблема. Как это сделать то? | |||
| 19
    
        Вафель 09.02.18✎ 15:39 | 
        (18) циклом конечно же )))     | |||
| 20
    
        Сияющий в темноте 09.02.18✎ 16:20 | 
        виды обьектов жестко а внутри обьекты перебираются без проблем,так что просто загружаем в таблицу,чтобы иметь возможность отбора     | |||
| 21
    
        vde69 09.02.18✎ 16:23 | 
        сделал за 15 минут
 &НаСервереБезКонтекста Процедура Команда1НаСервере() мТип = Тип("ОбъектМетаданных"); мТЗ = ПолучитьСтруктуруХраненияБазыДанных(); Для Каждого эл из мТЗ Цикл Если эл.Метаданные = "" Тогда Продолжить; КонецЕсли; Попытка Если ТипЗнч(Метаданные.НайтиПоПолномуИмени(эл.Метаданные)) = мТип Тогда Сообщить(эл.Метаданные); КонецЕсли; Исключение КонецПопытки; КонецЦикла; КонецПроцедуры | |||
| 22
    
        Serg_1960 09.02.18✎ 16:32 | 
        (21) На прочтение (7) и (8) уйдёт менее 15 секунд :)     | |||
| 23
    
        vde69 09.02.18✎ 16:34 | 
        (22) то, что не имеет отражение в БД за чем нужно?     | |||
| 24
    
        Serg_1960 09.02.18✎ 16:42 | 
        Ну считай это упражнение для ума. "хочу получить список всех объектов метаданных" - автор так хочет, для чего - не сказал.     | |||
| 25
    
        TormozIT гуру 09.02.18✎ 23:11 | 
        (24) Как это не сказал (написал)? В (0) четко написал, что для выгрузки конфигурации в файлы.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |