Имя: Пароль:
1C
1С v8
Проблемы чтения с ftp средствами 1С
, ,
0 Елена Троянская
 
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)
2 mistеr
 
23.05.19
13:58
Сменить такой FTP или поднять свой.
3 Елена Троянская
 
23.05.19
14:03
(2) Невозможно, ftp у контрагента, и такие данные никто больше не предоставляет, а они критичны для работы организации.
Временно через браузер всё руками копируется на наш сервер и потом загружается оттуда, но это временно и нужно нормальное техническое решение.


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

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

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

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

(11) Под костыли в виде дополнительных скачиваний на наш сервер уже всё сделано до данной темы. Хотелось бы послушать именно знающих тонкости работы ftp-1с. Но увы. Их нет.
А костылетворцев у нас и своих хватает.
13 Garykom
 
гуру
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 лет и не жужжало.
15 Garykom
 
гуру
23.05.19
15:36
(14) А вы пробовали штатную работу с ftp из вашей 1С слегка подправить попробовать и узнать что выйдет?

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

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

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

Завелось. Спасибо.
AdBlock убивает бесплатный контент. 1Сергей