Здравствуйте всем, кто это читает.
Первый раз тут спрашиваю.
Кто-нибудь сталкивался с ошибкой
Ошибка при вызове метода контекста (СоздатьКаталог)
FTPСоединение.СоздатьКаталог(ЭтаФорма.Каталог);
по причине:
Ошибка работы с Интернет: ftp://*****.ucoz.site:21 Quote command returned error
Платформа 1С:Предприятие 8.3 (8.3.14.1779), БП 3.0.71.69 ПРОФ. Вариант базы клиент-серверный. Но это не суть (т.к. на этой же платформе и из-под пустой конфигурации на другом ПК работает). Текущий ПК - виртуалка Hyper-V, порт 21 и туда и оттуда открыт.
Само соединение устанавливается, без ошибок.
Файлы и каталоги читать могу.
Пробовал и пассивный и активный режимы, как только не пробовал. Иногда бывало Ошибка создания FTPсоединения: Ошибка при вызове конструктора (FTPСоединение): Ошибка работы с Интернет: ftp://*****.ucoz.site:21 Requested SSL level failed
Каталоги пробовал задавать как "123", "/123", "\123" и со слешами в конце. Пробовал не устанавливать ТекущийКаталог - безрезультатно, ошибка та же.
Вручную создать каталог можно, через ТоталКоммандор. Ну и с другого ПК, с той же платформы создаётся, если задать "/123".
Функция УстановитьFTPСоединение(Таймаут, СпособВыбораСертификатаWindowsАвто = Неопределено)
Если ЭтаФорма.РекПрокси = 1 Тогда
Прокси = Неопределено;
ИначеЕсли ЭтаФорма.РекПрокси = 2 Тогда
Прокси = Новый ИнтернетПрокси(Истина);
ИначеЕсли ЭтаФорма.РекПрокси = 3 Тогда
Прокси = Новый ИнтернетПрокси(Ложь);
КонецЕсли;
ПассивноеСоединение = ЭтаФорма.РекПассивноеСоединение;
Если ЭтаФорма.РекЗащищенноеСоединение = 1 Тогда
ЗащищенноеСоединение = Неопределено;
ИначеЕсли ЭтаФорма.РекЗащищенноеСоединение = 2 Тогда
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
ИначеЕсли ЭтаФорма.РекЗащищенноеСоединение = 3 Тогда
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindowsАвто),
Новый СертификатыУдостоверяющихЦентровWindows());
ИначеЕсли ЭтаФорма.РекЗащищенноеСоединение = 4 Тогда
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(),
Новый СертификатыУдостоверяющихЦентровWindows());
ИначеЕсли ЭтаФорма.РекЗащищенноеСоединение = 5 Тогда
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(),
Новый СертификатыУдостоверяющихЦентровФайл("C:\Program Files (x86)\1cv8\8.3.14.1779\bin\cacert.pem"));
ИначеЕсли ЭтаФорма.РекЗащищенноеСоединение = 6 Тогда
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindowsАвто),
Новый СертификатыУдостоверяющихЦентровФайл("C:\Program Files (x86)\1cv8\8.3.14.1779\bin\cacert.pem"));
КонецЕсли;
Если ЭтаФорма.РекУровеньИспользованияЗащищенногоСоединения = 1 Тогда
УровеньИспользованияЗащищенногоСоединения = Неопределено;
ИначеЕсли ЭтаФорма.РекУровеньИспользованияЗащищенногоСоединения = 2 Тогда
УровеньИспользованияЗащищенногоСоединения = УровеньИспользованияЗащищенногоСоединенияFTP.Авто;
ИначеЕсли ЭтаФорма.РекУровеньИспользованияЗащищенногоСоединения = 3 Тогда
УровеньИспользованияЗащищенногоСоединения = УровеньИспользованияЗащищенногоСоединенияFTP.ИспользоватьЕслиВозможно;
ИначеЕсли ЭтаФорма.РекУровеньИспользованияЗащищенногоСоединения = 4 Тогда
УровеньИспользованияЗащищенногоСоединения = УровеньИспользованияЗащищенногоСоединенияFTP.НеИспользовать;
ИначеЕсли ЭтаФорма.РекУровеньИспользованияЗащищенногоСоединения = 5 Тогда
УровеньИспользованияЗащищенногоСоединения = УровеньИспользованияЗащищенногоСоединенияFTP.Требовать;
ИначеЕсли ЭтаФорма.РекУровеньИспользованияЗащищенногоСоединения = 5 Тогда
УровеньИспользованияЗащищенногоСоединения = УровеньИспользованияЗащищенногоСоединенияFTP.ТребоватьДляУправления;
КонецЕсли;
Попытка
FTPСоединение = Новый FTPСоединение(
ЭтаФорма.Адрес,
Число(ЭтаФорма.Порт),
ЭтаФорма.Логин,
ЭтаФорма.Пароль,
Прокси,
ПассивноеСоединение,
Таймаут,
ЗащищенноеСоединение,
УровеньИспользованияЗащищенногоСоединения
);
Исключение
FTPСоединение = Неопределено;
Сообщить("Ошибка создания FTPсоединения: " + ОписаниеОшибки());
КонецПопытки;
Возврат FTPСоединение;
КонецФункции
//ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
//Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
//Новый СертификатыУдостоверяющихЦентровWindows());
//
//ssl2 = Новый ЗащищенноеСоединениеOpenSSL(
//Новый СертификатКлиентаWindows(),
//Новый СертификатыУдостоверяющихЦентровФайл("C:/certs/myca.pem"));
//
//ssl3 = Новый ЗащищенноеСоединениеOpenSSL(
//Новый СертификатКлиентаФайл("C:/certs/user.p12", "password" ),
//Новый СертификатыУдостоверяющихЦентровФайл("C:/certs/myca.pem"));
//
//ssl4 = Новый ЗащищенноеСоединениеOpenSSL( неопределено, неопределено );
//
//ssl5 = Новый ЗащищенноеСоединениеOpenSSL(
//Новый СертификатКлиентаФайл("C:/certs/user.p13", "password" ),
//Новый СертификатыУдостоверяющихЦентровОС());
Ошибка при вызове метода контекста (Записать)
FTPСоединение.Записать(ИмяВременногоФайла, "test.txt");
по причине:
Ошибка работы с Интернет: ftp://*****.ucoz.site:21 Upload failed (at start/before it took off)
а логин и пароль совпадают при ручном подключении к ФТП и из 1с?
Проверил и сверил при отладке адрес, порт, логин и пароль, с этим всё ок.
Тогда бы я даже не мог посмотреть список файлов.
У пользователя права есть, т.к. на другом ПК отрабатывает норм, и через тотал командер всё получается.
Если что-то не так заполнить, тогда уже Ошибка аутентификации при доступе к ресурсу Login denied соответственно сразу же при подключении.
Платформа получает настройки прокси из настроек профиля пользователя (если речь идет о Windows). Как правило, полноценный профиль для пользователя, от имени которого запускается сервер 1С не создают. В таком случае имеет смысл создать этот профиль зайти в него и проверить настройки прокси.
(6) Просто тут ещё проблема в том, что это не мой сервер, где не работает создание каталога. В Windows административных прав нет. И настройки эти посмотреть нет возможности. В этом проблема :(.
Через cURL (первый блок - с обычного ПК, где ОК; второй блок - с машины, где из 1С так же не создаётся каталог на ФТП).
Может ли блокировать файервол на второй машине? (Там, кстати, Windows Server 2012 на Hyper-V, подключаюсь через RemoteApp)
curl -k -v "ftp://ftp_user01:Passwd99@ftpsrv.oursite.ru/" -Q "-MKD /123" --ftp-pasv --ftp-create-dirs --proxy-basic
* Trying 47.156.67.88:21...
* TCP_NODELAY set
* Connected to ftpsrv.oursite.ru (47.156.67.88) port 21 (#0)
< 220 Welcome to FTP Server 'a'
> USER ftp_user01
< 331 Please specify the password.
> PASS Passwd99
< 230 Login successful.
> PWD
< 257 "/" is the current directory
* Entry path is '/'
> EPSV
* Connect data stream passively
* ftp_perform ends with SECONDARY: 0
< 229 Entering Extended Passive Mode (|||20438|)
* Trying 47.156.67.88:20438...
* TCP_NODELAY set
* Connecting to 47.156.67.88 (47.156.67.88) port 20438
* connect to 47.156.67.88 port 21 failed: Connection refused
* Failed to connect to ftpsrv.oursite.ru port 21: Connection refused
* Failed EPSV attempt. Disabling EPSV
> PASV
< 227 Entering Passive Mode (47,156,67,88,79,52).
* Trying 47.156.67.88:20276...
* TCP_NODELAY set
* Connecting to 47.156.67.88 (47.156.67.88) port 20276
* Connected to ftpsrv.oursite.ru (47.156.67.88) port 21 (#0)
> TYPE A
< 200 Switching to ASCII mode.
> LIST
< 150 Here comes the directory listing.
* Maxdownload = -1
drwx------ 3 1542 601 4096 Aug 16 21:03 313
-rw------- 1 1542 601 0 Aug 09 10:42 new_file.txt
* Remembering we are in dir ""
< 226 Directory send OK.
> MKD /123
< 257 "/123" created
* Connection #0 to host ftpsrv.oursite.ru left intact
curl ftp://ftp_user01:Passwd99@ftpsrv.oursite.ru/ drwx------ 2 1542 601 4096 Aug 21 08:26 123
drwx------ 3 1542 601 4096 Aug 16 21:03 313
-rw------- 1 1542 601 0 Aug 09 10:42 new_file.txt
curl -k -v "ftp://ftp_user01:Passwd99@ftpsrv.oursite.ru/" -Q "-MKD /124" --ftp-pasv --ftp-create-dirs --proxy-basic
* Trying 47.156.67.88:21...
* TCP_NODELAY set
* Connected to ftpsrv.oursite.ru (47.156.67.88) port 21 (#0)
< 220 Welcome to FTP Server 'a'
> USER ftp_user01
< 331 Please specify the password.
> PASS Passwd99
< 230 Login successful.
> PWD
< 257 "/" is the current directory
* Entry path is '/'
> EPSV
* Connect data stream passively
< 550 Access is denied.
* Failed EPSV attempt. Disabling EPSV
> PASV
* ftp_perform ends with SECONDARY: 0
< 227 Entering Passive Mode (47,156,67,88,80,182).
* Trying 47.156.67.88:20662...
* TCP_NODELAY set
* Connecting to 47.156.67.88 (47.156.67.88) port 20662
* Connected to ftpsrv.oursite.ru (47.156.67.88) port 21 (#0)
> TYPE A
< 200 Switching to ASCII mode.
> LIST
< 150 Here comes the directory listing.
* Maxdownload = -1
drwx------ 2 1542 601 4096 Aug 21 08:26 123
drwx------ 3 1542 601 4096 Aug 16 21:03 313
-rw------- 1 1542 601 0 Aug 09 10:42 new_file.txt
* Remembering we are in dir ""
< 226 Directory send OK.
> MKD /124
< 550 Access is denied.
* QUOT string not accepted: MKD /124
* Connection #0 to host ftpsrv.oursite.ru left intact
curl: (21) QUOT string not accepted: MKD /124