Вход | Регистрация


1С:Предприятие ::

Метки: 

Самый простой способ получить список всех объектов метаданных конфигурации?

Я
   TormozIT
 
07.02.18 - 11:23
Хочу выгрузить конфигурацию в файлы с фильтрацией объектов метаданных по НЕ вхождению в заданные подсистемы.
Для этого хочу получить список всех объектов метаданных. Есть ли какой то простой способ это?
 
  Рекламное место пустует
   Bigbro
 
1 - 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)Так тоже можно
   TormozIT
 
6 - 07.02.18 - 11:35
(1) Это лишь вершина утомительного айсберга. Таких свойств очень много.
   Serg_1960
 
7 - 07.02.18 - 12:11
(0) "Для этого хочу получить список всех объектов метаданных" - ПолучитьСтруктуруХраненияБазыДанных() ?
   TormozIT
 
8 - 07.02.18 - 12:12
(7) Далеко не все объекты метаданных участвуют в структуре БД.
   Serg_1960
 
9 - 07.02.18 - 12:26
Эээ.. ничего умнее, чем в конфигураторе включить фильтр "По подсистемам" и на панели "Отбор по подсистемам" снять галочку у корня и установить на последней "не входящие в подсистемы" и далее ручками, ручками в голову не приходит.
   Serg_1960
 
10 - 07.02.18 - 12:33
PS: Как-то голову себе не забивал этим, ибо в моих типовых конфигурациях ("Редактируется с сохранением поддержки") нет метаданных, которые не входят в подсистемы.
 
 
   бомболюк
 
11 - 07.02.18 - 13:24
получаешь от Метаданные ILanguageExtenter и вперед.
   Serg_1960
 
12 - 07.02.18 - 13:27
Мой скромный гений забуксовал, родив две гениальные строки:

Для Каждого ТекПодсистема Из Метаданные.Подсистемы Цикл
   Для Каждого ТекОбъект Из Метаданные.Подсистемы[ТекПодсистема.Имя].Состав Цикл
   Cyberhawk
 
13 - 07.02.18 - 14:03
(12) Возможность перебирать объекты подсистемы появилась только с какого-то релиза платформы 8.2, до этого нельзя было легко получить все объекты определенной подсистемы...
   TormozIT
 
14 - 07.02.18 - 17:58
Да. Я сделал обход всех подсистем и их состава. Но есть объекты которые не входят в подсистемы.
   Вафель
 
15 - 07.02.18 - 18:06
на бсп можно прям по справочнику искать
   Cyberhawk
 
16 - 08.02.18 - 10:40
(15) Там нет гарантии, что он актуальный
   Serg_1960
 
17 - 09.02.18 - 14:54
Перед обходом по подсистемам, получаешь из метаданных все объекты, сохраняешь их (имена) в любой удобной коллекции и при обходе составов по подсистемам - ищешь и удаляешь из коллекции. В конечном осадке остаются объекты, не включенные ни в одну подсистему.
   TormozIT
 
18 - 09.02.18 - 15:35
(17) "получаешь из метаданных все объекты" 
Так в этом то и заключается основная проблема. Как это сделать то?
   Вафель
 
19 - 09.02.18 - 15:39
(18) циклом конечно же )))
   Сияющий в темноте
 
20 - 09.02.18 - 16:20
виды обьектов жестко а внутри обьекты перебираются без проблем,так что просто загружаем в таблицу,чтобы иметь возможность отбора
   vde69
 
21 - 09.02.18 - 16:23
сделал за 15 минут


&НаСервереБезКонтекста
Процедура Команда1НаСервере()   
    
    мТип = Тип("ОбъектМетаданных");
    
    мТЗ = ПолучитьСтруктуруХраненияБазыДанных();
    Для Каждого эл из мТЗ Цикл 
        Если эл.Метаданные = "" Тогда 
            Продолжить;
        КонецЕсли;
        
        Попытка
            Если ТипЗнч(Метаданные.НайтиПоПолномуИмени(эл.Метаданные)) = мТип Тогда 
                Сообщить(эл.Метаданные);                
            КонецЕсли;
        Исключение
        КонецПопытки;
    КонецЦикла;
КонецПроцедуры
   Serg_1960
 
22 - 09.02.18 - 16:32
(21) На прочтение (7) и (8) уйдёт менее 15 секунд :)
   vde69
 
23 - 09.02.18 - 16:34
(22) то, что не имеет отражение в БД за чем нужно?
   Serg_1960
 
24 - 09.02.18 - 16:42
Ну считай это упражнение для ума. "хочу получить список всех объектов метаданных" - автор так хочет, для чего - не сказал.
   TormozIT
 
25 - 09.02.18 - 23:11
(24) Как это не сказал (написал)? В (0) четко написал, что для выгрузки конфигурации в файлы.



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует