Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Проблемы чтения с ftp средствами 1С

Проблемы чтения с ftp средствами 1С
Я
   Елена Троянская
 
23.05.19 - 13:45
Проблема следующая. Долгое время в базе 1с работало чтение файлов с ftp (дописана обработка) из вложенной папки
Доступ по логину и паролю, соединение незащищенное, не поддерживает FTP через TLS
Внезапно обработка перестала работать по причине: Ошибка аутентификации при доступе к ресурсу:  ftp://имяресурса.ru:21 Access denied to remote resource
На стороне 1с ничего не менялось
Пробовала - по фтп сейчас могу получить доступ только в корневую папку FTP , дальше - Access denied
Через filezilla или IE захожу в нужные подчиненные папки, права на папки 777, на файлы 666
Админы ftp логов доступа к нему не ведут и не планируют, и заставить их это делать не получится, да и вообще, молчат как партизаны.

Вопрос. Что могло случиться и что технически можно сделать для обхода проблемы?
 
 
   Елена Троянская
 
1 - 23.05.19 - 13:45
1С:Предприятие 8.3 (8.3.5.1517)
   mistеr
 
2 - 23.05.19 - 13:58
Сменить такой FTP или поднять свой.
   Елена Троянская
 
3 - 23.05.19 - 14:03
(2) Невозможно, ftp у контрагента, и такие данные никто больше не предоставляет, а они критичны для работы организации.
Временно через браузер всё руками копируется на наш сервер и потом загружается оттуда, но это временно и нужно нормальное техническое решение.


Вопрос был про технические способы.
   mistеr
 
4 - 23.05.19 - 14:07
> такие данные никто больше не предоставляет, а они критичны для работы организации

Вот это настоящая проблема, не техническая, и решать ее нужно соответствующе.

А так, если через WinSCP работает, то его можно заскриптовать для перекладывания на свой сервер. А также curl, wget, aria2 и другие.
   Елена Троянская
 
5 - 23.05.19 - 14:09
(4) по п.1 - нерешаемо средствами организации.)

по п.2 - спасибо.
   mistеr
 
6 - 23.05.19 - 14:12
Да, еще lftp, но это вообще монстр-комбайн. Разобраться сложно, но может всё.
   NorthWind
 
7 - 23.05.19 - 14:17
для синхронизации папок средствами ftp очень хорошая штука ncftp (https://ncftp.com/ncftp/). Просто настроить на каком-нибудь компе задачку, чтобы он раз в сколько-то время ncftpget запускал для синхронизации ftp-шной удаленной папки со своей. Файлы сверяет, лишний раз не качает, если уже были скачаны. Очень удобно.
   Елена Троянская
 
8 - 23.05.19 - 14:27
(7) Спасибо
   Nyoko
 
9 - 23.05.19 - 14:49
(0)Зачем вообще FTP если есть например https://syncthing.net/ синхронизация каталога, хоть на 20 компах )))
   Garykom
 
10 - 23.05.19 - 15:07
(0) Нанять программиста уже пробовали?
   Garykom
 
11 - 23.05.19 - 15:08
(10)+ Это не стеб, если можно скачать вручную с ftp помимо 1С то кто мешает воспользоваться кучей способов и автоматизировать это скачивание чем то внешним?
   Елена Троянская
 
12 - 23.05.19 - 15:15
(10) Пока в теме не обозначился ни один специалист, знакомый с данной проблемой именно в том виде, как она обозначена в СТ. Кого нанимать?

(11) Под костыли в виде дополнительных скачиваний на наш сервер уже всё сделано до данной темы. Хотелось бы послушать именно знающих тонкости работы ftp-1с. Но увы. Их нет.
А костылетворцев у нас и своих хватает.
   Garykom
 
13 - 23.05.19 - 15:24
(12) Ну вам уже написали про ncftp в (7) которые юзали еще по времена 1С 7.7
http://security-corp.org/administration/sys_admin/12576-1s-77-organizaciya-avtoobmena-cherez-ftp.html

Но я не вижу проблем использовать что угодно, начиная от ВК до написания своей софтины или веб-сервиса который сделает что угодно.

Например есть прекрасная "Ъ" от Использование классов .Net в 1С для новичков
Или можно взять NodeJS или Golang или банальный C# (или прочее что знает программист которого вы наняли) и набросать простую штуку с которой уже любая 1С сможет работать штатно, через http соединение или еще как.
   Елена Троянская
 
14 - 23.05.19 - 15:30
(13) Прежде чем что-то писать, нужно понять, можно ли сделать как было без затрат xx человеко-часов. Работало же оно 5 лет и не жужжало.
   Garykom
 
15 - 23.05.19 - 15:36
(14) А вы пробовали штатную работу с ftp из вашей 1С слегка подправить попробовать и узнать что выйдет?

Ну там пассивный режим работы или таймаут? А может нечто не то с авторизацией например регистр логина или еще что.
Может надо текущий каталог менять правильно перед тем как нечто на ftp делать.
   Garykom
 
16 - 23.05.19 - 15:37
(15)+ Короче имхается у вас была слегка кривая работа с ftp сервером из 1С.
И когда там у контрагентов сервер перевели на нормальный, то ваша 1С перестала с ним уметь работать.

Переписывайте правильно. Наймите программиста уже.
   Елена Троянская
 
17 - 23.05.19 - 15:40
(15) Пробовали, соединение само работает, в корневой каталог фтп-пользователь логинится.
Но во вложенные каталоги уже нет.
Проблем нанять кого-то нет от слова совсем. Пусть придёт, блеснёт знанием как правильно и почему. Пока предлагаются костыли и балабольство. :)
   NorthWind
 
18 - 23.05.19 - 15:45
как по мне - ftp-клиент в 1С очень так себе. Поэтому прямой способ как раз утащить к себе админскими средствами, а дальше с этой папкой делать че хошь уже у себя дома, а не на чужом сервере.
   Garykom
 
19 - 23.05.19 - 15:47
(18) Нормальный там клиент, со своими тараканами и надо готовить уметь.
   Garykom
 
20 - 23.05.19 - 15:47
(17) УстановитьТекущийКаталог(<ИмяКаталога>) не отрабатывает на правильные пути для вложенных?
   NorthWind
 
21 - 23.05.19 - 15:48
(19) нормальный - это когда без тараканов. А ветки про косяки встроенного FTP от 1С тут появляются регулярно - то одно не может, то другое
   Garykom
 
22 - 23.05.19 - 15:48
(20)+ Или может надо ЗащищенноеСоединениеOpenSSL ?
   Garykom
 
23 - 23.05.19 - 15:48
(21) Оно еще в разных версиях платформы по разному ))
   Елена Троянская
 
24 - 23.05.19 - 15:48
(18) Согласна. Но это прям на самый-самый крайний случай вариант.
Потому что + 1 промежуточный обмен данными всегда дополнительный гемор.
   NorthWind
 
25 - 23.05.19 - 15:48
вот ncftp - это нормальный. Работает уже под 30 лет и голову не греет
   Елена Троянская
 
26 - 23.05.19 - 15:49
(20) Для вложенных - нет. Для корневого - да.
   Елена Троянская
 
27 - 23.05.19 - 15:51
(22) Если оно не нужно для корневого, то может быть нужно для вложенных?
В любом случае, пробовала, не завелось.
   Garykom
 
28 - 23.05.19 - 16:12
(27) Код покажите, у меня есть подозрения что вы что то не то делаете банально
   Елена Троянская
 
29 - 23.05.19 - 16:40
(28)

Подключение
------------------------------
попытка
        Соединение = новый FTPСоединение(     
        ФтпДанные.ФтпСервер,
        21, 
        ФтпДанные.Логин,
        ФтпДанные.Пароль,
        Неопределено,
        истина,0,Неопределено, 
        );        
    исключение
        Сообщить(ОписаниеОшибки());
        Возврат Неопределено;
    КонецПопытки;

----------------------------------

Что менялось методом пляски с бубном:
номер порта указывался явно или не указывался (в первоначальном варианте, отработавшим 5 лет, не был указан, но работает и так и так)
Прокси - на моём домашнем его точно нет, менялось только пустой параметр/ неопределено
Пассивное соединение: пробовалось как истина-ложь, работает только истина
Защищенное соединение: пробовалось как неопределено или  ЗащищенноеСоединениеOpenSSL, работает только неопределено
Таймаут: пробовался 0 и 30, разницы нет

Этим же кодом пробовала подключаться к тестовому 
ФтпСервер = "test.rebex.net"; 
Логин = "demo";
Пароль = "password";
НО там только корень и 1 файл, вложенных нет, корневой файл читает

Что в работе: попросила админа рабочего фтп положить файл в корень, проверю чтение


Чтение данных 
----------------------
    
        Попытка
            Соединение = ПодключитьФТП();
            Путь = ФтпДанные.ПутьКПапке0//корневой каталог

            Соединение.УстановитьТекущийКаталог(Путь);
            //файлы = Соединение.НайтиФайлы(Путь,Маска);

            сообщить ("ок "+ Путь);

            Путь = ФтпДанные.ПутьКПапке1//1 уровень

             Соединение.УстановитьТекущийКаталог(Путь);

            //файлы = Соединение.НайтиФайлы(Путь,Маска);

            сообщить ("ок "+ Путь);


            Путь = ФтпДанные.ПутьКПапке//2 уровень

             Соединение.УстановитьТекущийКаталог(Путь);

            //файлы = Соединение.НайтиФайлы(Путь,Маска);    

            сообщить ("ок "+ Путь);


        исключение
            ЗаписьЖурналаРегистрации("фтп",,,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),);
        КонецПопытки;

----
Тут только на верхний уровень заходит и всё, в папки уже нет.
-----

пути 1,2,3 уровень такого вида
----------------------
ПутьКПапке0 = "/";
ПутьКПапке1 = "/ftpNNN/";
ПутьКПапке =  "/ftpNNN/csv/";
   mistеr
 
30 - 23.05.19 - 18:09
Можно посниффить сеть и получить лог FTP сессии. Может что-то прояснится.
 
 
   Сияющий в темноте
 
31 - 23.05.19 - 18:43
А что возвращает разделитель пути?
может у них фтп на винде и наклон нужен в другую сторону?
   Сияющий в темноте
 
32 - 23.05.19 - 18:44
там в коде фигня.
у фтп нет путькпапке1 и т.п.
срочно переписать!
   Сияющий в темноте
 
33 - 23.05.19 - 18:46
и это,некоторын фтп не ели черточку в конце.
   Елена Троянская
 
34 - 23.05.19 - 18:48
(30) Подкину идею админам, мож заморочатся. В этом вопросе - у меня лапки.
   Garykom
 
35 - 23.05.19 - 18:49
Имхо у вас проблема не с УстановитьТекущийКаталог

А с НайтиФайлы
   Елена Троянская
 
36 - 23.05.19 - 18:50
(31) На прошлой неделе всё работало. Навряд ли они ОС сменили за это время, во всяком случае, утверждают, что не меняли ничего.
(32) Всё норм в коде. Это структура.
(33) Неделю назад ел.
   Елена Троянская
 
37 - 23.05.19 - 18:51
(35) И с тем и с тем одинаковые проблемы.
   Garykom
 
38 - 23.05.19 - 18:53
А про регистрозависимость вы в курсе же на линуксе?
   Вафель
 
39 - 23.05.19 - 18:53
попробуй таким клиентом
http://catalog.mista.ru/public/912875/
   Елена Троянская
 
40 - 23.05.19 - 19:04
(38) Вы - гений.
Знаю, но не додумалась, что дело может быть в этом. Поскольку админы поставщика клялись, что ничего не меняли. Ну так, с винды на линукс переехали, видимо втихаря.

Завелось. Спасибо.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.