Участник сообщества #150
Участник сообщества #150
4 дек. 2025 г., 10:26(изменён)
Решено
0
0

Вызов УД с сервера из веб-админки WebSoft HCM

Из чата сообщества

Добры день.

Подскажите, как я могу на клиенте вызвать УД с сервера. Задача загрузить файл через Screen.AskFikeOpen и дальше уже с ним работать на сервере, но непонятно, как мне в коде клиента вызывать что-то на сервере. Или тут есть получше варианты? Агент через браузерную админку запускается. Пробовал tools_web.evaluate_remote_action, но результат выдаёт ошибку УД и сообщение "Необходимо обновить текущую сессию. Пожалуйста, перезагрузите страницу в браузере". Через ms_tools.eval_remote_action_step - метод не может найти CurAuthObject (вроде в моей версии этой переменной ещё нет, но метод в ms_tools есть)

Участник сообщества
Участник сообщества5 дек. 2025 г., 07:57(изменён)
Решение

В итоге решил задачку через библиотеку и вызов УД в ней. Библиотека:

"META:ALLOW-CALL-FROM-CLIENT:1";
function evaluate_remote_action(actionID, actionParams) {
    var oRAResult = ms_tools.eval_remote_action_step(Int(actionID), actionParams);
    return oRAResult;
}

Агент: (excelFileUri - cтрока полученная из Screen.AskFileOpen без преобразований)

var bgTask = new BackgroundTask();
    bgTask.RunOnServer = true;
    bgTask.ShowProgress = true;
    function callMethod() {
         var oParams = {SELECTED_OBJECT_IDS: OBJECTS_ID_STR, FILE_PATH: excelFileUri};
         return bgTask.CallMethod("x-local://wtv/libs/test_excel_lib.js", "evaluate_remote_action", [7579999253404041494,oParams]);
    }
    var oMethodResult = EvalSync("callMethod()", "callMethod", callMethod).value;
Участник сообщества
Участник сообщества4 дек. 2025 г., 10:31(изменён)

Такое ощущение, что мы одной и той же задачей занимаемся. 😁

Участник сообщества
Участник сообщества4 дек. 2025 г., 10:34(изменён)

Коллеги. Если у вас речь идет о кастомном фронте, то используйте лучше OpenAPI

Участник сообщества
Участник сообщества4 дек. 2025 г., 10:36(изменён)

Скорее всего, там речь про то, как с веб админки excel обработать, ибо open-excel на вебе не работает.

Саппорт предлагает файл класть как переменную агента только, ну и запуск на сервере.

Участник сообщества
Участник сообщества4 дек. 2025 г., 10:39(изменён)

Агентом не уверен, что есть решение. А вот УД - есть вариант.

Участник сообщества
Участник сообщества4 дек. 2025 г., 11:22(изменён)

Да, excel в Web-админке обработать надо. Но мне скорей интересно какие вообще в WT есть способы вызвать действие на сервере с клиента. Чтоб не запросом делать, а указать, что "это будет сделано на сервере".

Участник сообщества
Участник сообщества4 дек. 2025 г., 11:53(изменён)

А обратную связь от северного агента я могу получить как-то? Допустим вызвать Screen.MsgBox с результатами работы

Участник сообщества
Участник сообщества4 дек. 2025 г., 11:57(изменён)

Нет.

Подумайте уже в сторону УД...

Участник сообщества
Участник сообщества4 дек. 2025 г., 11:58(изменён)

Через progresstask. В презентации есть пример

Участник сообщества
Участник сообщества4 дек. 2025 г., 12:04(изменён)

Верно. Если файл УЖЕ в ресурсе лежит. Но его туда еще надо положить...

Вот это - код агента? docResource.TopElem.put_data(fileUrl);

Чтобы ответить, необходимо войти в систему