//добавлена функция "#NULL" для обнуления значения
//пример
task.initiatoruserid.setValue(#NULL)
//добавлены функции для работы с полем "заявитель"
//получить значение
task.initiatoruserid.value
task.initiatorgroupid.value
//установить значение
task.initiatoruserid.setValue(...)
task.initiatorgroupid.setValue(...)
//добавлены функции для работы с доп полями "Date" и "DateTime"
//получить значение
task.addfield_test1Date.value
task.addfield_test1DateTime.value
//установить значение
task.addfield_test1Date.setValue('2026-01-01')
task.addfield_test1DateTime.setValue('2026-01-01T10:00:00')
//добавлены функции для работы с полями "срок выполнения (план\факт)" и "срок реакции (план\факт)"
//получить значение "срок выполнения (план\факт)"
task.resolutiondateplan.value
task.resolutiondatefact.value
//установить значение "срок выполнения (план\факт)"
task.resolutiondateplan.setValue(...)
task.resolutiondatefact.setValue(...)
//получить значение "срок реакции (план\факт)"
task.reactiondateplan.value
task.reactiondatefact.value
//установить значение "срок реакции (план\факт)"
task.reactiondateplan.setValue(...)
task.reactiondatefact.setValue(...)
//добавлена функция для получение текущей даты
date.now
//добавлена функция diff для вычисления разницы между двумя датами
date.diff(date1, date2, unit)
//при вызове происходит вычитание date2 из date1
//если date1 меньше чем date2, то результатом будет отрицательное число
//unit - разрядность вычитания, доступные значения:
// year | month | day | hour | minute | second | millisecond
//пример
//выдавать ошибку если в дату выполнения заявки установили значение меньше чем 5 дней от текущей даты
if(number.bool(date.diff(task.resolutiondateplan.value, date.now, day) < 5)) {
throw 'Дата выполнения должна быть больше 5 дней от текущей даты'
}
//работа с комментарием
//получить html текст комментария
task.comment.value
//установить html текст комментария
task.comment.setValue(...)
//преобразовать html text в plain text
html.toPlainText(...)
//пример скрипта
//в доп поле с типом "текст" установить plain text из комментария
task.addfield_testText.setValue(html.toPlainText(task.comment.value))
//добавлена возможность менять значения выпадающих списков на форме заявки для доп полей с типом "SingleSelect" и "MultiSelect"
//возможно установить 2 значнения:
// [...], строковый массив значений
// default, для загрузки полного списка
//для правильной работы в стандартном списке должны быть указаны все значения, которые используются в скрипте,
//иначе значение из скрипта будет проигнорировано
script {
rule {
name: 'test rule'
action {
//секция по работе с внешним видом формы заявки
ui {
//alias доп поля
addfield_testSingleSelect {
//загрузить стандартный список
list = default
}
//alias доп поля
addfield_testMultiSelect {
//показать только заданные значения
list = ['1', '2']
}
}
}
}
}
//добавлена возможность создавать кастомные функции с возвращаемым значением
//пример с построчным комментарием возможностей
script {
helpers {
//создана функция test1
function test1(nFactor, mFactor){
//в v1 и v2 запомнили значения доп полей
var v1 = task.addfield_dopPoleNumber.value
var v2 = task.addfield_factorNumber.value
//в v3 вычислили произведение v1 на v2
var v3 = number.math(vars#v1 * vars#v2)
//в v4 вычислили деление v3 на динамичный аргумент nFactor
var v4 = number.math(vars#v3 / args#nFactor)
//результатом функции будет умножение v4 на mFactor
return number.math(vars#v4 * args#mFactor)
}
//можно создать функцию без аргументов
function getServiceId() {
return task.serviceid.value
}
}
rule {
name: 'rule test'
action {
//вызов функции с аргументами
task.comment.setValue(func#test1(10, 15))
//вызов функции без аргументов
task.comment.setValue(func#getServiceId())
}
}