Добрый день всем!
Следующая ситуация:

1) Пользователь руками жмёт по кнопке и попадает в метод "УдалитьФайлы(ПутьПапки,"*") ( чистим папку сперва) , после туда записываются новые файлы. Этот метод находится в общем модуле "На сервере".

2) Так же есть обмен, который выгружает эти файлы из этой папки с определенной переодичностью.

3) В итоге если будет пересечение 1 и 2, вылезет ошибка "совместного доступа к файлу".

Собственно помогите, как с помощью попытки, сделать так, чтобы в (1) через некоторое время попыталось это сделать ещё раз,если с первой попытки не получилось!?
 Ну или без попытки..
---
Было уже похожее обсуждение, My Webpage в нем рассматриваются два варианта, один с именами файлов, второй при помощи попытки получения двоичных данных. Второй кстати используется так же в типовых конфигурациях. Еще я где-то видел что без попытки можно через Новый Файл, метод Существует().
---
```1c
    Попытка

    Исключение

    КонецПопытки;

    КонДата = ТекущаяДата() + 10;
    Пока ТекущаяДата() < КонДата Цикл
    //ждем 10 секунд
    КонецЦикла;

    ///снова попытка
```
---
Было уже похожее обсуждение, My Webpage в нем рассматриваются два варианта, один с именами файлов, второй при помощи попытки получения двоичных данных. Второй кстати используется так же в типовых конфигурациях. Еще я где-то видел что без попытки можно через Новый Файл, метод Существует().
---
```1c
    Процедура ПробуемУдалитьФайлы()
    Попытка
    УдалитьФайлы(ПутьПапки,"*")
    Исключение
    СтрокаЗапроса = "ping -n 1 -w "+Формат(1000 * ЗадержкаСекунд, "ЧДЦ=0; ЧГ=") + " 127.255.255.255";
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.Run(СтрокаЗапроса, 0, -1);
    ПробуемУдалитьФайлы();
    КонецПопытки

    КонецПроцедуры
```

Как то так)
---
Я борол созданием дополнительного файла с другим расширением. Этот файл создавался после полной записи первого, а второй процесс проверял наличие второго файла, и если он есть - удалял первый и второй. Ну и пока второго файла нет - первый не записан полностью...
---
```1c
    Попытка

    Исключение

    КонецПопытки;

    КонДата = ТекущаяДата() + 10;
    Пока ТекущаяДата() < КонДата Цикл
    //ждем 10 секунд
    КонецЦикла;

    ///снова попытка
```
---
Только это надо в "Исключение же "?

```1c
    КонДата = ТекущаяДата() + 10;
    Пока ТекущаяДата() < КонДата Цикл
    //ждем 10 секунд
    КонецЦикла;
```
---
Это уже нюансы. Главное сам способ вполне рабочий.
---
Решил проверить Ваш способ.

Открыл файл в этой папке и попробовал выполнить метод "УдалитьФайлы". Поставил на 30 сек.
Закрыл файл.
30 сек прошло и всё равно вылазит ошибка: "Ошибка совместного доступа к файлу 'путь\Thumbs.db"

Непонятно сколько времени файл Thumbs.db винда держит...

Спустя примерно пару минут отработало.. Как то криво выходит.
---
Плюс интересно насколько это влияет на производительность за 120 сек он 7милионов раз по циклу прошёл..
---
Ну посмотри как загружен процессор и память в эти 2 минуты. Не думаю, что будет заметно, он же не делает в эти две минуты ничего. Я такую задержку делал для автоматической рассылки из 1С иначе почтовый сервер не давал отправлять сразу кучу писем.
---
Может быть по кнопке (1) не сразу кидаться удалять файлы, а подключить обработку ожидания с попыткой и повтором сколько-то раз..
---
Она для клиента вроде как только.
---
Ну да. Всё верно. Кнопку пользователь на клиенте нажимает, запускается обработка ожидания, а из нее - серверный вызов.
---
```1c
    // Удалим в каталоге все файлы CSV
    Попытка
    УдалитьФайлы(Каталог, "*");
    Исключение
    #Если Клиент Тогда
    Сообщить(ОписаниеОшибки());
    #КонецЕсли
    КонецПопытки;
```