Участник сообщества #26
Участник сообщества #26
21 июл. 2025 г., 13:44(изменён)
0
0

Проблема с сохранением полей в открытой заявке при вызове удалённого действия

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

Коллеги, добрый день Нашел, что в 2021 году у кого-то была похожая проблема, правда сообщения из чата не сильно помогли решить её мне) Вызываю удаленное действие в ДО

В удаленном действии у меня открывается форма с полем для комментария и кнопкой "Отправить"

Проблема в том, что у меня не сохраняются поля в открытой заявке. Пробовал делать отдельный open_doc по id заявки - ничего не случается. Решили, что проблема с окружением (карточка уже открыта, мы открываем её еще раз и она сама себя перезаписывает). Сейчас через curObject пытаюсь сделать, но тоже результат нулевой

Вроде и понятно, в чем проблема, но как решить - не получается)

Как я понимаю - основная проблема в том, что здесь для УД - окружение это действие ДО, потому что alert(OBJECT_ID) возвращает мне код действия ДО, но при этом почему тогда не работает сохранение полей?

Буду очень благодарен за подсказку

Код:

var iRequestID = OptInt(curObjectID, 0);

var oOpenRequest = tools.open_doc(iRequestID);
var teRequest = oOpenRequest.TopElem;

var iInitiatorID = OptInt(curObject.person_id, 0);

switch (command) {
    case "eval": 
        oResult = getFormComment();
    break;
    case "submit_form":
        var arFlds = [];
        if (form_fields != undefined) {
            arFlds = ParseJson(form_fields);
        }
        
        submitType = ArrayOptFind(arFlds, "This.name == '__submit_type__'")
        if (submitType != undefined) {
                    // Если нажать "Отклонить"
                    if (submitType.value == 'cancel_form') {
                        _formFieldArray = ParseJson(SCOPE_WVARS.form_fields);
                        _oNewComment = ArrayOptFind(_formFieldArray, "This.name == 'comment'");
                        if (_oNewComment != undefined) {
                            if (String(_oNewComment.value) != "") {
                                _sNewComment = _oNewComment.value;

                                // curObject.status_id = 'ignore';
                                // curObject.workflow_state = 'onetime_bonus_rejected';
                                // curObject.close_date = Date()

                                teRequest.status_id = 'ignore';
                                oOpenRequest.Save();

                                tools.create_notification('onetime_bonus_reject', iInitiatorID, _sNewComment, iRequestID);

                                oResult = {
                                    command: "alert",
                                    msg: "Заявителю отправлено уведомление об отклонении заявки",
                                    confirm_result: {
                                        command: "reload_page"
                                    }
                                };
                            }
                            else {
                                oResult = getFormNoComment();
                            }
                        }
                    }
                }
            break;
}

RESULT = oResult;
photo_2312@21-07-2025_16-44-22.jpg
Участник сообщества
Участник сообщества21 июл. 2025 г., 13:58(изменён)

А если добавить сохранение заявки?

curObject.Doc.Save();

или в карточке добавить еще одно действие - сохранить редактируемые поля

Участник сообщества
Участник сообщества21 июл. 2025 г., 20:10(изменён)

Удивительно, это вообще никак не работает

Пробую делать через curObject - 0 реакции При этом делаю после всех манипуляций object_to_text для curObject - он мне возвращает в полях те изменения, которые я внёс, но в саму заявку он ничего не сохраняет Потому что Save на curObject ругается на неизвестный метод, а curObject.Doc - пустой объект, что странно, с учётом, что при его объявлении через var ругается на то, что переменная уже объявлена (потому что она объявлена в библиотеке программного кода и вызывается в уд Обработка действия Документооборот в лпе)

Как тогда сохранить этот дурацкий документ - вообще не ясно)

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

а если все-таки после УД в документообороте добавить действие "сохранить редактируемые поля"?

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