В продолжение темы
v8: Как из типа значения (Тип) получить значение по умолчанию данного типа?
Написал функцию, которая из переменной, в которой хранится описание типов, получает некоторое значение по умолчанию.
Для простоты тип может быть ссылкой на документ, ссылкой на справочник, строкой, числом, датой, логическим.
Вопрос: что в этой функции можно оптимизировать?
// А - переменная типа ОписаниеТипов
Функция ПолучитьЗначениеПоУмолчанию(А)
Если А.Типы().Количество() = 1 Тогда
Если Найти(Строка(А.Типы()[0]), "Справочник") > 0 Тогда
Возврат Справочники[Метаданные.НайтиПоТипу(А.Типы()[0]).Имя].ПустаяСсылка();
ИначеЕсли Найти(Строка(А.Типы()[0])), "Документ") > 0 Тогда
Возврат Документы[Метаданные.НайтиПоТипу(Элемент.ТекущаяСтрока.Реквизит.ТипДанных.ТипЗначения.Типы()[0]).Имя].ПустаяСсылка();
ИначеЕсли Строка(А.Типы()[0]) = "Строка" Тогда
Возврат "";
ИначеЕсли Строка(А.Типы()[0]) = "Число" Тогда
Возврат 0;
ИначеЕсли Строка(А.Типы()[0]) = "Дата" Тогда
Возврат Дата(1,1,1);
ИначеЕсли Строка(А.Типы()[0]) = "Булево" Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецФункции
Для добавления обработки новых типов, надо добавить соответствующие ветки в дереве условий.