|
Перебор папок | ☑ | ||
---|---|---|---|---|
0
knij
21.06.17
✎
11:16
|
Здравствуйте! Прошу помочь.
Необходимо сделать перебор подкаталогов в выбранном каталоге. Кусочек моего кода: МассивКаталогов = Найти(Путь,"*",Истина); Для Каждого Папка Из МассивКаталогов Цикл Сообщить(Папка.ПолноеИмя); КонецЦикла; Но он не работает, отладчик мимо цикла идет. |
|||
1
Ёпрст
21.06.17
✎
11:18
|
Найти с 3 параметрами ? И даже ошибки не выдаёт ? Удивительно
|
|||
2
Ёпрст
21.06.17
✎
11:20
|
Ну и, Найти() возвращает Число, а не массив.
|
|||
3
Ёпрст
21.06.17
✎
11:20
|
Мот того, покажешь реальный код ?
|
|||
4
knij
21.06.17
✎
11:22
|
(1)
Синтаксис: НайтиФайлы(<Путь>, <Маска>, <ИскатьВПодкаталогах>) |
|||
5
knij
21.06.17
✎
11:23
|
Ошибочка вместо Найти, НайтиФайлы
|
|||
6
Ёпрст
21.06.17
✎
11:23
|
(4) теперь смотри в (0)
|
|||
7
Ёпрст
21.06.17
✎
11:23
|
(4) "*.*"
|
|||
8
Chameleon1980
21.06.17
✎
11:24
|
во первых у тебя в (0) - НАйти
второе - вроде маска пишется типа "*.*" для всех |
|||
9
Chameleon1980
21.06.17
✎
11:24
|
и третье показывай кода больше
|
|||
10
Ёпрст
21.06.17
✎
11:25
|
Ну и это, Путь то чему хоть равен ?
|
|||
11
knij
21.06.17
✎
11:34
|
(9) (10) Путь - папка внутренних документов, выбираю на форме.
Код выглядит примерно так: &НаКлиенте Процедура Поиск(Команда) ПоискКаталогов(); КонецПроцедуры &НаСервере Процедура ПоискКаталогов() МассивКаталогов = НайтиФайлы(Путь, "*.*", Истина); Для Каждого Папка Из МассивКаталогов Цикл Сообщить(Папка); КонецЦикла; КонецПроцедуры |
|||
12
Ёпрст
21.06.17
✎
11:39
|
(11) И ?
Сообщить(Путь) ? |
|||
13
Ёпрст
21.06.17
✎
11:40
|
И не видно, где ты там путь передаешь в серверную процу
|
|||
14
knij
21.06.17
✎
11:41
|
(13) Путь выводит, подкаталоги нет
|
|||
15
Chameleon1980
21.06.17
✎
11:46
|
для подкаталогов нужно, наверное, типа рекурсии делать
(13) ПоискКаталогов у него, наверное, в модуле обработки путь - реквизит обработки |
|||
16
Chameleon1980
21.06.17
✎
11:47
|
(15) вложенность есть дальше?
|
|||
17
knij
21.06.17
✎
11:50
|
(16) Верно, путь - реквизит обработки
Вложенность в Путь? Если, да, то имеется |
|||
18
Ёпрст
21.06.17
✎
12:08
|
Вот так, че кажет ?
Сообщить(НайтиФайлы("C:\", "*.*", Истина).Количество()); |
|||
19
lodger
21.06.17
✎
12:20
|
&НаСервере
НайтиФайлы(Путь, "*.*", Истина) + &НаКлиенте "Путь - папка внутренних документов, выбираю на форме" а сервер у вас де? у него такой же путь есть? али база файловая? |
|||
20
knij
26.06.17
✎
06:52
|
Прошу помочь, никак не удается перебрать папки в папке внутренних документов. Пожалуйста, подскажите как быть
В моем случае папка - справочникссылка.папкивнутреннихдокументов |
|||
21
1dvd
26.06.17
✎
06:56
|
(20) на вопросы отвечай, иначе никто не сможет помочь
|
|||
22
1dvd
26.06.17
✎
06:56
|
и это... ты уверен, что данный каталог существует на сервере?
|
|||
23
knij
26.06.17
✎
06:58
|
(21) папка существует, я его выбираю на форме
|
|||
24
knij
26.06.17
✎
07:09
|
Путь - реквизит формы(СправочникСсылка.ПапкиВнутреннихДокументов)
|
|||
25
Рэйв
26.06.17
✎
07:10
|
(24)я не понял.Ты хочешь перебрать папки в файловой системе или группы в справочнике?
|
|||
26
knij
26.06.17
✎
07:18
|
(25) Прошу прощения за непонятное объяснение ситуации, написанное выше.
Как я понимаю это справочник. |
|||
27
1dvd
26.06.17
✎
07:22
|
ппц
|
|||
28
Рэйв
26.06.17
✎
07:37
|
(26)Ну ты замутил интиргу:-)
|
|||
29
Рэйв
26.06.17
✎
07:38
|
(26)Сформулируй вопрос еще раз, на этот раз по возможности на литературном русском.
|
|||
30
igorPetrov
26.06.17
✎
07:39
|
(29) не смогет он.
|
|||
31
Рэйв
26.06.17
✎
07:40
|
(30)Да, если честно, у меня тоже есть сомнения:-)
|
|||
32
knij
26.06.17
✎
09:40
|
(30) (31) Как я понял, перебор можно осуществить с помощью выборки
Выборка = Справочники.ПапкиВнутреннихДокументов.ВыбратьИерархически(ПутьКПапке); Сообщить(Выборка.Наименование); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование); КонецЦикла; А теперь другой вопрос, не получается сделать условие, не подскажите где проблема? Условие заключается в том, что если в колонке текущей строки значение = имени подпапки, полученного при переборе, то... Выборка = Справочники.ПапкиВнутреннихДокументов.ВыбратьИерархически(ПутьКПапке); Пока Выборка.Следующий() Цикл НаименованиеП = Выборка.Наименование; НаименованиеС = ТекСтрока[ИндексКолонки]; Если НаименованиеП = НаименованиеС Тогда Папка = Выборка; Иначе Текст = "Папки не существует"; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |