Имя: Пароль:
1C
 
Код работает при запуске пользователем и не работает при запуске через регл задание
,
0 evorle145
 
17.07.24
09:36
Попытка
        session = Новый COMОбъект("WinSCP.Session");
        sessionOptions = Новый COMОбъект("WinSCP.SessionOptions");
        sessionOptions.HostName = "roadstore.avito.ru";
        sessionOptions.UserName = "pan-remont";
        sessionOptions.Password = "bhtyjrr6AzDh";
        sessionOptions.PortNumber = 522;
        
        fingerprint = session.ScanFingerprint(sessionOptions,"SHA-256");           <------ в фоновом режиме валится ошибка на этой строке
        sessionOptions.SshHostKeyFingerprint = fingerprint;
        
        session.Open(sessionOptions);
    Исключение
    ЗаписьЖурналаРегистрации("ЛогиЗапуска", УровеньЖурналаРегистрации.Ошибка,,,
    ОписаниеОшибки(), РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
    КонецПопытки;



Если просто запустить этот код под пользователем - то все работает, а если запускаю регл задание (кстати, пробовал даже указать пользователя регл задания того же самого) с этим кодом, то не работает, ошибка в строке: fingerprint = session.ScanFingerprint(sessionOptions,"SHA-256");

в ЖР текст ошибки:
{ОбщийМодуль.IT_ОбщийМодуль.Модуль(12)}: Ошибка при вызове метода контекста (ScanFingerprint): Произошла исключительная ситуация (WinSCPnet): WinSCP.SessionRemoteException


База sql, обычные формы (альфа авто 5). Причем  месяц назад все работало на этом же сервере... а последнюю неделю перестало... в чем тут может быть проблема?
1 Lama12
 
17.07.24
09:42
Где код отрабатывает на сервере или на клиенте?
2 YFedor
 
17.07.24
09:44
В фоновом задании на сервере отпечаток чего нужно сканировать, дисковвода?
3 evorle145
 
17.07.24
09:45
(1) в обоих случаях код выполняется из модуля, в котором стоят такие галки
4 lEvGl
 
гуру
17.07.24
09:49
session.ScanFingerprint
это не интерактивный метод?
5 evorle145
 
17.07.24
09:49
(2) я так понимаю вот этого ресурса, который нам дали
6 Ёпрст
 
17.07.24
09:52
(0) не комильфо выкладывать в общий доступ логины и пароли от фтп
7 RVN
 
17.07.24
09:52
(3) Судя по галкам у вас скорее всего происходит так:
когда пользователь запускает - он отрабатывает на клиенте.
а когда фоновое задание - на сервере. Там скорее всего и объекта такого нет
8 evorle145
 
17.07.24
09:53
(1) то есть получается, так как у меня обычные формы, толстый клиент - то когда я запускаю под пользователем - то прав на все хватает и ошибки нет.

А когда выполняется фоновое задание - то у учетной записи, под которой запущена служба sql на что-то не хватает прав. Но на что?
9 RVN
 
17.07.24
09:54
(8) когда под пользователем запускаете он, грубо говоря, на пользовательском компе работает.
а в фоновом задании - на сервере.
10 lEvGl
 
гуру
17.07.24
09:58
(8) при чем тут скл
курите этот компонент и сравнивайте винду пользователя и сервера, например, или шифрование какое то там есть здесь нет
а так вот
https://winscp.net/forum/viewtopic.php?t=23927
11 evorle145
 
17.07.24
09:55
(6) в (0) настоящие логины и пароли заменены.
9?) похоже, но прикол в том, что это все работало порядка года... и вдруг перестало.. что-то поменялось на сервере, а что - я не врублюсь никак.
12 evorle145
 
17.07.24
09:56
(9) пользователь подключается по rdp и запускает толстый клиент на сервере.
13 Garykom
 
гуру
17.07.24
09:56
(6) это не фтп а scp/ssh
14 Lama12
 
17.07.24
09:56
(7) +1.
Немножко поправлю, наверно. Объект такой на сервере есть, иначе ошибка сыпалась бы на первых строках, а вот доступа к отпечатку открытого ключа ssh нет.
15 Garykom
 
гуру
17.07.24
09:58
(12) пользователь пусть зайдет на сервер 1С под учеткой от которой работает сервер 1С
и выполнит подключение (0) вручную
16 YFedor
 
17.07.24
09:59
Залогинься на сервер под учеткой от имени которой стартует служба 1с и под ней попробуй запустить через толстого клиента

(15) Почти синхронно
17 Климов Сергей
 
17.07.24
09:59
(12) Когда у вас пользователь запускает 1С, то 1С взаимодействует с ОС от имени пользователя, запустившего 1С. В случае фонового задания, выполняемого сервером 1С, 1С взаимодействует с ОС от имени пользователя, запустившего службу сервера 1С. Возможно у них разные права.
18 Климов Сергей
 
17.07.24
09:59
(15) (16) (17) Залп! :-)
19 evorle145
 
17.07.24
09:59
(14) так, понимаю,  а где этот доступ дать?

в описании про Класс SessionRemoteException сказано:

Это исключение возникает, когда:

1.Удаленный сервер сообщает об ошибке;
2.В сеансе консоли WinSCP произошла локальная ошибка, например, ошибка чтения локального файла.

Но удаленный сервер работает, я же через WinSCP успешно логинюсь туда.
получается на какой-то каталог нет прав..
20 lEvGl
 
гуру
17.07.24
10:00
протокол у вас совсем не указан
https://winscp.net/eng/docs/library_sessionoptions
21 evorle145
 
17.07.24
10:17
(15) (16) (17) а служба работает сейчас под системной учетной записью.. может как раз это у них админ и поменял? может там другая учетка была..
(20) по умолчанию Protocol.Sftp. Указывать не надо, наверное. Оно ведь работало без этого и работает, если под пользователем запускать.
22 MaximSh
 
17.07.24
10:24
(21) локальный пользователь был USR1CV8, надо вернуть
23 evorle145
 
17.07.24
10:33
(22) понял, да, сегодня вечером это сделаю, чтобы сейчас службу не ребутить..
24 YFedor
 
17.07.24
11:55
(23) Так сначала попробуй под этим пользователем зайти и проверить работает ли через клиента
2 + 2 = 3.9999999999999999999999999999999...