В 1С очень часто возникает необходимость воспользоваться протоколом передачи данных в интернете FTP (File transfer protocol). Это может потребоваться при настройке обмена данными между узлами распределенной информационной базы (РИБ), при обмене данными между различными конфигурациями системы 1С:Предприятие или с другими информационными системами, при выгрузке информации на сайт и т.д.
Рассмотрим основные методы работы с FTP в системах 1С:Предприятие. Для работы нам понадобится адрес сервера FTP, с которым мы будем работать (это может быть IP-адрес, либо буквенный домен), номер порта для доступа к серверу, логин и пароль. Теперь мы можем установить соединение с сервером FTP.
Адрес = «1.1.1.1″ ;
Порт = 21;
Логин = «login»;
Пароль = «password»;
FTPСоединение = Новый FTPСоединение(Адрес,Порт,Логин,Пароль);
Все остальные действия будем производить с созданным объектом FTPСоединение.
После установления связи с сервером нужно перейти в интересующий нас каталог (папку).
Каталог = «/data/1c»;
FTPСоединение.УстановитьТекущийКаталог(Каталог);
Запись файла на FTP из 1С производится следующим образом.
Если на диске уже есть файл, который нужно передать на сервер, то достаточно пары строчек:
АдресФайла = «C:\1C\file.txt»;
FTPСоединение.Записать(АдресФайла,»file_upload.txt»);
Первый параметр функции Записать должен содержать адрес файла на диске, а второй — имя файла, которое будем ему присвоено на FTP-сервере.
Если необходимый файл на диске отсутствует, то его нужно сначала создать, а потом отправить на FTP-сервер.
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.ДобавитьСтроку(«текст»);
ВременныйФайл = ПолучитьИмяВременногоФайла(«txt»);
ТекстовыйДокумент.Записать(ВременныйФайл);
FTPСоединение.Записать(ВременныйФайл,»file.txt»);
Получение файла с FTP производится так.
Если FTPСоединение .НайтиФайлы(«file.txt»).Количество() = 0 тогда
Возврат;
КонецЕсли;
ВременныйФайл = ПолучитьИмяВременногоФайла(«txt»);
FTPСоединение.Получить(«file.txt»,ВременныйФайл);
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ВременныйФайл, «windows-1251»);
ТекстовыйДокумент.Записать(«C:\file.txt»);
Переименование и перемещение файла на FTP производится с помощью одной функции Переместить.
Перемещение:
FTPСоединение.Переместить(«/data/file.txt»,»/data/1c/file_new.txt»);
Переименование:
FTPСоединение.Переместить(«file.txt»,»file_new.txt»);
Можно совместить перемещение и переименование.
Удаление файла с FTP производится очень просто.
FTPСоединение.Удалить(«/data/file.txt»);
При возникновении вопросов, вы всегда можете обратиться к нашим специалистам за помощью.
Какие библиотеки нужно использовать для работы с ftp из 1С 7.7?
Вообще, если мне не изменяет память, компонента называлась «ftp.dll». Вот тут есть еще один вариант http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=5587
а если сделать это регламентным заданием — каждый раз будет создаваться новое соединение?
надо ли завершать соединение и если да, то как правильно?
Если делать регламентным заданием, то скорее всего у вас будет каждый раз создаваться переменная с типом FTPСоединение. Соединение устанавливается при создании этой переменной. Эта переменная перестает существовать после выполнения задания, соответственно перестает существовать и соединение. Кроме того, сам FTP-сервер закроет соединение через определенный период времени бездействия.
и еще вопрос — если файл существует — будет он перезаписываться или нужны доп. команды типа DisplayAlerts = False?
Существующий файл перезаписывается.