Версия для печати темы (https://pro1c.org.ua/index.php?s=cfa2b7fcca0b2d4433b4b7d4e55d833f&showtopic=15101)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Удаление файла с FTP сервера
Автор: Bernet 25.10.13, 14:34
Доброго времени суток! Наболел ещё 1 вопрос, задача в следующем: Нужно получить файл (xml) с FTP сервера, распарсить, занести данные в базу и удалить файл на FTP сервере.
Использую объект FTPСоединение, ищу нужный мне файл, получаю его, заношу данные в базу - тут все без проблем. Но когда пытаюсь удалить файл через метод Соединение.Удалить(<ПутьКФайлу>,<МаскаПоиска>), то выдает ошибку "Ошибка аутентификации при доступе к ресурсу", не понимаю из-за чего, ведь под этим соединением скачать файлы с сервера получилось. Думал может проблема в самом соединении, может какой-то тайм-аут срабатывает, решил перед удалением переподключиться, но все равно удалить не дает, хотя подключение проходит и файл находит.
Сразу отвечаю на следующий вопрос - права на удаление у пользователя есть, я через тотал командер захожу на FTP и могу удалить любой файл, но соединение через 1С не дает.
Благодарен за ваши предложения.
Автор: Fabri 25.10.13, 15:14
Скопируйте Ваш код:
Соединение.Удалить(<ПутьКФайлу>,<МаскаПоиска>)
Возможно вы указываете файл в строке вот так:
Соединение.Удалить("/www/path/file.txt")
А по логике правильно использовать так:
Соединение.Удалить("/www/path/","file.txt")
Автор: Bernet 25.10.13, 15:54
благодарю Farbi, ваш ответ помог) Как то неоднозначно они написали в СП
Цитата
Синтаксис:
Удалить(<Путь>, <Маска>)
Параметры:
<Путь> (обязательный)
Тип: Строка.
Путь к удаляемым файлам на сервере.
<Маска> (необязательный)
Тип: Строка.
Маска для выбора файлов.
я и давал на вход полный путь к файлу, включая имя, т.е. Соединение.Удалить("/www/path/file.txt") и маску задавал "*.xml" - я думал это чтоб быстрее файлы отбирало, расширение указывать нужно. А выходит нужно как вы сказали Соединение.Удалить("/www/path/","file.txt") и все взлетело. Ещё раз спасибо
Автор: logist 25.10.13, 15:57
Цитата(Bernet @ 25.10.13, 16:54)
Как то неоднозначно они написали в СП
Почему же неоднозначно, очень даже однозначно - путь к удаляемым файлам, т.е. путь к файлам, а не путь к файлу, и не имя файла включая полный путь.
Автор: Bernet 25.10.13, 16:01
Ну может и так. Меня с толку сбила Маска, в моем понимании это ".xml", ".txt" - словом расширения файлов, а не фактически сами файлы (наименование+расширение), вот и полетел биться головой в стену... ну да ладно, главное удалось разобраться и вопрос закрыт
Автор: Fabri 25.10.13, 16:14
Цитата
в моем понимании это ".xml", ".txt"
Маска (шаблон) — имена файлов, в которых используются символы «*» и «?». Символ «?» заменяет один любой символ. Символ «*» заменяет любое число произвольных символов. Например, маска text?.doc означает все файлы с именами text1.doc , text2.doc , texta.doc и т.д.
Возмжно Вы начинали не из MSDOS и книги Фигурнова - IBM PC для пользователя
Автор: Bernet 25.10.13, 16:19
однозначно не с них
Цитата(Fabri @ 25.10.13, 17:14)
Маска (шаблон) — имена файлов, в которых используются символы «*» и «?». Символ «?» заменяет один любой символ. Символ «*» заменяет любое число произвольных символов. Например, маска text?.doc означает все файлы с именами text1.doc , text2.doc , texta.doc и т.д.
это мне знакомо ещё с универа, когда в Access'e запросы пробовали писать) но я почему-то про это не вспомнил
Автор: Ardi 25.10.13, 16:48
Цитата(Fabri @ 25.10.13, 17:14)
Возмжно Вы начинали не из MSDOS и книги Фигурнова - IBM PC для пользователя
Фигурнов поди милиардер.
Автор: logist 20.11.13, 11:20
Встряну и я со своей проблемой. Не удаляется файл с фтп, ошибка "Quote command returned error"
Процедура удаления проста:
Процедура УдалитьФайлыСТСД(ТаблицаФайлов)
ФТП = Новый FTPСоединение(СокрЛП(ОбработкаОбъект.IP_PDT));
Для Каждого ФайлТСД Из ТаблицаФайлов Цикл
Попытка
ФТП.УстановитьТекущийКаталог(ФайлТСД.Путь); // Текущий каталог устанавливается корректно
ФТП.Удалить(ФайлТСД.Путь,ФайлТСД.Имя);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
ФТП = Неопределено;
КонецПроцедуры
Создание новых и чтение файлов происходит без ошибок. Ошибки только при удалении, тестово пробовал переместить файл, та же ошибка что и при удалении.
Автор: pablo 20.11.13, 11:32
ФайлТСД.Путь содержит в конце слэш/бэкслэш?
Автор: logist 20.11.13, 11:48
Цитата(pablo @ 20.11.13, 12:32)
ФайлТСД.Путь содержит в конце слэш/бэкслэш?
Содержит, пробовал и без слэша, результат тот же.
Путь и Имя файла получены через НайтиФайлы, так что они там присутствуют. Через обычный ФТП клиент удаляется нормально.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua