1
0
mirror of https://github.com/bia-technologies/bsl-parser.git synced 2025-02-19 20:00:02 +02:00

#ONECICD-211

Определение типов для EDT
This commit is contained in:
aleksey.koryakin 2019-11-01 14:44:31 +03:00
parent 2a0386712f
commit f87cf0ff38
2 changed files with 24 additions and 18 deletions

View File

@ -64,7 +64,7 @@
Значение = ЧтениеОписанийБазовый.ЗначениеВложенногоТэга(ЧтениеXML, "types");
Возврат ЧтениеОписанийБазовый.ПреобразоватьТип(Значение);
Возврат ЧтениеОписанийБазовый.ПреобразоватьТип(Значение, Истина);
КонецФункции

View File

@ -201,32 +201,38 @@
// Возвращаемое значение:
// Строка - Дружелюбное имя
//
Функция ПреобразоватьТип(ТипИзXML) Экспорт
Функция ПреобразоватьТип(ТипИзXML, ФорматEDT = Ложь) Экспорт
// TODO: Проверить для EDT
СоответствиеТипов = Новый Соответствие;
ПримитивныеТипы = Новый Соответствие;
СоответствиеТипов.Вставить("xs:boolean", "Булево");
СоответствиеТипов.Вставить("xs:decimal", "Число");
СоответствиеТипов.Вставить("xs:string", "Строка");
СоответствиеТипов.Вставить("xs:dateTime", "Дата");
СоответствиеТипов.Вставить("v8:ValueStorage", "Хранилище Значений");
СоответствиеТипов.Вставить("v8:UUID", "UUID");
СоответствиеТипов.Вставить("v8:Null", "Null");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "xs:", "") + "boolean", "Булево");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "xs:", "") + "decimal", "Число");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "xs:", "") + "number", "Число");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "xs:", "") + "string", "Строка");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "xs:", "") + "datetime", "Дата");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "xs:", "") + "date", "Дата");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "v8:", "") + "valuestorage", "Хранилище Значений");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "v8:", "") + "uuid", "UUID");
ПримитивныеТипы.Вставить(?(НЕ ФорматEDT, "v8:", "") + "null", "Null");
Если СтрНачинаетсяС(ТипИзXML, "xs") Или СтрНачинаетсяС(ТипИзXML, "v8") Тогда
ПреобразованныйТип = ПримитивныеТипы[НРег(ТипИзXML)];
ПреобразованныйТип = СоответствиеТипов[ТипИзXML];
ИначеЕсли СтрНачинаетсяС(ТипИзXML, "cfg:") Тогда
Если ПреобразованныйТип = Неопределено И ФорматEDT И СтрНайти(ТипИзXML, ".") Тогда
ЧастиТипа = СтрРазделить(ТипИзXML, ".");
ПреобразованныйТип = ТипыОбъектовКонфигурации.ПолучитьИмяТипаНаРусском(СтрЗаменить(ЧастиТипа[0], "Ref", "")) + "." + ЧастиТипа[1];
ИначеЕсли НЕ ФорматEDT И СтрНачинаетсяС(ТипИзXML, "cfg:") Тогда
ТипИзXML = СтрЗаменить(ТипИзXML, "cfg:", "");
ЧастиТипа = СтрРазделить(ТипИзXML, ".");
ТипОбъекта = СтрЗаменить(ЧастиТипа[0], "Ref", "");
ПреобразованныйТип = ТипыОбъектовКонфигурации.ПолучитьИмяТипаНаРусском(ТипОбъекта) + "." + ЧастиТипа[1];
Иначе
ПреобразованныйТип = ТипыОбъектовКонфигурации.ПолучитьИмяТипаНаРусском(СтрЗаменить(ЧастиТипа[0], "Ref", "")) + "." + ЧастиТипа[1];
КонецЕсли;
Если ПреобразованныйТип = Неопределено Тогда
ПреобразованныйТип = ТипИзXML;