|
Ошибка при FTPСоединение.Получить | ☑ | ||
---|---|---|---|---|
0
yurikmellon2
13.04.23
✎
09:37
|
День добрый. Прошу помощи спецов.
Задача перекинуть файл с FTP сервера на локальный ресурс. Вроде всё просто, но валит ошибку "Ошибка работы с Интернет: ftp://92.53.96.218:21 FTP: weird server reply" Подключаюсь в пассивном режиме. Валится на строчке FTPСоединение.Получить(ФайлНаСервере.ПолноеИмя,"C:\temp\" + ФайлНаСервере.Имя); При этом на локальном ресурсе файл создаётся, но пустой, с нулевым размером. Не могу понять в чём причина. Какие то настройки FTP сервера? Или что? FTPСоединение = Новый FTPСоединение(Адрес,,Логин,Пароль,,Истина); ФайлыНаРесурсе = FTPСоединение.НайтиФайлы ("/answer","*.xml",); // /answer Если ФайлыНаРесурсе.Количество()>0 Тогда Для Каждого ФайлНаСервере из ФайлыНаРесурсе Цикл КаталогИтог = ИмяКаталога +"\"+ ФайлНаСервере.ИмяБезРасширения + ".xml"; //FTPСоединение.Получить(ФайлНаСервере.ПолноеИмя,КаталогИтог); FTPСоединение.Получить(ФайлНаСервере.ПолноеИмя,"C:\temp\" + ФайлНаСервере.Имя); // КонецЦикла; ПрочитатьФайлXML(); КонецЕсли; https://i.imgur.com/nEuuZhH.jpg https://i.imgur.com/YewOAUX.jpg |
|||
1
Garykom
гуру
13.04.23
✎
09:27
|
||||
2
yurikmellon2
13.04.23
✎
09:33
|
(1) видел эту тему. Там решилось Пассивным режимом. Я же написал в (0), что подключаюсь именно так. FTPСоединение = Новый FTPСоединение(Адрес,,Логин,Пароль,,Истина); Истина это как раз пассивный режим.
|
|||
3
Казуар
13.04.23
✎
09:44
|
если правый слеш
КаталогИтог = ИмяКаталога +"/"+ ФайлНаСервере.ИмяБезРасширения + ".xml"; FTPСоединение.Получить(ФайлНаСервере.ПолноеИмя,КаталогИтог); |
|||
4
Garykom
гуру
13.04.23
✎
09:45
|
(2) Ты плохо видел
Там ""I resolve my problem, it was a configuration problem from my ftp server ! My fault , sorry ;-) This message appear when you limit the numbers of IPs to connect to the ftp server, in my case the limit was 2, I change to 5. "" |
|||
5
Смотрящий
13.04.23
✎
09:49
|
(0) Ищещшь файлы в каталоге "/answer", а читать пытаешься из корня ...
|
|||
6
yurikmellon2
13.04.23
✎
09:50
|
(4) это я тоже проверил, лимит соединений не превышается
|
|||
7
yurikmellon2
13.04.23
✎
09:52
|
||||
8
Смотрящий
13.04.23
✎
09:54
|
(7) Эт ты так думаешь. Выдай команду УстановитьТекущийКаталог перед циклом чтения.
|
|||
9
yurikmellon2
13.04.23
✎
09:54
|
(3) я уже не в КаталогИтог пишу, а тупо себе на локальный диск "C:\temp\" + ФайлНаСервере.Имя
не в этом дело |
|||
10
yurikmellon2
13.04.23
✎
09:57
|
(8) спасибо за идею, но нет, не помогло
|
|||
11
Garykom
гуру
13.04.23
✎
09:59
|
Покажи
Сообщить(""+ФайлНаСервере.ПолноеИмя); |
|||
12
Смотрящий
13.04.23
✎
10:00
|
(10) Читай не по полному имени, а по имени файла
|
|||
13
yurikmellon2
13.04.23
✎
10:05
|
||||
14
yurikmellon2
13.04.23
✎
10:08
|
(12) такая же фигня. Установил текущий каталог answer, FTPСоединение.Получить(ФайлНаСервере.Имя
Ошибка та же FTP: weird server reply |
|||
15
Garykom
гуру
13.04.23
✎
10:10
|
FTPСоединение.УстановитьТекущийКаталог("/");
сделай перед Получить() |
|||
16
Garykom
гуру
13.04.23
✎
10:11
|
Суть что путь для Получить() передается относительно текущего каталога
|
|||
17
yurikmellon2
13.04.23
✎
10:13
|
(15) если по имени, то файл не находит Remote file not found
если по полному, то weird server reply |
|||
18
Garykom
гуру
13.04.23
✎
10:13
|
Гм хотя в (13) есть первый слеш в "/answer/SA143249.xml"
Странно но попробуй FTPСоединение.УстановитьТекущийКаталог("/"); FTPСоединение.Получить("answer/SA143249.xml","C:\temp\" + "SA143249.xml"); |
|||
19
Garykom
гуру
13.04.23
✎
10:16
|
(18)+ либо уже
FTPСоединение.УстановитьТекущийКаталог("/answer/"); FTPСоединение.Получить("SA143249.xml","C:\temp\" + "SA143249.xml"); |
|||
20
yurikmellon2
13.04.23
✎
10:16
|
(18)
Сообщить(""+ФайлНаСервере.ПолноеИмя); FTPСоединение.УстановитьТекущийКаталог("/"); //FTPСоединение.Получить(ФайлНаСервере.ПолноеИмя,"C:\temp\" + ФайлНаСервере.Имя); FTPСоединение.Получить("answer/SA143249.xml","C:\temp\" + ФайлНаСервере.Имя); то же самое weird server reply |
|||
21
yurikmellon2
13.04.23
✎
10:17
|
(19) то же самое
|
|||
22
Garykom
гуру
13.04.23
✎
10:17
|
Попробуй другим клиентом скачать этот файл
Например встроенным в Total или Far Возможно файл на блокировке |
|||
23
Garykom
гуру
13.04.23
✎
10:18
|
(22)+ И какая ошибка будет или лог
|
|||
24
yurikmellon2
13.04.23
✎
10:18
|
дело, судя по всему, в настройках FTP сервера, код рабочий. Вт что с настройками не так?
|
|||
25
yurikmellon2
13.04.23
✎
10:19
|
(22) FileZilla'ой без проблем копирую
|
|||
26
Garykom
гуру
13.04.23
✎
10:20
|
(24) см (22)
т.е. пробуешь другим клиентом и смотришь что отвечает сервер на попытку Получить 1С к сожалению ответы которые не понимает тупо сообщает "weird server reply" |
|||
27
Garykom
гуру
13.04.23
✎
10:21
|
Эм а точно не FTPS?
|
|||
28
Garykom
гуру
13.04.23
✎
10:22
|
FTPСоединение (FTPConnection)
По указанному серверу Синтаксис: Новый FTPСоединение(<Сервер>, <Порт>, <ИмяПользователя>, <ПарольПользователя>, <ПассивноеСоединение>, <Таймаут>, <ЗащищенноеСоединение>, <УровеньИспользованияЗащищенногоСоединения>) Параметры: <Сервер> (обязательный) Тип: Строка. Сервер, с которым осуществляется соединение. <Порт> (необязательный) Тип: Число. Порт сервера, с которым осуществляется соединение. Значение по умолчанию для FTP соединений равно 21, для защищенных FTPS соединений - 990. Значение по умолчанию: порт по умолчанию для используемого протокола. <ИмяПользователя> (необязательный) Тип: Строка. Имя пользователя на указанном сервере. <ПарольПользователя> (необязательный) Тип: Строка. Пароль пользователя на указанном сервере. <ПассивноеСоединение> (необязательный) Тип: Булево. Определяет тип ftp-соединения. Значение по умолчанию: Ложь. <Таймаут> (необязательный) Тип: Число. Таймаут в секундах на установку FTP соединения и выполнение FTP операций. 0 - не устанавливать таймаут. Значение по умолчанию: 0. <ЗащищенноеСоединение> (необязательный) Тип: ЗащищенноеСоединениеOpenSSL, Неопределено. Объект защищенного соединения для осуществления FTPS-соединения, если указан. Если параметр не задан, выполняется попытка подключения к серверу FTP или FTPES в незащищенном режиме. При этом, если сервер требует установки защищенного режима, будет сгенерирована ошибка. Значение по умолчанию: Неопределено. <УровеньИспользованияЗащищенногоСоединения> (необязательный) Тип: УровеньИспользованияЗащищенногоСоединенияFTP. Определяет требования по использованию защищенного SSL-соединения. Значение по умолчанию: Авто. Описание: Создает объект FTPСоединение. Использование в версии: Доступен, начиная с версии 8.0. Методическая информация |
|||
29
Смотрящий
13.04.23
✎
10:23
|
(25) FTPСоединение = Новый FTPСоединение(Адрес,,Логин,Пароль,,Истина);
5 параметр должен быть Истина, у тебя Ложь по умолчанию 6 параметр - число, у тебя булево |
|||
30
Смотрящий
13.04.23
✎
10:24
|
Перед Истина запятую убери
|
|||
31
yurikmellon2
13.04.23
✎
10:28
|
(27) да не, подключение же проходит. Файл то на сервере в каталоге ищется
вот это же отрабатывает ФайлыНаРесурсе = FTPСоединение.НайтиФайлы ("/answer","*.xml",); |
|||
32
Garykom
гуру
13.04.23
✎
10:34
|
(31) "Протокол FTP устанавливает между клиентом и сервером два типа соединений. Одно из них называется управляющим соединением и предназначено для передачи команд, а второе называется соединением для передачи данных и предназначается для передачи различных файлов на сервер. К первому типу соединения, то есть к управляющему, активный или пассивный режимы работы FTP не имеют никакого отношения. Выбор между этими двумя режимами делается пользователем при установке соединения для передачи данных."
https://vps.ua/wiki/ftp-mode/ поиск он по управляющему и не связан с передачей/получением файлов "Главное отличие активного и пассивного режимов работы протокола FTP состоит в том, кто из связки клиент-сервер производит подключение для передачи данных, то есть, грубо говоря, кто к кому подключается. Также отличаются порты, на которые производится передача данных. При активном режиме работы, клиент производит управляющее соединение с сервером, а вот подключение для передачи данных производит уже сам сервер. При пассивном режиме работы подключение для передачи данных, равно как и управляющее соединение с сервером инициируется только клиентом. То есть, в активом режиме сервер подключается к клиенту для передачи данных, а в пассивном – клиент к серверу." |
|||
33
Garykom
гуру
13.04.23
✎
10:36
|
но странно что у тебя булево в поле числовое таймаут прокатило
вероятно еще все осложнилось Истина = 1, т.е. таймаут 1 секунда |
|||
34
yurikmellon2
13.04.23
✎
10:36
|
||||
35
yurikmellon2
13.04.23
✎
10:38
|
(33) Булево в параметре ПассивныйРежим.
Таймаут я тоже пытался выставлять, не помогло |
|||
36
Garykom
гуру
13.04.23
✎
10:39
|
(34) пиши в 1С у них справка неправильная ))
|
|||
37
Garykom
гуру
13.04.23
✎
10:39
|
(36)+ сейчас проверил на 8.3.22
такой же прикол что быстрая подсказка отличается от СП |
|||
38
yurikmellon2
13.04.23
✎
10:42
|
(37) если по другому параметры расставлять, то ошибка "Не соответствие параметров". Т.е. параметры соединения, всё таки, выставлены правильно
|
|||
39
Garykom
гуру
13.04.23
✎
10:46
|
(38) проверь
после создания FTPСоединение глянь что в "FTPСоединение.ПассивныйРежим" |
|||
40
yurikmellon2
13.04.23
✎
10:49
|
(39) Истина
https://i.imgur.com/OF0bEeN.jpg |
|||
41
Garykom
гуру
13.04.23
✎
10:49
|
файрвол проверь
еще лучше попробуй с другого компа(ip) и другой версии платформы 1С |
|||
42
Garykom
гуру
13.04.23
✎
10:51
|
||||
43
Garykom
гуру
13.04.23
✎
10:52
|
(42)+ в макет с двоичными данными засунь, когда надо сохраняешь и запускаешь с параметрами
|
|||
44
yurikmellon2
13.04.23
✎
11:12
|
(41) запустил обработку с сервера, на котором лежит база - всё работает.
Я, конечно, затупил, надо было сразу это попробовать. Всем спасибо за потраченное время. Буду дальне разбираться почему с сервера работает, а с локальной машины нет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |