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