Skip to content

Commit

Permalink
фикс: Работа с двуязычным представлением метаданных
Browse files Browse the repository at this point in the history
  • Loading branch information
Stepa86 committed May 26, 2024
1 parent 61b53bd commit ea78c80
Show file tree
Hide file tree
Showing 2 changed files with 122 additions and 39 deletions.
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("v8metadata-reader")
.Версия("0.3.5")
.Версия("0.3.6")
.ЗависитОт("logos")
.ЗависитОт("xml-parser")
.ЗависитОт("csv")
Expand Down
159 changes: 121 additions & 38 deletions src/Классы/Путь1СПоМетаданным.os
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
имяМетаданных = ВРег(компоненты[0]);
каталог = _КэшСоответствий.Метаданные[имяМетаданных];

Если Не ЗначениеЗаполнено(каталог) Тогда
Если НЕ ЗначениеЗаполнено(каталог) Тогда

Возврат "";

Expand All @@ -73,17 +73,17 @@
Если НЕ ЗначениеЗаполнено(имяФайла) Тогда

Если _ЭтоВыгрузкаКонфигуратора Тогда

имяФайла = компоненты[1] + ".xml";

Иначе

имяФайла = компоненты[1] + ".mdo";

КонецЕсли;

КонецЕсли;

компонентыПути.Добавить(имяФайла);

путь = СтрСоединить(компонентыПути, ПолучитьРазделительПути());
Expand Down Expand Up @@ -124,7 +124,7 @@
_лог.Отладка("Это выгрузка конфигурации: " + _ЭтоВыгрузкаКонфигуратора);
_лог.Отладка("Это выгрузка EDT: " + _ЭтоВыгрузкаЕДТ);

Если (Не _ЭтоВыгрузкаЕДТ И Не _ЭтоВыгрузкаКонфигуратора)
Если (НЕ _ЭтоВыгрузкаЕДТ И НЕ _ЭтоВыгрузкаКонфигуратора)
ИЛИ (_ЭтоВыгрузкаЕДТ И _ЭтоВыгрузкаКонфигуратора) Тогда

ВызватьИсключение "Не удалось определить тип выгрузки";
Expand All @@ -136,7 +136,7 @@
Функция ПутьПоПолномуМетаданному(пМетаданные, компонентыПути)

компоненты = СтрРазделить(пМетаданные, ".");

имяМетаданных = ВРег(компоненты[0]);
типОбъекта = ВРег(компоненты[2]);

Expand All @@ -149,47 +149,59 @@
компонентыПути.Добавить("Ext");

КонецЕсли;

компонентыПути.Добавить(имяФайла);
ИначеЕсли имяМетаданных = "ВНЕШНИЙИСТОЧНИКДАННЫХ" Тогда

Если типОбъекта = "ТАБЛИЦА" Тогда
ИначеЕсли ЭтоВнешнийИсточникДанных(имяМетаданных) Тогда

Если ЭтоТаблица(типОбъекта) Тогда
компонентыПути.Добавить("Tables");
компонентыПути.Добавить(компоненты[3]);
компонентыПути.Добавить(компоненты[3]);
КонецЕсли;

Если компоненты.Количество() = 5
И ЭтоМодульОбъекта(компоненты[4]) Тогда

Если компоненты.Количество() = 5 И Врег(компоненты[4]) = "МОДУЛЬОБЪЕКТА" Тогда
компонентыПути.Добавить("ObjectModule.bsl");
ИначеЕсли компоненты.Количество() = 5 И Врег(компоненты[4]) = "МОДУЛЬМЕНЕДЖЕРА" Тогда

ИначеЕсли компоненты.Количество() = 5
И ЭтоМодульМенеджера(компоненты[4]) Тогда

компонентыПути.Добавить("ManagerModule.bsl");
ИначеЕсли компоненты.Количество() > 5 И Врег(компоненты[4]) = "ФОРМА" Тогда

ИначеЕсли компоненты.Количество() > 5
И ЭтоФорма(компоненты[4]) Тогда

компонентыПути.Добавить("Forms");

Если компоненты.Количество() > 6 Тогда
компонентыПути.Добавить(компоненты[5]);
компонентыПути.Добавить(компоненты[5]);
КонецЕсли;

Если компоненты.Количество() = 7
И ВРег(компоненты[6]) = "ФОРМА" Тогда
И ЭтоФорма(компоненты[6]) Тогда

ДополнитьКомпоненты_Форма(компонентыПути);

ИначеЕсли компоненты.Количество() > 7
И ВРег(компоненты[6]) = "ФОРМА"
И ВРег(компоненты[7]) = "МОДУЛЬ" Тогда
И ЭтоФорма(компоненты[6])
И ЭтоМодуль(компоненты[7]) Тогда

ДополнитьКомпоненты_МодульФормы(компонентыПути);

Иначе
_лог.Предупреждение("Не поддерживаемый объект %1", пМетаданные);
КонецЕсли;


_лог.Предупреждение("1. Не поддерживаемый объект. Метаданные: %1, Имя файла: %2, Имя метаданных %3, Тип объекта %4", пМетаданные, имяФайла, имяМетаданных, типОбъекта);

КонецЕсли;

КонецЕсли;

ИначеЕсли имяМетаданных = "ОБЩАЯФОРМА" Тогда
ИначеЕсли ЭтоОбщаяФорма(имяМетаданных) Тогда

