Старый МТФ
В зависимости от значения ДП с ID=1234 (в данном случае, это ДП типа "Checkbox") скрыть\показать ДП с ID=5678 (в данном случае это ДП типа "Таблица").
$(window).on('MTFMainLoadFinished', function(){
//Получаем объект ДП с ID=1234
var ep1 = new ExtParam(1234);
// Создаем функцию с обработкой изменения ДП
function f_change() {
var ep2 = new ExtParam(5678);
switch(ep1.val()) {
case 'да':
ep2.show();
break;
case 'нет':
ep2.hide();
break;
default:
ep2.show();
break;
}
}
//Привязываем функцию к событию Смены значения ДП с ID=1234
ep1.change( function () {
f_change();
});
//Вызываем только что привязанную функцию, чтобы при загрузке ДП с ID=5678 был отображен в соответствии с требованиями условий.
f_change();
});
Описанный выше пример отслеживает только "ручное" изменение ДП. Если надо отслеживать также автоматические изменения (в том числе сделанные смартами), то можно использовать следующую конструкцию:
...
var show = true;
...
ep1.change(function(fromAutomatization) {
...
if(show && fromAutomatization) {
ep2.show();
show = false;
}
else {
ep2.hide();
show = true;
}
});
...
Здесь используется событие change(), которое возникает при автоматическом обновлении ДП (в результате работы смарта или других изменений на сервере). В функции, которая подписывается на событие change(), используется параметр fromAutomatization, который равен true при автоматическом обновлении и null при изменении ДП пользователем (однако в силу технических ограничений этот параметр не доступен для ДП типа Lookup или "Выпадающий список").