Есть ли возможность подставлять числовые значения, описывающих конкретную нештатную ситуацию, в сообщение и описание пользовательской НС? Чтобы скриншот, приложенный ниже, предоставлял пользователю в пользовательской нештатной ситуации такой же объем информации, как и в предопределенных вариантах диагностики нештатных ситуаций ЛЭРС Учет.
[15898] Подстановка рассчитанных значений в сообщения и описание пользовательских нештатных ситуаций
В сообщении пользовательской НС можно выводить только данные подстановочных блоков. Рассчитывать значения при формировании сообщения НС и выводить результат этого расчета в нем возможности нет.
Начиная с 3.60 мы начали использовать liquid-шаблоны для формирования кратких и полных сообщений о пользовательских нештатных ситуациях, так что теоретически такая возможность есть.
Если вы подробнее напишете какой текст вы хотите составить и какие значения использовать, можем попробовать составить нужный шаблон.
Для НС описанной здесь: НС для контроля отрицательного потребления по ГВС используется пользовательская НС.
Сейчас сообщение выглядит так. “Отрицательное потребление ГВС более 4%”, а хотелось бы увидеть примерно так:
"Отрицательное потребление ГВС “- 6,83 %”, небалас “- 0,17 тонн”
Небаланс берётся из параметра %M?
Можно брать и из %M
В НС он считается, т.к. в некоторых случаях настаивают при определении небаланса делить на |М1-М2|/2, а на М1
В общем сейчас возможность есть, но синтаксис шаблонов для этого подходит не очень хорошо. Сам шаблон будет выглядеть сложно, там будет многоэтажная конструкция из фильтров и переменных. К тому же, если изменить саму формулу и забыть поменять шаблон, сообщение будет выводиться неверно.
У нас давно витала в воздухе идея захватывать часть выражений в расчётных формулах. Фактически, дать возможность использовать в них переменные и значения этих переменных выводить в шаблонах сообщений.
Мы решили сделать это следующим образом. В 3.61 добавим в расчётные формулы новую функцию Capture
. Она принимает два параметра: строковое наименование переменной и выражение. Значение выражение сохраняется в переменной и сразу же возвращается. Например, ваша формула расчёта выглядит так:
([ХВС.М1] - [ХВС.М2]) / [ХВС.М1] < 4
Её можно будет переписать в таком виде, и работать она будет точно так же.
Capture('MyValue', ([ХВС.М1] - [ХВС.М2]) / [ХВС.М1]) < 4
Здесь результат выражения будет сохранён в переменную MyValue
. Если нужно, можно и порог тоже захватить
Capture('MyValue1', ([ХВС.М1] - [ХВС.М2]) / [ХВС.М1]) < Capture('MyValue2', 4)
В шаблон мы добавим новое поле Captures
, которое позволит вывести захваченные значения. То есть, ваше сообщение может выглядеть следующим образом
Значение {{ Captures['MyValue1'] }} стало меньше чем {{ Captures['MyValue2']
Остальные значения из записи и так можно вывести. В шаблоне уже есть поле Consumption
. из которого можно выдернуть значение M_balance:
Значение небаланса: {{ Consumption[0] | param_value: 'M_balance' }}
Таким образом вы сможете использовать нужные части из расчётной формуле непосредственно в шаблоне сообщений.
Функция Capture
будет доступна в релизе 3.61.