forked from vanessa-opensource/vanessa-support
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathДеревоИменМетаданных.os
69 lines (47 loc) · 3.26 KB
/
ДеревоИменМетаданных.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#Использовать fs
#Использовать logos
#Область ОписаниеПеременных
Перем Лог; // объект логирования
#КонецОбласти
#Область ПрограммныйИнтерфейс
// Подготовить значение для выгрузки в json
//
// Параметры:
// Поддержка - Поддержка - объект-информатор по данным поддержки
// КаталогИсходников - Строка - Абсолютный путь к каталогу исходников конфигурации
// ФайлыИзменяемые - Массив - массив абсолютных путей метаданных. преобразовать через ФС.ОтносительныйПуть
//
// Возвращаемое значение:
// Произвольный - результат трансформации, которое нужно выгрузить в json
//
Функция ПодготовитьЗначениеДляВыгрузки(Знач Поддержка, Знач КаталогИсходников, Знач ФайлыИзменяемые) Экспорт
Результат = Новый Структура;
МетаданныеКаталоги = УтилитыПоддержки.МетаданныеКаталоги();
ВременнаяКоллекция = Новый Структура;
Для каждого ПутьФайла Из ФайлыИзменяемые Цикл
ОтносительныйПуть = ФС.ОтносительныйПуть(КаталогИсходников, ПутьФайла);
Лог.Отладка("ОтносительныйПуть " + ОтносительныйПуть);
Сегменты = СтрРазделить(ОтносительныйПуть, ПолучитьРазделительПути());
ВидМетаданного = МетаданныеКаталоги.Получить(Сегменты[0]);
Если ВидМетаданного = Неопределено Тогда
// неизвестный тип
Продолжить;
КонецЕсли;
ИмяМетаданного = Сегменты[1];
УтилитыПоддержки.ДобавитьВложенныйЕслиЕщеНет(ВременнаяКоллекция, ВидМетаданного, ИмяМетаданного, Новый Структура);
КонецЦикла;
Для каждого КлючЗначение Из ВременнаяКоллекция Цикл
Коллекция = Новый Массив;
УтилитыПоддержки.СкопироватьЭлементы(КлючЗначение.Значение, Коллекция);
Результат.Вставить(КлючЗначение.Ключ, Коллекция);
КонецЦикла;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриСозданииОбъекта(Знач ПарамЛог) Экспорт
Лог = ПарамЛог;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти