Имя: Пароль:
1C
1C 7.7
v7: Ошибка отправки файла DialMail
0 felix_2013
 
10.01.13
16:40
Добрый день, пытаюсь отправить файл из 1с на ftp сервер, немогу понять в чём проблема при отправке файла ( к серверу поключается)

Лог:

10.01.13 15:16:39.390 FTP: Подключаемся к сокету
10.01.13 15:16:39.539 FTP: К сокету подключились успешно
10.01.13 15:16:39.700 FTP <-- 220 ProFTPD 1.3.2 Server (ProFTPD) [::ffff:91.149.157.168]
10.01.13 15:16:39.703 FTP --> USER [email protected]
10.01.13 15:16:39.861 FTP <-- 331 Password required for [email protected]
10.01.13 15:16:39.863 FTP --> PASS *****
10.01.13 15:16:40.017 FTP <-- 230 User [email protected] logged in
10.01.13 15:16:40.020 FTP --> TYPE I
10.01.13 15:16:40.179 FTP <-- 200 Type set to I
10.01.13 15:16:40.181 FTP --> STRU F
10.01.13 15:16:40.340 FTP <-- 200 Structure set to F
10.01.13 15:16:40.342 FTP --> REST 0
10.01.13 15:16:40.491 FTP <-- 501 REST not compatible with server configuration
10.01.13 15:16:40.497 FTP --> EPRT |1|192.168.5.101|29506|
10.01.13 15:16:40.500 FTP <-- 550 Access is denied.
10.01.13 15:16:40.502 FTP --> PORT 192,168,5,101,115,66
10.01.13 15:16:40.506 FTP <-- 500 Invalid PORT command.
10.01.13 15:16:40.512 FTP --> QUIT
10.01.13 15:16:40.669 FTP <-- 221 Goodbye.

Код отправки

ЗагрузитьВнешнююКомпоненту("DialMail.dll");
     SystComm = СоздатьОбъект("AddIn.SystComm");
     Сообщить(SystComm.Версия);
     FTP = СоздатьОбъект("AddIn.FTP");
     FTP.ИмяЛогФайла = "";
     FTP.ВестиЛогФайл = 0;
     FTP.ИспользоватьSSL = 0;
     FTPСервер = "ftp.xxxxxx.ru";      
     FTPПользователь = "user";
     FTPПароль = "pswrd";
     FTPПорт = "ftp";
     FTPПассивныйРежим = 0;
     Если FTP.Подключиться(FTPСервер, FTPПорт, FTPПользователь, FTPПароль, FTPПассивныйРежим) = 0 тогда
           Сообщить("соединение c " + FTPСервер + " не установлено...", "!");
     Иначе
           Сообщить("соединение c " + FTPСервер + " прошло успешно!");
           Если FTP.ОтправитьФайл(КаталогИБ()+ "price.txt", ИмяФайла, 0) = 1 Тогда
                       тЧас = 0;
                       тМинута = 0;
                       тСекунда = 0;
                       ТекущееВремя(тЧас, тМинута, тСекунда);
                 Сообщить("Произведена отправка прайса для " + FTPСервер + " время отправки:" + тЧас + ":" + тМинута + ":" + тСекунда);
           Иначе
                 Сообщить("Ошибка отправки прайса...");
           КонецЕсли;            
           FTP.Отключиться();
     КонецЕсли;
1 felix_2013
 
10.01.13
16:41
P.S с протоколом ftp знаком слабо, поэтому извините если глупые вопросы задаю
2 varelchik
 
10.01.13
16:49
А ты уверен что подключается?
читаем внимательно:
10.01.13 15:16:40.500 FTP <-- 550 Access is denied.
10.01.13 15:16:40.502 FTP --> PORT 192,168,5,101,115,66
10.01.13 15:16:40.506 FTP <-- 500 Invalid PORT command.
это когда у ФТП был порт отличный от 21?
3 felix_2013
 
10.01.13
16:58
нет, порт был всегда указан как 21
4 varelchik
 
10.01.13
17:12
1.
убери:
  FTPПорт = "ftp";
2. проверь авторизация то проходить в ручную.
3. попробуй Пассивныйрежим=1
5 varelchik
 
10.01.13
17:13
еще момент.
версия dialmail?
6 varelchik
 
10.01.13
17:13
возми с сайта последнюю
вроде как 16
7 varelchik
 
10.01.13
17:14
DialMail 2.7.6 pb 16
8 felix_2013
 
10.01.13
17:17
varelchik, FTPПорт = "ftp"; убирал, ставил FTPПорт = "21";
авторизацию проверял, пробовал и под именем администратора тоже, на фтп вроде как попадает
Пассивный режим тоже пробовал

