Имя: Пароль:
1C
1С v8
Рекурсивный обход каталога на клиенте без модальности
, ,
0 nicxxx
 
18.05.19
20:46
Вопрос - как это сделать?
Файл.ЭтоКаталог() выдает ошибку.
Конструкция
    Для Каждого Файл Из Файлы Цикл
        Файл.НачатьПроверкуЭтоКаталог(ОписаниеОповещения);
    КонецЦикла;
сначала проходит весь цикл, а потом начинает проваливаться в оповещения, в рекурсию не уходит.
Это фиаско?
1 Garykom
 
гуру
18.05.19
20:54
Каким место и где оно должно уходить в рекурсию?
2 Garykom
 
гуру
18.05.19
20:55
Тебе нужно рекурсивную ОписаниеОповещения ваять с передачей через ДополнительныеПараметры
3 Garykom
 
гуру
18.05.19
20:58
Процедура ЭтоКаталогЗавершение(ЭтоКаталог, ДополнительныеПараметры)
...
Оповещение = Новый ОписаниеОповещения("ЭтоКаталогЗавершение", ДополнительныеПараметры);
Файл = ...
Файл.НачатьПроверкуЭтоКаталог(Оповещение);
...
КонецПроцедуры
4 palsergeich
 
18.05.19
22:24
иди от прааативного.
У каталогов - расришение - пустая строка
5 palsergeich
 
18.05.19
22:26
Конечно существование файлов без расширения допустимо, но я такое видел ну ооочень редко
6 Garykom
 
гуру
18.05.19
22:59
7 palsergeich
 
18.05.19
23:05
(6) И в найденных файлах у каталога в расширении что то будет?
8 Garykom
 
гуру
18.05.19
23:06
(7) А уй знает не проверял
9 palsergeich
 
18.05.19
23:07
Не, то что файл без расширения допустим, не спорю.
Но это редкость.
Если надо железобетонно, то страдай с Оповещениями.
Если это не критично, то можно пойти по простому пути
10 Garykom
 
гуру
18.05.19
23:07
(8)+ Смотря как в платформе 1С расширение ищется, по идее должно быть пусто и все засунет в наименование каталога.
Но могут быть нюансы.
11 palsergeich
 
18.05.19
23:08
Это как правило служебные файлы, и если их опустить, ничего не изменится, я пока необходимости проверки на это файл не встречал.
12 Garykom
 
гуру
18.05.19
23:09
(11) Под линуксом файлы без расширений это очень часто и они совершенно не служебные
13 vde69
 
18.05.19
23:17
на мой взгляд можно и не использовать НачатьПроверкуЭтоКаталог а просто взять ЭтоКаталог наплевав на асинхронность
14 Garykom
 
гуру
18.05.19
23:31
(13) Обращение к файловой системе при запрете модальности?
А если сбой файловой и что будет? Поэтому и запретили с ошибкой как и написано в (0)
15 Провинциальный 1сник
 
19.05.19
07:20
Блин, вот 1с наложила граблей с этой асинхронностью.. В отличие от запрета модальности, в котором есть логика и смысл, в отказе от синхронных вызовов смысла нет вообще. Только лишний гемор на ровном месте.
16 nicxxx
 
19.05.19
07:48
(2) так вот не уходят они в рекурсию.
(13) run-time error: Использование модальных вызовов запрещено!
17 Garykom
 
гуру
19.05.19
14:47
(16) >так вот не уходят они в рекурсию.

Код покажи что там не уходит
18 palsergeich
 
19.05.19
15:24
(16) Потому что рекурсия в привычном виде там невозможна, исполнение кода прерывается.
Тебе надо передавать всю коллекцию файлы и текущий элемент.
19 palsergeich
 
19.05.19
15:24
Там надо хитрее делать
20 palsergeich
 
19.05.19
15:26
(18) Неверно выразился, не исполнение кода прерывается, а асинхронный обработчик ломает обычный ход рекурсии
21 Garykom
 
гуру
19.05.19
15:29
Имхо надо добавить проверку коллекции файлов на ЭтоКаталог в платформу
22 nicxxx
 
19.05.19
17:09
(17) все удалил, сделал &НаСервере.
(20) сразу видно, человек в теме
(21) золотые слова
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn