Решение с использованием рекурсивной функции.
Обработка во вложении.
Алгоритм в описании.
Внешний вид отчета:
Модуль формы:
Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартанаяОбработка = Ложь;
Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать() Тогда
Каталог = ДиалогОткрытияФайла.Каталог;
Иначе
Каталог = "";
Предупреждение("Каталог не выбран!");
КонецЕсли;
КонецПроцедуры
Процедура Сформировать()
Дерево.Строки.Очистить();
Если СокрЛП(Каталог) = "" тогда
Предупреждение("Необходимо указать начальный каталог");
Возврат;
КонецЕсли;
ВыполнитьДействие(Дерево);
ЭлементыФормы.Дерево.НачальноеОтображениеДерева = НачальноеОтображениеДерева.НеРаскрывать;
ЭлементыФормы.Дерево.СоздатьКолонки();
КонецПРоцедуры
Модуль объекта:
Функция ЗаполнитьДерево (ПутьКаталога,врДерево)
НайденныеФайлы = НайтиФайлы(ПутьКаталога,"*");
Для каждого ф из НайденныеФайлы цикл
Если ф.ЭтоКаталог() И НЕ ф.ПолучитьНевидимость() тогда
НовСтр = врДерево.Строки.Добавить();
НовСтр.Каталог = ф.Имя;
ЗаполнитьДерево(ПутьКаталога+"\"+ф.Имя,НовСтр);
КонецЕсли;
КонецЦикла;
КонецФункции
Процедура ВыполнитьДействие(ДеревоЗн) Экспорт
НовСтр = ДеревоЗн.Строки.Добавить();
НовСтр.Каталог = Каталог;
ЗаполнитьДерево(Каталог,НовСтр);
КонецПРоцедуры
Файлы обработки:
- 1S 8.1 Ierarhiya papok v zadannom kataloge. Ispol'zovanie rekursivnoj funkcii..erf Для скачивания нужна регистрация
В этой группе 1С
- [ПОЛЕЗНОСТИ] по СКД и запросам (обновлено 14.11.11)
- Тестирование регулярных выражений
- Микрографики в табличной части
- Распределение сотрудников по виду животного (состав зоопарка на предприятии).
- Обработка поиска дублей кода. Исходного кода модулей 1С
- Управляемое приложение. Внешняя обработка. Создание связанных объектов
- Управляемое приложение. Внешняя обработка. Заполнение объекта
- Число Прописью на любом языке