Имя: Пароль:
1C
 
Соединение с FTP
0 mens
 
21.12.07
08:57
Необходимо выгружать файл из 1Сv7 на FTP.
Возможно ли это сделать в 1С и как?
1 IUnknown
 
21.12.07
08:58
да

как зависит от ряда условий... какие у тебя гадать ломает
2 mens
 
21.12.07
09:02
С помощью обработки "Выгрузка данных" которая находится в дополнительных возможностях выгружается файл. Мне надо чтоб он выгружался на FTP.
3 Armando
 
21.12.07
09:05
Кстати, точно знаю, что в 617 обновлении бюджетной бухи есть дллка для выгрузки на фтп... информация к размышлению...
4 povar
 
21.12.07
09:07
(3) накой эта длл если в винде есть ftp.exe
5 Armando
 
21.12.07
09:08
(4) тоже вариант
6 mens
 
21.12.07
09:20
Предложили мне использовать компоненту V7PLUS.
Только не FTP, а с помощью почты.
Как вы смотрите на это решени?
7 IUnknown
 
21.12.07
09:20
http://www.yandex.ru/yandsearch?text=1%D1+FTP&rpt=rad


(4)а если есть прокся?
8 IUnknown
 
21.12.07
09:21
(6)что удобнее то и пользуй... мы тут не телепаты... за все твои проблемы и сети незнаем
9 povar
 
21.12.07
09:22
(7) вдруг у него фтп сервак в его локалке
10 DemMif
 
21.12.07
09:24
ТекстКоманды ="open ftp.server.ru
//имя пользователя
|user
//пароль
|password
//выполняем команды фтп
//............
//Закрыть связь с серваком
|quit
|";

Имя файла="файл.txt";
КомандаСистемы("ftp -s:"+имяфайла);



что-то типа такого
11 IUnknown
 
21.12.07
09:24
(9)вот именно поэтому я и сказал (1)
12 mens
 
21.12.07
09:24
Спасибо за внимание и высказывания!
Буду пробовать варианты с FTP и POP.
13 mens
 
21.12.07
09:25
(10) Это работает с помощью FTP.exe?
14 DemMif
 
21.12.07
09:27
(13)

я с книжки списал чуток :)
автор  Андрей Михайлов "1С Предприятие 7.7/8.0 системное программирование"
15 DemMif
 
21.12.07
09:27
+
Там подробно описано все. Если что задавай вопросы.
16 Skom
 
21.12.07
09:31
dialmail.dll
умеет все
недавно организовывал ту же задачу для автообмена УРБД....
отличиче от ФТП.ЭКЗЕ - может работать через прокси
17 Skom
 
21.12.07
09:32
скачай компоненту там неплохие примеры
полностью работает и с листингом на ФТП и с файлами
18 mens
 
21.12.07
09:37
Ок!
Спасибо..
Побежал смотреть.
19 Соратник
 
21.12.07
09:38
(16) +1
20 Skom
 
21.12.07
09:43
(18) если сложности будут стучи в аську помогу....я когда делал долго не мог врубиться почему с одной стороны (в локалку) нормально кладет и принимает файлы а на другом конце ( в тот же сервак тока с инета) не хочет...оказалось надо использовать спец режим со старым набором комманд
ЗЫ аська есть в инфе
21 Андрюха
 
21.12.07
09:44
Никита Зайцев (WildHare). Как достучаться до FTP-сервера?

Первое, что приходит на ум - взять в руки Яndex и поискать там "1C&FTP".Таким образом мы находим компоненту AddFTP. Но увы,она нам не подходит - не умеет закачивать файлы, работает только с анонимными FTP-серверами, не умеет работать через прокси-сервер. Других внешних компонент для работы с FTP в открытомдоступе нет.

Далее, иногда бывает полезно поискать решение на жестком диске собственного компьютера, таким образом находим ftp.exe.Умеет все, кроме одного: не умеет работать через прокси-сервер.

Что остается делать? Можно взять "Технологию создания внешних компонент" и написать компоненту дляполноценной работы с FTP. Но это потребует времени и квалификации, а они есть далеко не у всех.

Я решил проблему следующим образом. Зашел на сайт компании ActiveWare и скачал ActivePerl for Win32.Установил этот пакет (нужно брать дистрибутив в формате MSI) на ту машину, с которой требовался доступ к FTP (инсталляция проста, как мычание). Perl- очень простой и в то же время очень мощный язык, и написанные на нем программы отнюдь не всегда производятвпечатление случайного набора символов (хотя и такое тоже бывает). Вот как выглядит самый простой скрипт для работы с FTP:

# подключаем нужный модуль
use NET::Ftp;
# коннектимся через прокси-сервер
$ftp = Net::FTP->new("194.85.33.254",Firewall => "192.168.0.1");
# авторизуемся на FTP-сервере
$ftp->login('MyCoolLogin','MyCoolPassword') || die $!;
# заходим в нужную директорию
$ftp->cwd('public_html');
$ftp->cwd('files');
# скачиваем файл с сервера
$ftp->get('dms.als','c:\dms.als.old');
# закачиваем файл на сервер
$ftp->put('c:\dms.als','dms.als');
# скачиваем оглавление каталога
@list=$ftp->dir();
foreach (@list) { $dir.="$_\n";
}
open TXT,'>c:\ftp_dir.txt';
print TXT $dir;
close TXT;
# отключаемся от сервера
$ftp->quit();

Разумеется, чтобы использовать приведенный код осмысленно, понадобится посвятить некоторое времячтению документации.. но дело того стоит. Perl, помимо легкости в освоении и использовании, славитсяпросто фантастическим количеством готовых модулей почти что для всех случаев жизни. А поскольку Perl - языкобъектный, подключение и использование этих модулей особого труда не представляет.

Дальше уже - дело техники. Текст скрипта (со всеми адресами, логинами и именами файлов) можно сгенерироватьпрямо в модуле 1Сv7:

// генерируем текст скрипта
Текст=СоздатьОбъект("Текст");
Текст.ДобавитьСтроку("use NET::Ftp;
"|....
");
// записываем на диск
Текст.Записать(КаталогИБ()+"connect.pl");
// запускаем на выполнение
КомандаСистемы(КаталогИБ()+"connect.pl");
// удаляем, чтоб не засорять место
ФС.УдалитьФайл(КаталогИБ()+"connect.pl");

Ассоциация файлов *.pl с интерпретатором perl.exe автоматически создается при инсталляции ActivePerl, но нелишнимбудет ее проверить - просто на всякий случай.

У описанного решения есть один неприятный побочный эффект - запуск скрипта приводит к появлениюокна DOS-сессии и "подвисанию" 1С:Предприятия на время выполнения скрипта. Но тут уж ничегоне поделать.
22 Соратник
 
21.12.07
09:47
(21) Зачем столько гемороя, сказали же DialMail.dll - и будет шастье...
23 Skom
 
21.12.07
09:50
(22) ты бы лучше поблагодарил человека за то что не поленился написать тебе ответ...не важно подходит он или нет
он постарался и накатал тебе такую статейку...причем тоже вариант.....
а ты сразу - зачем.....кто как умеет тот так и помогает.....
24 Андрюха
 
21.12.07
09:59
Кстати, DialMail лежит вот тут: http://www.dialmail.froggy.ru/
Программист всегда исправляет последнюю ошибку.