| 
    
        
     
     | 
    
    
  | 
Самый простой способ получить список всех объектов метаданных конфигурации? | ☑ | ||
|---|---|---|---|---|
| 
    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) четко написал, что для выгрузки конфигурации в файлы.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |