|   |   | 
| 
 | Ошибка при 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) запустил обработку с сервера, на котором лежит база - всё работает.
 Я, конечно, затупил, надо было сразу это попробовать. Всем спасибо за потраченное время. Буду дальне разбираться почему с сервера работает, а с локальной машины нет. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |