Имя: Пароль:
1C
 
FTP удаление файлов
,
0 lamme
 
07.03.19
17:34
Делаю удаление файлов в цикле
т.е. есть кучка имен файлов - которые надо удалить с хоста

FTP.Удалить("/"+сокрлп(НовоеИмяФ));

где НовоеИмяФ =
Parts/3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870.jpg

и подоные ..
из 10 файлов удаляет 1-2. Остальные пишет
Ошибка при вызове метода контекста (Удалить): Ошибка доступа к ресурсу. Путь не найден:  /Parts/3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870.jpg/


почему ?

думал - что может паузу поставить между удалениями
не взлетело

делал так
FTP.Удалить(сокрлп(НовоеИмяФ));
не взлетело

ФАЙЛ ЕСТЬ !
1 Garykom
 
гуру
07.03.19
17:51
.jpg/

в конце ничего лишнего не замечаем?
2 lamme
 
08.03.19
08:40
(1)
специально для тех кто в танке

- на команду удалить подается имя файла как -
НовоеИмяФ =
Parts/3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870.jpg


без всякий окончаний .jpg/

а
Ошибка при вызове метода контекста (Удалить): Ошибка доступа к ресурсу. Путь не найден:  /Parts/3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870.jpg/


выдается ОписаниеОшибки()

точно такие же имена файлов подаются на удаление другие
и они удаляются нормально.
3 lamme
 
08.03.19
08:40
(1)
думаешь - я не обратил на это внимание?
4 lamme
 
08.03.19
08:41
может ли он не нахлдить файл
тк подключился по fttp
а файлов на хосте - больше 10 000
т.е. он его просто не видит
и надо подключаться по fttps
?
5 lamme
 
08.03.19
08:46
FTPS
6 lamme
 
08.03.19
10:19
да. так и есть
FTP.НайтиФайлы - покзывает всего 9999 файлов
а по факту их там гораздо больше
7 Злопчинский
 
08.03.19
10:38
может на фтп кидать скрипт который там будет вертеться и удалят?
8 d4rkmesa
 
08.03.19
12:41
(6) Что-то кажется была тема с тем же вопросом. Да, не видит 1С-овский ftp-клиент 100500 файлов. С другой стороны, обязательно ли их удалять непременно из 1С? Многие юзают скрипты специальные. А запускать их можно из 1С или откуда угодно. Либо пользоваться нестандартным доступом к ftp, к примеру, тот же WinSCP через com-объект.
9 Злопчинский
 
08.03.19
12:43
а WinSCP, что, как-то иначе на фтп стучится?
10 ДенисЧ
 
08.03.19
12:49
(9) Это 1с не так стучится...
11 d4rkmesa
 
08.03.19
12:54
(9) Ну, понятно, что это может быть ограничение со стороны сервера. Однако, тот же WinSCP все же не настолько куцый, как объект 1С, в плане работы с ftp. Надо логи смотреть, иногда бывает, что это все-таки ограничение клиента.
12 Мимохожий Однако
 
08.03.19
12:56
Применить маску пробовал
НайтиФайлы(<Путь>, <Маска>, <ИскатьВПодкаталогах>)
13 Мимохожий Однако
 
08.03.19
12:56
?
14 Garykom
 
гуру
08.03.19
14:24
(0) "НовоеИмяФ" откуда получаешь.

На ФТП могут быть каталоги/файлы с пробелом в конце в этом случае СокрЛП вредит.
15 АнализДанных
 
08.03.19
14:41
(0) Может нет прав на удаление этих файлов со стороны ОС или фтп сервера?
16 АнализДанных
 
08.03.19
14:44
(0) А что написано в логах фтп сервера?
17 lamme
 
08.03.19
15:25
это идет процесс удаления фото товаров - которого нет на остатке
те продали
НовоеИмяФ - генерю сам - по определенным правилам
по этим же правилам выгружается фото из 1С
18 Garykom
 
гуру
08.03.19
15:34
(17) У 1С с встроенным клиентом FTP есть некоторые проблемы, которые могут быть обострены настройками/реализацией FTP сервера.
Например запрет спецсимволов в именах файлов/каталогов (особенно типа "@") или регистрозависимость.
Ограничение на длину имен файлов, причем при записи оно банально обрезается.
Ну и еще куча всего.

Попробуй FTP.НайтиФайлы с маской "*" и проверь все ли находит или есть ограничение.
19 Garykom
 
гуру
08.03.19
15:37
Ну и важное замечание

FTP.Удалить(Путь, Маска)

где
Путь = "/Parts/";
Маска = "3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870.jpg";
20 lamme
 
08.03.19
15:50
18
нет. находит всего 9999 файлов из 73 000

(19)
проверю - но вроде не помогало и так.
но проверю еще раз
21 Garykom
 
гуру
08.03.19
15:56
(20) Ты маску именно просто "*" а не "*.*" делал?
22 Garykom
 
