P.S. Не сочтите за труд после ознакомления вернуться и оставить комментарий 🙂
Обработка абсолютно бесплатна и распространяется с открытым кодом — используйте на свое усмотрение, желательно сохраняя информацию об авторах.
Функционал сухим языком:
FTP.ert — обработка для передачи файлов по FTP с использованием консольного приложения ftp.exe. Предназначена для фоновой загрузки — выгрузки указанных маской файлов. Используется для обновления файлов на удаленной машине клиента.
- Вызывается как внешний отчет с передачей списка параметров.
- Консольное окно работает в фоновом режиме после вызова обработки, управление немедленно передается 1С.
- Имеет обратную связь в виде сообщения об успешности или неудаче загрузки — выгрузки. Такая обратная связь достигается за счет использования простых командных файлов (*.bat) и немного строчек для wscript (*.vbs).
- Эти файлы корректно удаляются так, что мусора не остается.
В общем, смотрите код.
Авторы: Проскурин П.А., Газизов З.Н.
Украина, Одесса, 2007 год
Хочу сразу предостеречь от соблазна перезаписывать рабочие файлы по живому — иногда, особенно при плохой связи, файл может загрузиться не полностью — поэтому качайте во временную папку. Потом уже не знаю, может CRC проверять. Надо подумать.
Имхо, посоветую использовать ncftp — более функциональный аналог ftp
> Т.Записать(СОКРЛП(КаталогЛокальный)+ВременныйСкриптФайл);
не всегда каталог с файлами для отсылки (т.е. чтение) м.б. доступен для записи туда файла скрипта 😉 имхо логичнее использовать каталогПользователя() или КаталогВременныхФайлов()
желательно упомянуть как подключиться к нетиповому порту…
>>Имхо, посоветую использовать ncftp — более функциональный аналог ftp
Если есть желание перписать под ncftp — то милости просим, код в студию 🙂
Выложу оба варианта
>>Сhe Burashka
Подключиться к нетиповому порту? Надо после IP адреса указать его номер.
Насчет записи в каталог- я привык, что все находится в одном месте, кому надо — тот переделает. Этот пример будет работать в 90% случаях, думаю, вполне достаточно для универсальности 🙂
Обработка заслуживает лучшего рейтинга 🙂
вот еще бы и сам http://ftp.exe выложил бы…
2avega
Пуск -> Выполнить -> http://ftp.exe
Должно работать в Windows XP точно (в поставку входит)
1. Не сработал срипт на подверждение работы
2. Если КаталогУдаленный например «exe1c» то обработка кидает в «exe» это мне кажется не правильно
ну а в целом +
Отлично работает, но у меня выдает ошибку компиляции VBScript
Строка 3
Символ 44
Ошибка: Синтаксическая ошибка
Код: 800A03EA
igor_1c — Аналогично
Про NcFTP. Во всяческих скриптах всегда именно этими утилитами пользуюсь. Самое главное, что они именно заточены на использование из командной строки. Т.е. не надо никаких файлов с командами (как в случае с http://ftp.exe). Просто пишем:
ncftpget http://ftp.gigawarez.ru c: emp /warez/gamez/tetriz.zip
ncftpput http://ftp.trash.ru /pub/trash c: emp etriz.zip
Куча всяких ключей позволяет сделать всё, что только можно сделать с FTP.
http://www.ncftp.com/ncftp/doc/ncftpget.html
http://www.ncftp.com/ncftp/doc/ncftpput.html
http://www.ncftp.com/ncftp/doc/ncftpls.html
Описалово:
ncftpget:
ncftpput:
и до кучи ncftpls:
Так же, как у 10 и 11. Ошибка скрипта.
скачал(не смотря на нижеследующие комменты), будем смотреть))))
Работает, но выдает таки ошибку скрипта 🙁
А во-вторых — а как с помощью этого создать каталог на фтп ?
Самая большая проблема в том что стандартный http://ftp.exe от Microsoft не умеет работать в пассивном режиме(passiv mode).
http://ru.wikipedia.org/wiki/CURL) .
Недавно столкнулся с тем что сервер нивкакую нехотел принимать файлы в обычном режиме, только в пассивном.
Вышел из положения с помощью Curl(
Вообще очень удобная утелитка для работы с http/ftp и т.п.
А как заставить 1С просматривать содержимое ФТП не качая туда-сюда файлы ?
Просто понимать, что такой файл есть на фтп ?
9,10 Надо убрать переводы строк в ert, тогда не выбрасывает ошибку.
Команда=»msgbox («»Загрузка файлов прошла успешно.»»),64,»»Сообщение «» «; Т.ДобавитьСтроку(Команда);
Для правильного перехода по вложенным каталогам переделал парсерчик:
счПереходов=СтрЧислоВхождений(_КаталогУдаленный,»/») ; //из цикла за цикл
Для А=1 По счПереходов Цикл
Рез=Найти(_КаталогУдаленный,»/»);
ПодКаталогФТП=ЛЕВ(_КаталогУдаленный,Рез-1);
Если ПустоеЗначение(ПодКаталогФТП)=0 Тогда
Т.ДобавитьСтроку(«cd «+ПодКаталогФТП);
КонецЕсли;
_КаталогУдаленный=Сред(_КаталогУдаленный,Рез+1); // _КаталогУдаленный вместо КаталогУдаленный
КонецЦикла;
Да, забыл сказать «Спасибо большое».
Спасибо за обработку. Установил. Обмен настроил через обработку ожидания (использовал FormEx) + закоментировал выполнение скрипта.
http://infostart.ru/public/15995/
До этого хотел использовать решение
Но под Server2003 SP2 не подгружалась библиотека dialmail
Спасибо, за сэкономленное время!!
Пробовал несколько вариантов. Этот оказался более приемлемый. Внешние компоненты требуют постоянной донастройки. Особенно, если прав не хвататет, т.е. ты не сисадмин,приходится выкручиваться. Данный вариант наиболее оптимален.
Спасибо за обработку. Очень нужная вещь оказалась. Кто знает помогите в следующем вопросе — мне нужно удалить загруженные файлы на удаленном сервере. Как это можно сделать?
Хорошая обработка!