Как УдалитьФайлы() в серверном контексте?

1. limitless 01.08.17 11:53 Сейчас в теме
1С Предприятие 8.3, УФ (толстый клиент), клиент-серверный режим, динамический список, множественное выделение.
В поле элементов справочника хранятся имена файлов.
Требуется при удалении из справочника удалять и файлы (с диска).

Прописал в модуле объекта справочника в ПередУдалением() Отмена = истина если выбивает исключение при удалении файла. (раз файл не удалился, то и элемент справочника оставить)

УдалитьФайлы() не удаляет файлы (и не выбивает исключений, если файлы заняты). По хелпу метод на сервере доступен.
Как побороть? Что я не учёл?
Найденные решения
14. Octopus 337 01.08.17 14:48 Сейчас в теме
(12) Как вариант, создавайте их в расшаренной папке, которую видит сервер. И отправляйте ему сетевой путь.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Octopus 337 01.08.17 12:03 Сейчас в теме
(1) А пути к файлам клиентские или серверные?
4. limitless 01.08.17 13:46 Сейчас в теме
(2) Пути к файлам серверные
5. Boneman 298 01.08.17 13:54 Сейчас в теме
(1)
Как побороть?

после удаления файла, дополнительно проверить - остался ли он на диске или нет.
Функция ПроверитьСуществованиеФайла(ПутьКФайлу) Экспорт
    Файл = Новый Файл(ПутьКФайлу);
    Возврат Файл.Существует();
КонецФункции


ну и код свой бы приложил
6. limitless 01.08.17 14:06 Сейчас в теме
(5) В том и вопрос что файлы всегда остаются на диске, УдалитьФайлы() не удаляет их. Если базу завести в файловом режиме - удаляёт; в клиент-серверном - не удаляет.

Procedure BeforeDelete(Cancel) //Модуль объекта; незыблемо серверный контекст
	try
		DeleteFiles(File);
	except
		Cancel = true;
	endtry;
EndProcedure	

Сделал так по рекомендации в предшествующем этапе
7. Boneman 298 01.08.17 14:16 Сейчас в теме
(6) значит у агента сервера, нет прав на файловые операции. На сервере, оно работает не от пользователя, а от агента.
Либо пути неверные.
Должно все работать и на сервере.

Еще, может быть какое то кэширование на самом сервере. У меня на прошлой работе, админы всю сетку на цитриксах и виртуалках намутили, - так много странностей насмотрелся при файловых операциях..то не появляется файлы, то не удаляются..потыкаешь, поперезапускаешь - раз, все заработает. Но тут, природы явления я не могу объяснить

А вообще, раз ошибки нет, значит реально пути некорректные. Она же ошибку генерит только если у файла read only, а если файла по пути нет - то и удалять нечего, никакой ошибки и не будет.
Думаю, в путях проблема.
limitless; +1 Ответить
8. Octopus 337 01.08.17 14:26 Сейчас в теме
(7) Еще есть вариант, что файл на месте, но у одной из папок в пути к нему нет доступа к чтению содержимого
11. limitless 01.08.17 14:39 Сейчас в теме
(8) Всё равно непонятно, почему не бросаются исключения. Файла нет, либо прав - результат-эксепшн то должен быть? А оно ведёт себя никак, будто УдалитьФайлы() не компилируется…
13. Octopus 337 01.08.17 14:46 Сейчас в теме
(11) Ну вот такая она, эта 1Ска... Костыль: проверяйте существование файла перед удалением и после. На основе этих данных выводите свое сообщение об ошибке.
9. limitless 01.08.17 14:35 Сейчас в теме
(7) Sorry, поправочка. Файлы лежат на RDP сервере, сервер 1С предприятия на другой машине.
Выходит, пути к файлам клиентские.
10. Octopus 337 01.08.17 14:39 Сейчас в теме
(9) Передавайте пути так, как их видит сервер 1С. Тогда удалит. Ну и права проверить не помешает, конечно.
12. limitless 01.08.17 14:46 Сейчас в теме
(10) Да, таки пути клиентские; файлы создаются/обрабатываются в функциях &НаКлиенте.
Значит, сервер 1С их никак не (у)видит?
14. Octopus 337 01.08.17 14:48 Сейчас в теме
(12) Как вариант, создавайте их в расшаренной папке, которую видит сервер. И отправляйте ему сетевой путь.
3. VmvLer 01.08.17 12:06 Сейчас в теме
собрать файлы в массив и удалять по одному

потом снова собрать в массив и если его количество не ноль, значит столько то удалить не удалось по причинам...таким то
15. limitless 01.08.17 14:51 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот