FTP через 1С V7
14.07.2011
20:18
#1
"Возникла нужда сделать выгрузку прайса на сайт через FTP. Пробовала из командной строки с помощью команды ftp.exe.
Вроде бы всё работает, но при попытке выгрузить файл на сайт - сервер рвёт соединение. Через FAR или FileZila - всё работает, но в ручном режиме. Надо, чтобы из 1с всё посылалось автоматом. Кусок процедуры под ftp.exe примерно такой, но файл попадает на сервер с 10-50 попытки, а то и вообще всё виснет. Может есть какая то компонента для 7-ки для работы с FTP?
........
Скрипт=СоздатьОбъект("Текст");
Скрипт.ДобавитьСтроку("open xxx.xxx.xxx.xxx"); //здесь IP адрес FTP сервера
Скрипт.ДобавитьСтроку("user");
Скрипт.ДобавитьСтроку("Вася_Пупкин"); //имя пользователя
Скрипт.ДобавитьСтроку("**********"); //Васин Пароль
Скрипт.ДобавитьСтроку("literal OPTS UTF8 ON"); //кодировка
Скрипт.ДобавитьСтроку("literal CWD /temp"); //Выбор каталога на сервере, это работает
Скрипт.ДобавитьСтроку("literal TYPE I");// Перевод в бинарный режим
Скрипт.ДобавитьСтроку("literal PASV"); //Перевод в пассивный режим (в активном сайт не работает)
//Здесь, при передаче файла, сервер рвёт соединение в 90 раз из 100. Иногда файл доходит, но размер его 0 байт, иногда нормально:
Скрипт.ДобавитьСтроку("literal STOR C:\price.txt");
Скрипт.ДобавитьСтроку("bye");
........
//записываем скрипт на диск
Скрипт.Записать("c:\1.txt");
//а теперь запускаем его выполнение
КомандаСистемы("ftp -n -s:c:\1.txt");"
Вроде бы всё работает, но при попытке выгрузить файл на сайт - сервер рвёт соединение. Через FAR или FileZila - всё работает, но в ручном режиме. Надо, чтобы из 1с всё посылалось автоматом. Кусок процедуры под ftp.exe примерно такой, но файл попадает на сервер с 10-50 попытки, а то и вообще всё виснет. Может есть какая то компонента для 7-ки для работы с FTP?
........
Скрипт=СоздатьОбъект("Текст");
Скрипт.ДобавитьСтроку("open xxx.xxx.xxx.xxx"); //здесь IP адрес FTP сервера
Скрипт.ДобавитьСтроку("user");
Скрипт.ДобавитьСтроку("Вася_Пупкин"); //имя пользователя
Скрипт.ДобавитьСтроку("**********"); //Васин Пароль
Скрипт.ДобавитьСтроку("literal OPTS UTF8 ON"); //кодировка
Скрипт.ДобавитьСтроку("literal CWD /temp"); //Выбор каталога на сервере, это работает
Скрипт.ДобавитьСтроку("literal TYPE I");// Перевод в бинарный режим
Скрипт.ДобавитьСтроку("literal PASV"); //Перевод в пассивный режим (в активном сайт не работает)
//Здесь, при передаче файла, сервер рвёт соединение в 90 раз из 100. Иногда файл доходит, но размер его 0 байт, иногда нормально:
Скрипт.ДобавитьСтроку("literal STOR C:\price.txt");
Скрипт.ДобавитьСтроку("bye");
........
//записываем скрипт на диск
Скрипт.Записать("c:\1.txt");
//а теперь запускаем его выполнение
КомандаСистемы("ftp -n -s:c:\1.txt");"
15.07.2011
16:34
#2
Я для работы с FTP-серверами использую утилиты командной строки ncftpput и ncftpget.
Программки FreeWare, взять можно тут: же есть документация (на английском языке)
Активно их использую для обмена выгрузками в распределенной базе, работает стабильно.
Программки FreeWare, взять можно тут: же есть документация (на английском языке)
Активно их использую для обмена выгрузками в распределенной базе, работает стабильно.
16.07.2011
14:44
#3
"Нашла другое решение. Скачала утилитку curl.exe:
...........
КомандаСистемы(КаталогПрограммы()+"curl.exe -T C:\table.html ftp ://XXXXXX:xxxxxx@ftp.narod.ru/temp/");
...........
(между ftp и : - пробел не нужен, просто иначе сайт принимает это за ссылку)
Работает изюмительно! Посылает за доли секунды!
XXXXXX - логин
xxxxxx - пароль.
Как всё было просто..."
...........
КомандаСистемы(КаталогПрограммы()+"curl.exe -T C:\table.html ftp ://XXXXXX:xxxxxx@ftp.narod.ru/temp/");
...........
(между ftp и : - пробел не нужен, просто иначе сайт принимает это за ссылку)
Работает изюмительно! Посылает за доли секунды!
XXXXXX - логин
xxxxxx - пароль.
Как всё было просто..."
1C 8.1 Зарплата и управление персоналом (Кадры) Унифицированная форма Т13не формируется карточка учета по страховым взносам
Читают тему
(гостей: 1)