10.01.13 16:13:29.750 FTP: Подключаемся к сокету
10.01.13 16:13:29.863 FTP: К сокету подключились успешно
10.01.13 16:13:30.051 FTP <-- 220 ProFTPD 1.3.2 Server (ProFTPD) [::ffff:91.149.157.168]
10.01.13 16:13:30.053 FTP --> USER [email protected]
10.01.13 16:13:30.183 FTP <-- 331 Password required for [email protected]
10.01.13 16:13:30.185 FTP --> PASS *****
10.01.13 16:13:30.325 FTP <-- 230 User [email protected]
logged in
10.01.13 16:13:30.327 FTP --> TYPE I
10.01.13 16:13:30.442 FTP <-- 200 Type set to I
10.01.13 16:13:30.444 FTP --> STRU F
10.01.13 16:13:30.571 FTP <-- 200 Structure set to F
10.01.13 16:13:30.573 FTP --> REST 0
10.01.13 16:13:30.735 FTP <-- 501 REST not compatible with server configuration
10.01.13 16:13:30.742 FTP --> EPSV 1
10.01.13 16:13:30.749 FTP <-- 550 Access is denied.
10.01.13 16:13:30.752 FTP --> PASV
10.01.13 16:13:30.884 FTP <-- 227 Entering Passive Mode (91,149,157,168,173,57).
10.01.13 16:13:31.036 FTP --> TYPE I
10.01.13 16:13:31.248 FTP <-- 200 Type set to I
10.01.13 16:13:31.250 FTP --> ALLO 801
10.01.13 16:13:31.257 FTP <-- 550 Access is denied.
10.01.13 16:13:31.258 FTP --> STOR export.csv
10.01.13 16:13:31.262 FTP <-- 550 Access is denied.
10.01.13 16:13:31.267 FTP --> QUIT
10.01.13 16:13:31.402 FTP <-- 221 Goodbye.
9 felix_2013
 
10.01.13
17:17
dialmail 276 pb16
10 varelchik
 
10.01.13
17:19
а что есть: ИмяФайла?
11 varelchik
 
10.01.13
17:20
попробуй обычным фаром зайти или тоталом
12 felix_2013
 
10.01.13
17:22
ИмяФайла = "D:\1C\U_A\export.csv"
 ФайлДанных = "export.csv"
13 felix_2013
 
10.01.13
17:23
FIleZilla заходит
14 felix_2013
 
10.01.13
17:25
а хотя ... походу наш системник перехимичил с правами, спасибо , вроде разобрался , dialmail потдерживает SFTP ?
15 felix_2013
 
10.01.13
17:26
делал через сервер , а там оказывается был косяк с ftp, проверял на своём - заходит
16 varelchik
 
10.01.13
17:29
доку хорошо читал?
здесь:
ОтправитьФайл(<?>,<?>,<?>)
Синтаксис
ОтправитьФайл(<ПутьКФайлуНаДиске>,<ПутьКФайлуFTP>,[<Докачка>])
Назначение
Отправить (положить) файл на сервер FTP.
Возвращаемое значение:
1 - отправка прошла удачно.
0 - ошибка при отправке.
Параметры:
<ПутьКФайлуНаДиске> - полный путь к файлу на диске (например, 'c:\file.zip')
<ПутьКФайлуFTP> - полный путь к файлу на сервере ftp (например, '/www/file.zip', или 'file.zip' - если файл будет расположен в текущем каталоге ftp сервера)
<Докачка> - при 1 - включить режим докачки, 0 - качать заново.   Необязательный. По умолчанию 0.

Пример:
ЗагрузитьКомпоненту(''DialMail.dll'');
FTP=СоздатьОбъект(''AddIn.FTP'');
Если FTP.Подключиться(''ftp.sait.ru'',,''Ivanov'',''qqq'',1,3)=1 тогда
      Если FTP.ОтправитьФайл(''c:\obrka.ert'',''/ert/dubl.ert'')=1 тогда
             Предупреждение(''Файл на сервер доставлен'');
      КонецЕсли;
      FTP.Отключиться();
КонецЕсли;
17 varelchik
 
10.01.13
17:30
смотри какое имя файла на сервере должнобыть.
а у тебе бред полнейший.
какой еще такой диск D:
у фтп понятия даже нема об таких путях.
18 varelchik
 
10.01.13
17:31
ты уж ему просто имя укажи, то он его в корневую папку кинет.
а иначе сперва проверь есть ли нужная папка нет создай а уж потом заходь в нее и пиши.
или указывай полный путь.
19 felix_2013
 
10.01.13
17:33
varelchik, спасибо ) это уже второй косяк )
20 varelchik
 
10.01.13
17:52
ниче бывает.
я уже с ним работаю дай бог памяти ще с 2004 года.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший