|
SFTP не работает в фоновых процессах |
☑ |
0
Гений 1С
гуру
17.10.22
✎
18:38
|
База файловая, проверил, фоновые выполняются на том же компьютере, где стоит SFTP, но в фоне почему-то не отрабатывает.
Если вручную запускать, то работает.
Как понять причину ошибки? Может лог у нее есть или ключ какой добавить, чтобы лог вела?
Или может Start может возвращать ошибку более развернуто?
ПутьWinSCP = "C:\Program Files (x86)\WinSCP\WinSCP.com";
ПрофильWinSCP = "favclient";
СтрокаПрограммы = """" + ПутьWinSCP + """" + " /console /command " + """option batch abort"" " + """open " + ПрофильWinSCP + """ " + """put " + Лок_ИмяФайла + " " + Внеш_ИмяФайла + """ " + """close"" ""exit""";
net = Новый COMОбъект("WScript.Shell");
Результат = net.Run(СтрокаПрограммы, 0, Истина); //Результат 1 - ошибка, 0 - ок
Если Результат = 1 Тогда
ЗаписьЖурналаРегистрации("Отладка.SFTP.Ошибка",,,,СтрокаПрограммы);
Иначе
ЗаписьЖурналаРегистрации("Отладка.SFTP.ОК",,,,СтрокаПрограммы);
КонецЕсли;
|
|
1
ДедМорроз
17.10.22
✎
20:37
|
Я делал через Com-Proxy для WinSCP - там и работать пооще и отлаживать.
А так,можно попробовать через bat-файл,чтобы понять,что пошло не так - там можно поток и поток ошибок перенаправлять.
|
|
2
Гений 1С
гуру
18.10.22
✎
10:11
|
(1) вот я думаю, может там сам файл не запускается, тогда лог бесполезен, как бы отловить запустился файл лии нет из Shell? Переписывать не вариант на COM-Proxy, конечно.
|
|
3
PLUT
18.10.22
✎
10:29
|
(0) магическое заклинание в параметрах запуска базы /РежимОтладки
в отладке жмакаешь галочку для фоновых заданий Автоматическое подключение... - фоновые задания (чтобы отладчик в них попадал)
ставишь точку останова на своём гениальном коде и запускаешь фоновое задание
|
|
4
Гений 1С
гуру
18.10.22
✎
12:28
|
(3) про заклинание знаю, но ведь тогда оно будет в режиме клиента выполняться а не фонового задания и выполнится. и что мне это даст?
Кстати, вопрос временно снимается, они увеличили ресурс сервера, где крутится 1с и в фоновых стало выполняться, может памяти не хватало. в общем, пока норм.
|
|
5
vde69
18.10.22
✎
12:58
|
проблема в том, что для sftp нужен сертификат, без него не работает. У тебя банально соединение не видит сертификат (его или нет, или к нему нет доступа)
|
|
6
Гений 1С
гуру
03.11.22
✎
20:28
|
(5) найн, проблема не в этом. В логе увидел корень зла:
< 2022-10-28 20:10:01.426 Script: В скриптах не следует полагаться на сохранённые подключения, взамен используйте эту команду:
< 2022-10-28 20:10:01.426 Script: open s ftp://root:***@IP.IP.IP.IP/ -hostkey="************"
Т.е. я использовал сохраненные подключения, а они в фоне не доступны
Перешел на авторизацию через
"""open s ftp://IP.IP.IP.IP/ -username=ftp_user -password=**** "" "
https://winscp.net/eng/docs/scriptcommand_open
|
|
7
Гений 1С
гуру
07.11.22
✎
21:49
|
Добавил еще ключ в команду open:
-certificate=*
Чтобы не проверяло сертификат сервера, а то запрашивает у пользователя разрешение, а пользователя то нет
https://winscp.net/eng/docs/scriptcommand_open#certificate
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший