diff --git a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os index 3d72dc6..c8b44eb 100644 --- a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os +++ b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os @@ -64,7 +64,7 @@ Значение = ЧтениеОписанийБазовый.ЗначениеВложенногоТэга(ЧтениеXML, "types"); - Возврат ЧтениеОписанийБазовый.ПреобразоватьТип(Значение); + Возврат ЧтениеОписанийБазовый.ПреобразоватьТип(Значение, Истина); КонецФункции diff --git a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийБазовый.os b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийБазовый.os index 37e64fb..06eee93 100644 --- a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийБазовый.os +++ b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийБазовый.os @@ -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;