mirror of
https://github.com/bia-technologies/bsl-parser.git
synced 2024-11-27 08:20:55 +02:00
#ONECICD-148
исправление ошибок под EDT
This commit is contained in:
parent
b7d48b6b3b
commit
b60278be6f
@ -134,6 +134,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Подчиненные(Запись, Значение) Экспорт
|
||||
|
||||
Для Каждого ПолноеИмяЭлемента Из Значение Цикл
|
||||
|
||||
ЧастиИмени = СтрРазделить(ПолноеИмяЭлемента, ".");
|
||||
|
||||
ГенераторОписанийОбщий.ЗаписатьЗначениеXML(Запись, ЧастиИмени[0], ПолноеИмяЭлемента);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Создает xml запись описания объекта, прописывает базовые параметры
|
||||
|
@ -170,13 +170,13 @@
|
||||
|
||||
Запись.ЗаписатьНачалоЭлемента("ChildObjects");
|
||||
|
||||
// Для Каждого ПолноеИмяЭлемента Из Значение Цикл
|
||||
Для Каждого ПолноеИмяЭлемента Из Значение Цикл
|
||||
|
||||
// ЧастиИмени = СтрРазделить(ПолноеИмяЭлемента, ".");
|
||||
ЧастиИмени = СтрРазделить(ПолноеИмяЭлемента, ".");
|
||||
|
||||
// ГенераторОписанийОбщий.ЗаписатьЗначениеXML(Запись, ЧастиИмени[0], ЧастиИмени[1]);
|
||||
ГенераторОписанийОбщий.ЗаписатьЗначениеXML(Запись, ЧастиИмени[0], ЧастиИмени[1]);
|
||||
|
||||
// КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Запись.ЗаписатьКонецЭлемента();
|
||||
|
||||
|
@ -81,15 +81,15 @@
|
||||
|
||||
## Реквизиты Subsystem
|
||||
|
||||
| Наименование | ЭлементEDT | ЭлементDesigner | МетодПреобразования |
|
||||
| --------------------------- | ------------------------- | ------------------------- | ------------------- |
|
||||
| Наименование | name | Name | |
|
||||
| Синоним | synonym | Synonym | МногоязычнаяСтрока |
|
||||
| Комментарий | comment | Comment | |
|
||||
| ВключатьВКомандныйИнтерфейс | IncludeInCommandInterface | IncludeInCommandInterface | ЗначениеБулево |
|
||||
| ВключатьВСодержимоеСправки | IncludeHelpInContents | IncludeHelpInContents | ЗначениеБулево |
|
||||
| Пояснение | Explanation | Explanation | МногоязычнаяСтрока |
|
||||
| Состав | Content | Content | СоставПодсистемы |
|
||||
| Наименование | ЭлементEDT | ЭлементDesigner | МетодПреобразования | ТипЗначения |
|
||||
| --------------------------- | ------------------------- | ------------------------- | ------------------- | ----------- |
|
||||
| Наименование | name | Name | | |
|
||||
| Синоним | synonym | Synonym | МногоязычнаяСтрока | |
|
||||
| Комментарий | comment | Comment | | |
|
||||
| ВключатьВКомандныйИнтерфейс | IncludeInCommandInterface | IncludeInCommandInterface | ЗначениеБулево | |
|
||||
| ВключатьВСодержимоеСправки | IncludeHelpInContents | IncludeHelpInContents | ЗначениеБулево | |
|
||||
| Пояснение | Explanation | Explanation | МногоязычнаяСтрока | |
|
||||
| Состав | Content | Content | СоставПодсистемы | Массив |
|
||||
|
||||
## Реквизиты CommonModule
|
||||
|
||||
@ -109,11 +109,11 @@
|
||||
|
||||
## Реквизиты ExchangePlan
|
||||
|
||||
| Наименование | ЭлементEDT | ЭлементDesigner | МетодПреобразования | ЗначениеПоУмолчанию |
|
||||
| ----------------------- | ------------------------- | ------------------------- | ------------------- | ------------------- |
|
||||
| Наименование | name | Name | | |
|
||||
| Синоним | synonym | Synonym | МногоязычнаяСтрока | |
|
||||
| Комментарий | comment | Comment | | |
|
||||
| Наименование | ЭлементEDT | ЭлементDesigner | МетодПреобразования | ЗначениеПоУмолчанию |
|
||||
| ------------ | ---------- | --------------- | ------------------- | ------------------- |
|
||||
| Наименование | name | Name | | |
|
||||
| Синоним | synonym | Synonym | МногоязычнаяСтрока | |
|
||||
| Комментарий | comment | Comment | | |
|
||||
|
||||
## Реквизиты Document
|
||||
|
||||
|
@ -68,7 +68,6 @@
|
||||
|
||||
Лог = Логирование.ПолучитьЛог(ИмяЛогаСистемы());
|
||||
Лог.УстановитьРаскладку(ЭтотОбъект);
|
||||
Лог.УстановитьУровень(УровниЛога.Отладка);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
@ -57,9 +57,10 @@
|
||||
Для Каждого Часть Из СтрРазделить(ИмяОбъекта, ".") Цикл
|
||||
|
||||
Каталог = ОбъединитьПути(Каталог, ИмяКаталогВидаОбъекта(ВидОбъекта), Часть);
|
||||
ИмяОбъекта = Часть;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
Каталог = ОбъединитьПути(КаталогВидаОбъекта(ВидОбъекта), ИмяОбъекта);
|
||||
@ -388,7 +389,8 @@
|
||||
|
||||
Если ПустаяСтрока(ФорматВыгрузки) ИЛИ СтрСравнить(ФорматВыгрузки, "Авто") = 0 Тогда
|
||||
|
||||
Если ФС.ФайлСуществует(ОбъединитьПути(КаталогИсходников, ТипыОбъектовКонфигурации.ИмяТипаКонфигурации(), "Configuration.mdo")) Тогда
|
||||
ИмяФайла = ОбъединитьПути(КаталогИсходников, ТипыОбъектовКонфигурации.ИмяТипаКонфигурации(), "Configuration.mdo");
|
||||
Если ФС.ФайлСуществует(ИмяФайла) Тогда
|
||||
|
||||
ФорматВыгрузки = "EDT";
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
ЗаполнитьЗначенияСвойств(ДанныеОписания, ОписаниеОбъекта, , "Свойства");
|
||||
|
||||
РеквизитыСвойства = "Наименование, МетодПреобразования, Поле";
|
||||
РеквизитыСвойства = "Наименование, МетодПреобразования, Поле, ЭтоКоллекция";
|
||||
|
||||
РеквизитИмениПоля = ?(Формат = "EDT", "ЭлементEDT", "ЭлементDesigner");
|
||||
|
||||
|
@ -83,18 +83,22 @@
|
||||
|
||||
Данные.Вставить(Описание.Наименование, Описание.ЗначениеПоУмолчанию);
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(Описание.ТипЗначения) Тогда
|
||||
|
||||
Данные.Вставить(Описание.Наименование, Новый(Описание.ТипЗначения));
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
Данные.Вставить(Описание.Наименование);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
Если ОписаниеОбъекта.ЕстьПодчиненные Тогда
|
||||
|
||||
Данные.Вставить("Подчиненные", Новый Массив());
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Данные;
|
||||
@ -106,7 +110,7 @@
|
||||
ОписаниеОбъекта = ОписаниеСвойствОбъекта(ТипОбъекта);
|
||||
|
||||
Данные = Новый Структура("Наименование", "");
|
||||
|
||||
|
||||
Если ОписаниеОбъекта.ЕстьПодчиненные Тогда
|
||||
|
||||
Данные.Вставить("Подчиненные", Новый Массив());
|
||||
@ -114,7 +118,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Данные;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеСвойствОбъекта(ТипОбъекта) Экспорт
|
||||
@ -126,7 +130,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Свойства = СвойстваОбъектов[ТипыОбъектовКонфигурации.НормализоватьИмя(ТипОбъекта)];
|
||||
|
||||
|
||||
Если Свойства = Неопределено Тогда
|
||||
|
||||
Свойства = БазовоеОписаниеСвойствОбъекта();
|
||||
@ -135,7 +139,25 @@
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОбъекта = Новый Структура("Тип, Свойства, ЕстьПодчиненные, ЕстьЗначенияПоУмолчанию", ТипОбъекта);
|
||||
ОписаниеОбъекта.Свойства = Свойства;
|
||||
|
||||
НормализованнаяТаблицаСвойств = Новый ТаблицаЗначений();
|
||||
НормализованнаяТаблицаСвойств.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
|
||||
НормализованнаяТаблицаСвойств.Колонки.Добавить("ЭлементEDT", Новый ОписаниеТипов("Строка"));
|
||||
НормализованнаяТаблицаСвойств.Колонки.Добавить("ЭлементDesigner", Новый ОписаниеТипов("Строка"));
|
||||
НормализованнаяТаблицаСвойств.Колонки.Добавить("МетодПреобразования", Новый ОписаниеТипов("Строка"));
|
||||
НормализованнаяТаблицаСвойств.Колонки.Добавить("ЗначениеПоУмолчанию", Новый ОписаниеТипов("Строка"));
|
||||
НормализованнаяТаблицаСвойств.Колонки.Добавить("ТипЗначения", Новый ОписаниеТипов("Строка"));
|
||||
НормализованнаяТаблицаСвойств.Колонки.Добавить("ЭтоКоллекция", Новый ОписаниеТипов("Булево"));
|
||||
|
||||
Для Каждого ОписаниеСвойства Из Свойства Цикл
|
||||
|
||||
Свойство = НормализованнаяТаблицаСвойств.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(Свойство, ОписаниеСвойства);
|
||||
Свойство.ЭтоКоллекция = Свойство.ТипЗначения = "Массив";
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОписаниеОбъекта.Свойства = НормализованнаяТаблицаСвойств;
|
||||
ОписаниеОбъекта.ЕстьПодчиненные = ТипыОбъектовКонфигурации.ОписаниеТипаПоИмени(ТипОбъекта).ЕстьПодчиненные = "true";
|
||||
ОписаниеОбъекта.ЕстьЗначенияПоУмолчанию = Свойства.Колонки.Найти("ЗначениеПоУмолчанию") <> Неопределено;
|
||||
|
||||
|
@ -151,9 +151,35 @@
|
||||
|
||||
СтруктураСырыхДанных = Новый Структура();
|
||||
|
||||
Коллекции = Новый Структура();
|
||||
|
||||
Для Каждого Свойство Из ПараметрыЧтения.Свойства Цикл
|
||||
|
||||
Если Свойство.Значение.ЭтоКоллекция Тогда
|
||||
|
||||
Коллекции.Вставить(Свойство.Значение.Поле);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Элемент Из СырыеДанные Цикл
|
||||
|
||||
СтруктураСырыхДанных.Вставить(Элемент.Значение, Элемент.Представление);
|
||||
Если Коллекции.Свойство(Элемент.Значение) Тогда
|
||||
|
||||
Если НЕ СтруктураСырыхДанных.Свойство(Элемент.Значение) Тогда
|
||||
|
||||
СтруктураСырыхДанных.Вставить(Элемент.Значение, Новый Массив());
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураСырыхДанных[Элемент.Значение].Добавить(Элемент.Представление);
|
||||
|
||||
Иначе
|
||||
|
||||
СтруктураСырыхДанных.Вставить(Элемент.Значение, Элемент.Представление);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@ -167,12 +193,26 @@
|
||||
Если НЕ ПараметрыЧтения.Свойства.Свойство(Элемент.Ключ, ОписаниеСвойства) ИЛИ НЕ ЗначениеЗаполнено(ОписаниеСвойства.МетодПреобразования) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = Элемент.Значение;
|
||||
|
||||
ЗначениеВМассиве[0] = Элемент.Значение;
|
||||
Если ПараметрыЧтения.Свойства[Элемент.Ключ].ЭтоКоллекция Тогда
|
||||
|
||||
Для Инд = 0 По Значение.ВГраница() Цикл
|
||||
|
||||
ЗначениеВМассиве[0] = Значение[Инд];
|
||||
Значение[Инд] = Рефлектор.ВызватьМетод(ЭтотОбъект, ОписаниеСвойства.МетодПреобразования, ЗначениеВМассиве);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
|
||||
ЗначениеВМассиве[0] = Значение;
|
||||
Значение = Рефлектор.ВызватьМетод(ЭтотОбъект, ОписаниеСвойства.МетодПреобразования, ЗначениеВМассиве);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Значение = Рефлектор.ВызватьМетод(ЭтотОбъект, ОписаниеСвойства.МетодПреобразования, ЗначениеВМассиве);
|
||||
|
||||
ДанныеОбъекта.Вставить(Элемент.Ключ, Значение);
|
||||
ДанныеОбъекта[Элемент.Ключ] = Значение;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@ -182,7 +222,15 @@
|
||||
|
||||
Если Элемент.Значение <> "languages" И ТипыОбъектовКонфигурации.ОписаниеТипаПоИмени(Элемент.Значение) <> Неопределено Тогда
|
||||
|
||||
ДанныеОбъекта.Подчиненные.Добавить(Элемент.Представление);
|
||||
Если СтрНайти(Элемент.Представление, ".") = 0 Тогда
|
||||
|
||||
ДанныеОбъекта.Подчиненные.Добавить(Элемент.Значение + "." + Элемент.Представление);
|
||||
|
||||
Иначе
|
||||
|
||||
ДанныеОбъекта.Подчиненные.Добавить(Элемент.Представление);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
@ -85,18 +85,19 @@
|
||||
|
||||
ДанныеОбъекта = СтруктурыОписаний.СоздатьСтруктураОбъекта(ПараметрыЧтения.Тип);
|
||||
|
||||
Для Каждого Параметр Из ПараметрыЧтения.Свойства Цикл
|
||||
Для Каждого ЭлементПараметр Из ПараметрыЧтения.Свойства Цикл
|
||||
|
||||
Параметр = ЭлементПараметр.Значение;
|
||||
Значение = Неопределено;
|
||||
|
||||
Если НЕ СырыеДанные.Свойство(Параметр.Значение.Поле, Значение) Тогда
|
||||
Если НЕ СырыеДанные.Свойство(Параметр.Поле, Значение) Тогда
|
||||
|
||||
Значение = "";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеОбъекта.Вставить(Параметр.Ключ, Значение);
|
||||
|
||||
ДанныеОбъекта[ЭлементПараметр.Ключ] = Значение;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ДанныеОбъекта;
|
||||
|
Loading…
Reference in New Issue
Block a user