Мой вариант функции ПолучитьРазвернутыйТипРеквизита():
Функция ПолучитьРазвернутыйТипРеквизита(ТипР)
ТипРеквизита = "";
Для Каждого ТекТип Из ТипР.Типы() Цикл
СтрТекТип = Строка(ТекТип);
Если Справочники.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
СтрТекТип = "Справочник " + """" + ТекТип + """";
ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
СтрТекТип = "Документ " + """" + ТекТип + """";
ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
СтрТекТип = "Перечисление " + """" + ТекТип + """";
МетаПеречисление = Метаданные.НайтиПоТипу(ТекТип);
СтрТекТип = СтрТекТип + " (значения: ";
Первый = Истина;
Для Каждого ЗначП Из МетаПеречисление.ЗначенияПеречисления Цикл
СтрТекТип = СтрТекТип + ?(Первый, "", ", ") + ЗначП.Имя;
Первый = Ложь;
КонецЦикла;
СтрТекТип = СтрТекТип + ")";
ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
СтрТекТип = "План видов характеристик " + """" + ТекТип + """";
ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
СтрТекТип = "План счетов " + """" + ТекТип + """";
ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТекТип) Тогда
СтрТекТип = "План видов расчетов " + """" + ТекТип + """";
ИначеЕсли ТекТип = Тип("Строка") Тогда
СтрТекТип = "Строка(" + ?(ТипР.КвалификаторыСтроки.Длина = 0, "неогр.", ТипР.КвалификаторыСтроки.Длина) + ")";
ИначеЕсли ТекТип = Тип("Число") Тогда
СтрТекТип = "Число(" + ТипР.КвалификаторыЧисла.Разрядность + ", " + ТипР.КвалификаторыЧисла.РазрядностьДробнойЧасти + ")"
+ ?(ТипР.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный, " неотриц.", "");
ИначеЕсли ТекТип = Тип("Дата") Тогда
СтрТекТип = "Дата (" + ТипР.КвалификаторыДаты.ЧастиДаты + ")";
КонецЕсли;
ТипРеквизита = ТипРеквизита + ?(ПустаяСтрока(ТипРеквизита), "", Символы.ПС) + СтрТекТип;
КонецЦикла;
Возврат ТипРеквизита;
КонецФункции;
Показать