Карточка создания новой задачи (НТФ)
При переходе на новый НТФ для работы с карточкой создания новой задачи с использованием JS-вставки обязательно должно быть использовано событие NewTaskLoadFinished.
"(window).addEventListener('NewTaskLoadFinished', onDestroy)
{
...
}"
|
Конструкция $(window).on('NewTaskLoadFinished', function () работать не будет!
Без использования события 'NewTaskLoadFinished', при переходе в новый НТФ, JS-вставки корректно работать не будут!
|
Пример JS-вставки с использованием события 'NewTaskLoadFinished'
Пример JS-вставки скрывающей ДП в зависимости от значения другого ДП
window.addEventListener('NewTaskLoadFinished', function() {
console.log('123');
var ep29581 = new ExtParam(29581);
ep29581.val('Исходящее письмо');
ep29581.hide();
var ep29221 = new ExtParam(29221);
ep29221.change(function() {
console.log('change');
ep29581.show();
});
window.addEventListener('NewTaskDestroyed', e => {
console.log('clean up destroy');
ep29221.change(null);
}, { once: true });
});
|
Карточка задачи (МТФ)
При переходе на новый МТФ для работы с карточкой задачи с использованием JS-вставки обязательно должно быть использовано событие MTFMainDestroyed, которое позволяет очищать память при изменении контекста задачи (закрытие задачи, переключение на другую задачу, смена taskId и т.д.):
"(window).addEventListener('MTFMainDestroyed', onDestroy)
{
...
}"
|
Без использования события 'MTFMainDestroyed', при переходе в новый МТФ, JS-вставки корректно работать не будут!
|
Пример JS-вставки с использованием события 'MTFMainDestroyed'
Пример JS-вставки скрывающей ДП в зависимости от значения другого ДП
...
{
var ep30601, ep72670;
function check() {
const ep30601Val = ep30601?.val();
console.log(ep30601Val)
if (ep30601Val?.value == "test") {
ep72670.show()
}
else {
ep72670.hide()
}
};
// Срабатывает на открытии и обновлении МТФ
function onLoad() {
console.log('js')
ep30601 = new ExtParam(30601);
ep72670 = new ExtParam(72670);
check();
ep30601.change(() => check());
}
//
function onDestroy() {
window.removeEventListener('MTFMainLoadFinished', onLoad);
// Чтобы change не вызывался после нового открытия,
// т.к. глобально в памяти ep30601 еще есть
ep30601?.destroy();
ep72670?.destroy();
}
window.addEventListener('MTFMainLoadFinished', onLoad);
window.addEventListener('MTFMainDestroyed', onDestroy);
}
...
|
Получение значения ДП
Для получения значения параметра необходимо обращаться к конкретному ключу в JSON-объекте, а не использовать только ep.val(). Примеры:
•Lookup: ep.val().taskId
•Выпадающий список: ep.val().text или ep.val().value
•Галочка (checkbox): ep.val() == true (вместо ep.val() == 'да')