гуру
08.03.19
15:58
(20) И да возможно реализация клиента или сервере или связки не понимает больше чем 9999 файлов ))
Ну не было в те времена таких количеств обычно в одном каталоге и/или косяк разрабов.
23 NorthWind
 
08.03.19
16:46
(8) присоединяюсь. Наиболее разумным решением кажется выкидывать на сервер куда-нибудь в спецместо список файлов, которые надо удалить. А на сервере регламентом раз в период запускается скрипт, который зачитывает список... и удаляет...
24 Garykom
 
гуру
08.03.19
16:48
(23) Наиболее разумным будет реализовать http сервер на веб-сервере и там все это делать а не через древний FTP.
25 Garykom
 
гуру
08.03.19
16:48
(24) *http-сервис
26 NorthWind
 
08.03.19
16:54
(24) Если FTP настроен и работает, зачем ломать...
27 lamme
 
08.03.19
17:40
21
FTP.НайтиФайлы("/Parts/","*.jpg");
28 lamme
 
08.03.19
17:40
23
осталось понять - как такое делается
я не обладаю такой магией
29 lamme
 
08.03.19
17:46
19

а так

FTP.Удалить(Путь, НовоеИмяФ);
вообще интересно.

делаю через
Попытка
FTP.Удалить(Путь, НовоеИмяФ);
сообщить ("Удалено");
исключение
сообщить (ОписаниеОшибки());
конецпопытки

стою точкой остановки на  сообщить ("Удалено");
а файл на месте ..
а по идее - должен был удалиться ...
не понимаю
30 Garykom
 
гуру
08.03.19
17:52
(29) >а файл на месте

Возможно блокировки файлов на сервере, не дает удалить используемый чем то файл.
31 ДенисЧ
 
08.03.19
17:53
(29) лог ftp-сервера что говорит?
32 lamme
 
08.03.19
18:28
https://clip2net.com/s/40hD927

а где тут логи смотрят
33 ДенисЧ
 
08.03.19
18:46
(32) Админам такой вопрос задай, если пользуешься НЕХ
34 NorthWind
 
08.03.19
19:08
(28) а что непонятного. Вроде все очевидно. Скрипт можно сделать либо серверный, либо клиентским, в зависимости от того доступен админ сервера или нет...
35 Garykom
 
гуру
08.03.19
19:15
(34) Ага только какой к чертям скрипт если там веб хостинг (html/php) без доступа к консоли линукса.
Вполне может быть что даже из php нет доступа к файловой системе и только mysql можно использовать.
36 Garykom
 
гуру
08.03.19
19:17
(32) "Web Disk" что там?
37 Garykom
 
гуру
08.03.19
19:18
(36)+ понял это WebDAV, короче попробовать через него вместо FTP
38 NorthWind
 
08.03.19
19:29
(35) тогда клиентский скрипт можно. С нормальным ftp клиентом, который все делает хорошо и быстро.
39 lamme
 
08.03.19
19:56
тея так понял
со стороны 1с - никак
40 lamme
 
08.03.19
20:20
ну или все эти файлы из одной папки формировать по папкам/подпапкам
и эту структуру придумывать со стороны 1С


какие есть идеи по созданию каталогов из имени файла
3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870
где имя файла - это
- гуид товара _гуид хранилища значений
41 lamme
 
08.03.19
20:22
файлов пока 73000
потом будет расти ..
или не будет
хз
42 lamme
 
08.03.19
20:22
3169d447/4c45/11e8/a198/38d54777b870/025bbb21/ac1a/11e8/a298/38d54777b870/3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870.jpg
?
43 lamme
 
08.03.19
20:23
те разбить так - чтобы в одном уровне не было боле 9999 файлов
44 lamme
 
08.03.19
20:29
думаю.
что гуиды настолько уникальны
что будет на первом уровне 40 000 папок с именами типа
/3169d447/
45 lamme
 
08.03.19
20:31
дата создания файла?
типа 01.02.2019
и тогда папки делать типа
2019/02/01/3169d447-4c45-11e8-a198-38d54777b870_025bbb21-ac1a-11e8-a298-38d54777b870.jpg
46 Garykom
 
гуру
08.03.19
20:33
Сервер поменять не проще?
47 lamme
 
08.03.19
20:35
46
а что это даст?
48 lamme
 
08.03.19
20:35
хостинг на https://www.nic.ru
49 Web00001
 
09.03.19
07:14
(29)Исключение сработало, но отладчик остановился на том месте где попытка, с ней такой бывает. Вообще крайне плохая практика хранить 100500 файлов в одном месте. С этим часто бывают проблемы. Раскладывать их надо по подпапкам.
50 Garykom
 
гуру
09.03.19
16:37
(48) https://firstvds.ru/products/vds_vps_hosting
тут VDS/VPS будет по цене вашего виртуального хостинга и какой надо ftp сервер можно поставить/настроить
51 Web00001
 
10.03.19
04:27
(50)Тут проблема, скорее всего, в клиенте а не в сервере.