#использовать WinExt Перем Обмен; Процедура ПолучитьСписокФайлов(Знач РабочийКаталог, СписокФайлов) МассивДопустимыхРасширений = Новый Массив; МассивДопустимыхРасширений.Добавить(".epf"); МассивДопустимыхРасширений.Добавить(".erf"); МассивДопустимыхРасширений.Добавить(".cf"); Каталоги = НайтиФайлы(РабочийКаталог, "*.*", Истина); Для Каждого НайденныйФайл Из Каталоги Цикл Если МассивДопустимыхРасширений.Найти(НайденныйФайл.Расширение) <> Неопределено Тогда СписокФайлов.Вставить(НайденныйФайл.ПолноеИмя, НайденныйФайл.ПолноеИмя); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ПриСозданииОбъекта() Обмен = ЗагрузитьСценарий("core/Обмен.os"); РаботаСОкнами = Новый РаботаСОкнами(); РаботаСОкнами.ЗапомнитьТекущееОкно(); Настройки = ЗагрузитьСценарий("settings\СписокКаталоговВнешнихФорм.os").Настройки; Если Настройки.Количество() = 0 Тогда ТекстПредупреждения = "Необходимо указать пути внешних отчетов/обработок: settings/СписокКаталоговВнешнихФорм.os"; Обмен.Предупреждение(ТекстПредупреждения, "Внешние файлы"); Возврат; КонецЕсли; СписокФайлов = Новый Соответствие; Для каждого Путь Из Настройки Цикл ПолучитьСписокФайлов(Путь, СписокФайлов); КонецЦикла; ВыборИзСписка = ЗагрузитьСценарий("core/SelectValue.os"); Результат = ВыборИзСписка.ВыбратьИзСписка(СписокФайлов, Истина); РаботаСОкнами.АктивироватьЗапомненноеОкно(); МСПослатьКлавиши = Новый МСПослатьКлавиши; МСПослатьКлавиши.ПослатьCtrlO(); Если НЕ Обмен.ЕстьОкноСЗаголовком("Открыт") Тогда Возврат; КонецЕсли; Обмен.УстановитьТекстВВыделение(Результат); МСПослатьКлавиши.ПослатьКлавиши("{Enter}"); КонецПроцедуры