...

Поделитесь кодом смены статуса через виджет кнопка

Тема в разделе "Примеры сценариев", создана пользователем mokrushina, 14 фев 2023.

  1. mokrushina

    mokrushina Участник

    Решение предоставил t.me/DiakonovDenis

    Запрос: Нужен код смены статуса через виджет "кнопка" на форме просмотра. Не понимаю как получить в переменную элемент приложения и к нему применить метод setStatus. Если использоваться await order.setStatus(order.fields.__status.variants.registered), не отображается метод после точки.
    Не могу получить этот элемент, так как нахожусь в нём в форме просмотра (если бы это было другое приложение, то я бы его получил и применил к order метод)

    Решение: Можно запросить его по id и дальше делать с ним все, что нужно
    Код:
    
    let order await Application.search().where(app => app.__id.eq(Context.data.__id)).first();
    
    
  2. as.ivanov

    as.ivanov Новичок

    Ну а что дальше, у него появляется, в боковом окне, Установлен статус***, а если вывести, статус, как поле, оно остается старым, на странице приложения, элемент не переходит в блок статуса, распишите пожалуйста подробнее процесс смены статуса
  3. keriushenkova

    keriushenkova Новичок

    Добрый день!
    Ниже приведен пример смены статуса приложения с последующей записью статуса в контекст.
    Код:
    
    async function changeStatus(): Promise<void> {
        
    //Получение объекта приложения
        
    let order await Application.search().where(app => app.__id.eq(Context.data.__id)).first();

        
    //Установка нового статуса
        
    await order!.setStatus(order!.fields.__status.variants.registered)

        
    //Сохранение изменений приложения
        
    await order!.save()
       
        
    //Запись статуса в контекстную переменную формы
        
    ViewContext.data.status order!.data.__status!.name
    }