// Параметры:
// ИмяКомпоненты - Строка - имя макета компоненты
// КлассКомпоненты - Строка - имя
// ТипВнешнейКомпоненты - ТипВнешнейКомпоненты, * - по умолчанию Native
Функция ПолучитьОбъектВнешнейКомпонентыИзМакета(ИмяМакетаКомпоненты, ИмяОбъекта, ИмяКомпоненты = Неопределено, Знач ТипКомпоненты = Неопределено,
ИмяМакетаДополнительнойБиблиотеки = "") Экспорт
Если ТипКомпоненты = Неопределено Тогда
ТипКомпоненты = ТипВнешнейКомпоненты.Native;
КонецЕсли;
Попытка
Результат = Новый (ИмяОбъекта);
Исключение
Если ИмяКомпоненты = Неопределено Тогда
ИмяКомпоненты = ИмяМакетаКомпоненты;
КонецЕсли;
Если КодСимвола(ИмяМакетаКомпоненты, 1) >= 128 Тогда
//
https://www.hostedredmine.com/issues/890335 ВызватьИсключение "Нельзя использовать кириллические буквы в именах файлов внешних компонент";
КонецЕсли;
ФайлКомпоненты = ПроверитьЗаписатьКомпонентуИзМакетаВФайл(ИмяМакетаКомпоненты);
Местоположение = ФайлКомпоненты.ПолноеИмя;
Если ЗначениеЗаполнено(ИмяМакетаДополнительнойБиблиотеки) Тогда
ФайлДополнительнойБиблиотеки = ПроверитьЗаписатьКомпонентуИзМакетаВФайл(ИмяМакетаДополнительнойБиблиотеки);
КонецЕсли;
Успех = ПодключитьВнешнююКомпоненту(Местоположение, ИмяКомпоненты, ТипКомпоненты);
ПодключитьВнешнююКомпоненту(ИмяОбъекта);
Попытка
Результат = Новый (ИмяОбъекта);
Исключение
КонецПопытки;
КонецПопытки;
Возврат Результат;
КонецФункции