Функция ПолучитьТипФайлаПоКаталогуИсходников(Знач КаталогИсходников) ПутьКФайлуРут = ОбъединитьПути(КаталогИсходников, "root"); ФайлРут = Новый Файл(ПутьКФайлуРут); Ожидаем.Что(ФайлРут.Существует(), "Файл <" + ПутьКФайлуРут + "> должен существовать").ЭтоИстина(); Ожидаем.Что(ФайлРут.ЭтоКаталог(), "<" + ПутьКФайлуРут + "> должен быть файлом").ЭтоЛожь(); ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуРут); СодержаниеРут = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); МассивСтрокРут = СтрРазделить(СодержаниеРут, ","); Ожидаем.Что(МассивСтрокРут.Количество(), "Некорректный формат файла root").Больше(1); ПутьКФайлуКорневойКонтейнер = ОбъединитьПути(КаталогИсходников, МассивСтрокРут[1]); ФайлКорневойКонтейнер = Новый Файл(ПутьКФайлуКорневойКонтейнер); Ожидаем.Что(ФайлКорневойКонтейнер.Существует(), "Файл <" + ПутьКФайлуКорневойКонтейнер + "> должен существовать").ЭтоИстина(); Ожидаем.Что(ФайлКорневойКонтейнер.ЭтоКаталог(), "<" + ПутьКФайлуКорневойКонтейнер + "> должен быть файлом").ЭтоЛожь(); ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлуКорневойКонтейнер); СодержаниеКорневойКонтейнер = ""; Для сч = 1 По 7 Цикл ПрочитаннаяСтрока = ЧтениеТекста.ПрочитатьСтроку(); Если ПрочитаннаяСтрока = Неопределено Тогда Прервать; КонецЕсли; СодержаниеКорневойКонтейнер = СодержаниеКорневойКонтейнер + ПрочитаннаяСтрока; КонецЦикла; ЧтениеТекста.Закрыть(); МассивСтрокКорневойКонтейнер = СтрРазделить(СодержаниеКорневойКонтейнер, ","); Ожидаем.Что(МассивСтрокКорневойКонтейнер.Количество(), "Некорректный формат файла корневого контейнера <" + ПутьКФайлуКорневойКонтейнер + ">").Больше(3); ИдентификаторТипаОбъекта = СокрЛП(МассивСтрокКорневойКонтейнер[3]); Если Лев(ИдентификаторТипаОбъекта, 1) = "{" Тогда ИдентификаторТипаОбъекта = Прав(ИдентификаторТипаОбъекта, СтрДлина(ИдентификаторТипаОбъекта) - 1); КонецЕсли; Если Прав(ИдентификаторТипаОбъекта, 1) = "}" Тогда ИдентификаторТипаОбъекта = Лев(ИдентификаторТипаОбъекта, СтрДлина(ИдентификаторТипаОбъекта) - 1); КонецЕсли; ИдентификаторТипаОбъекта = НРег(СокрЛП(ИдентификаторТипаОбъекта)); Если ИдентификаторТипаОбъекта = "c3831ec8-d8d5-4f93-8a22-f9bfae07327f" Тогда ТипФайла = "epf"; ИначеЕсли ИдентификаторТипаОбъекта = "e41aff26-25cf-4bb6-b6c1-3f478a75f374" Тогда ТипФайла = "erf"; Иначе ВызватьИсключение("Некорректный идентификатор типа собираемого объекта <" + ИдентификаторТипаОбъекта + ">"); КонецЕсли; Возврат ТипФайла; КонецФункции