ДополнитьКомпоненты_МодульФормы(компонентыПути);

ИначеЕсли типОбъекта = "ФОРМА" Тогда
ИначеЕсли ЭтоФорма(типОбъекта) Тогда

компонентыПути.Добавить("Forms");

Expand All @@ -200,23 +212,23 @@
КонецЕсли;

Если компоненты.Количество() = 5
И ВРег(компоненты[4]) = "ФОРМА" Тогда
И ЭтоФорма(компоненты[4]) Тогда

ДополнитьКомпоненты_Форма(компонентыПути);

ИначеЕсли компоненты.Количество() > 5
И ВРег(компоненты[4]) = "ФОРМА"
И ВРег(компоненты[5]) = "МОДУЛЬ" Тогда
И ЭтоФорма(компоненты[4])
И ЭтоМодуль(компоненты[5]) Тогда

ДополнитьКомпоненты_МодульФормы(компонентыПути);

Иначе

_лог.Предупреждение("Не поддерживаемый объект %1", пМетаданные);
_лог.Предупреждение("2. Не поддерживаемый объект. Метаданные: %1, Имя файла: %2, Имя метаданных %3, Тип объекта %4", пМетаданные, имяФайла, имяМетаданных, типОбъекта);

КонецЕсли;

ИначеЕсли типОбъекта = "КОМАНДА" Тогда
ИначеЕсли ЭтоКоманда(типОбъекта) Тогда

компонентыПути.Добавить("Commands");

Expand All @@ -228,7 +240,7 @@

Если компоненты.Количество() > 4 Тогда

Если ВРег(компоненты[4]) = "МОДУЛЬКОМАНДЫ" Тогда
Если ЭтоМодульКоманды(компоненты[4]) Тогда

Если _ЭтоВыгрузкаКонфигуратора Тогда

Expand All @@ -240,15 +252,15 @@

КонецЕсли;

КонецЕсли;
КонецЕсли;
Иначе

_лог.Предупреждение("Не поддерживаемый объект %1", пМетаданные);
_лог.Предупреждение("3. Не поддерживаемый объект. Метаданные: %1, Имя файла: %2, Имя метаданных %3, Тип объекта %4", пМетаданные, имяФайла, имяМетаданных, типОбъекта);

КонецЕсли;

Возврат СтрСоединить(компонентыПути, ПолучитьРазделительПути());

КонецФункции

Процедура ДополнитьКомпоненты_Форма(компонентыПути)
Expand Down Expand Up @@ -339,7 +351,7 @@
Соответствие.Вставить("ОпределяемыйТип", "DefinedTypes");
Соответствие.Вставить("DefinedType", "DefinedTypes");

Соответствие.Вставить("ЖурналДокумента", "DocumentJournals");
Соответствие.Вставить("ЖурналДокументов", "DocumentJournals");
Соответствие.Вставить("DocumentJournal", "DocumentJournals");

Соответствие.Вставить("Нумератор", "DocumentNumerators");
Expand Down Expand Up @@ -421,9 +433,9 @@

Соответствие.Вставить("Конфигурация", "Configuration");
Соответствие.Вставить("Configuration", "Configuration");

Соответствие.Вставить("ВнешняяОбработка", "ExternalDataProcessors");
Соответствие.Вставить("ExternalDataProcessor", "ExternalDataProcessors");
Соответствие.Вставить("ExternalDataProcessor", "ExternalDataProcessors");

КонецЕсли;

Expand Down Expand Up @@ -459,6 +471,77 @@

КонецФункции

Функция ЭтоВнешнийИсточникДанных(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "ВНЕШНИЙИСТОЧНИКДАННЫХ" ИЛИ имяВРег = "EXTERNALDATASOURCES";

КонецФункции

Функция ЭтоТаблица(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "ТАБЛИЦА" ИЛИ имяВРег = "TABLE";

КонецФункции

Функция ЭтоФорма(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "ФОРМА" ИЛИ имяВРег = "FORM";

КонецФункции

Функция ЭтоОбщаяФорма(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "ОБЩАЯФОРМА" ИЛИ имяВРег = "COMMONFORM";

КонецФункции

Функция ЭтоМодуль(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "МОДУЛЬ" ИЛИ имяВРег = "MODULE";

КонецФункции

Функция ЭтоКоманда(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "КОМАНДА" ИЛИ имяВРег = "COMMAND";

КонецФункции

Функция ЭтоМодульОбъекта(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "МОДУЛЬОБЪЕКТА" ИЛИ имяВРег = "OBJECTMODULE";

КонецФункции

Функция ЭтоМодульМенеджера(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "МОДУЛЬМЕНЕДЖЕРА" ИЛИ имяВРег = "MANAGERMODULE";

КонецФункции
Функция ЭтоМодульКоманды(Знач ИмяМетаданных)

имяВРег = ВРег(ИмяМетаданных);

Возврат имяВРег = "МОДУЛЬКОМАНДЫ" ИЛИ имяВРег = "COMMANDMODULE";

КонецФункции

#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс
Expand All @@ -467,4 +550,4 @@
Возврат "oscript.app.cf_info";
КонецФункции

#КонецОбласти
#КонецОбласти

0 comments on commit ea78c80

Please sign in to comment.