FTP клиент, писался как замена встроенному в 1С, и нестабильно работающему DialMail.
Библиотека проверялась на: 1С8.3.5, Windows 7 pro, Windows 10 pro.x64, Windows Server 2008 x64
ВК позволяет отслеживать ошибки при вызове любой функции и свойства.
За основу взята внешняя компонента NativeAPI на Lazarus/FreePascal
Архив состоит из:
- 1c83_FTP_Native_dll.chm — справка по компоненте
- NativeFTP.zip — внешняя компонента
Выдержка из хелпа:
Свойства:
Подключен (Connected)
ТекущийКаталог (GetCurrentDirectory)
Ошибка (GetError)
Методы:
Подключиться (Connect)
Существует (Exists)
СоздатьКаталог (MakeDir)
УстановитьТекущийКаталог (SetCurrentDirectory)
Удалить (Delete)
Записать (Put)
Получить (Get)
НайтиФайлы (List)
Описание:
Предназначен для работы с файлами и каталогами на ftp-серверах.
КомпУст=Ложь;
Попытка
КомпУст=ПодключитьВнешнююКомпоненту("С:NativeFTP.dll","NativeFTP",AddInType.Native);
//второй вариант: КомпУст=ПодключитьВнешнююКомпоненту("С:NativeFTP.dll","NativeFTP",ТипВнешнейКомпоненты.Native);
//ещё вариант из макета: КомпУст=ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет","NativeFTP",ТипВнешнейКомпоненты.Native); (в макете должен быть "dll" или специальный "zip")
Исключение
Сообщить("Произошла исключительная ошибка при подключении компоненты!",СтатусСообщения.Важное);
КонецПопытки;
Если Не КомпУст Тогда
Сообщить("Произошла ошибка при подключении компоненты!",СтатусСообщения.Важное);
КонецЕсли;
Об = Новый("AddIn.NativeFTP.ФТП");
//второй вариант: Об = Новый("AddIn.NativeFTP.FTP");
Об.Подключиться("192.168.0.1",21,"qwe","123",Истина);
Не «Nativ API», а «Native API».
Спасибо, исправил!
А какие доп. возможности есть? Например есть возможность удержания соединения (доп. таймаут)? или возможность докачки?
Доп возможности это: функция существует и свойство ошибка.
Возможность докачки и удержания соединения можно доделать.
Скачал. Спасибо. Не работает справка, нет описания методов.
Извиняюсь за наезд. Открыл на другой машине справку — всё читается нормально.
Добрый день. На платформе «8.3.5.1248» Не удалось завести. Ошибка на скрине.
(7) KTo, на 8.3.5.1625 толстый клиент, клиент-серверный вариант, работает!
Подключать желательно через общий макет.
На клиенте почему-то вдруг заработало) Но мне надо на сервере. Спасибо, сейчас попробую через макет.
Через макет тоже не работает, может потому, что сервер 64 разрядный? Комментарий автора бы услышать. Может я что не так делаю?
(8) блин) а вы ведь и есть автор?) Что скажете может быть дело в разрядности?
(10) KTo, Да дело в разрядности!
позже попробую скомпилировать 64bit.
(11) был бы очень признателен) Специально переписывал функционал для регламентных заданий и попал на такой вот сюрприз встроенного клиента. Пришлось искать скорей замену)
(12) KTo, Добавил NativeFTP_x64.dll, проверить не было времени.
Попробуйте, может заработает!
Жаль, но на сервере не работает компонента.
(14) KTo, Проверил у меня работает под х64 сервером!
Попробуйте загружать из файла: КомпУст=ПодключитьВнешнююКомпоненту(«C:\NativeFTP_x64.dll»,»NativeFTP»,ТипВнешнейКомпоненты.Native);
И проверьте права на файл.
(15) это радует) тогда еще покопаюсь, хотя, конечно, хотелось бы из макета) у нас тут распределенная база и получилось бы вообще круто)
(16) спасибо тебе добрый человек за терпение) беру свои слова назад, это я забыл, что два дня назад перенес тестовую базу на другой сервер) Поэтому компонента была на одном сервере, а загружал ее с другого, так что из каталога все работает)
А на 77 будет работать?
(19) CheBurator, Нет, не будет!
Похоже нашел еще недочет. В процедуре Удалить() похоже меняется параметр, если туда передать доступный только для чтения реквизит, будет вызвано исключение. Надо делать через переменную, что-то вроде:
Соединение.УстановитьТекущийКаталог(«/» + Папка)
ВременноеИмяФайла = Файл.Имя;
Соединение.Удалить(ВременноеИмяФайла);
(21) KTo, нет параметр не меняется, как получить ошибку написано в хелпе.
Возможно не правильный параметр.
(22) в ошибке написано «нет ошибок!», а в исключении «Поле объекта недоступно для записи», в моем примере это имя, объекта файл, которое только для чтения, из этого я сделал вывод что компонента его пытается изменить.
Так же работа на сервере у нас почему-то нестабильна, несколько минут работает фоновое задание валится без всяких ошибок, и вот такая штука в журнале винды:
Имя сбойного приложения: rphost.exe, версия: 8.3.5.1248, отметка времени: 0x5449531b
Имя сбойного модуля: NativeFTP_x64.dll, версия: 0.0.0.0, отметка времени 0x00000000
Код исключения: 0xc0000005
Смещение ошибки: 0x00000000000c6ca8
Идентификатор сбойного процесса: 0x9ae0
Время запуска сбойного приложения: 0x01d133e050cdd59d
Путь сбойного приложения: C:Program Files1cv88.3.5.1248in
phost.exe
Путь сбойного модуля: C:UsersSQLServiceAppDataLocalTempNativeFTP_x64.dll
Код отчета: 1f6bbcef-9fd6-11e5-ab88-00155da38900
Может у кого-то работает без сбоев?
(23) KTo, передавать можно только простые типы данных (строка, число…)
Покажите кусок кода, где возникает ошибка!
Nativ — Native исправили.
А в русский никто?
«архив с инди (в нутри архива » — что такое «нутря архива», в которой находится «инструкция по установке в lazarus)»? ЧТо за технология в архивировании?
Что такое «инди»?
Обновил файлы компоненты, исправлены ошибки.
Добавлен «zip» файл внешней компоненты.
Для Андроида еще бы такую и Ios