Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Рекурсивный обход каталога на клиенте без модальности

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.