Show/Hide Toolbars

Руководство администратора

Изменение значения одного ДП в зависимости от другого ДП

Ссылки Назад Вверх Вперед

Новый МТФ

Пример 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);

 

}
  ...

Старый МТФ

Изменение значения одного ДП в зависимости от другого ДП обычно настраивается с помощью смартов. Но если такой пакет действий привязан к смарт-событию "После смены ДП", то он будет выполняться только в момент сохранения карточки задачи. Чтобы при изменении одного ДП пользователь мог сразу увидеть обновленное значение второго ДП, без необходимости лишний раз сохранять карточку задачи, можно настроить изменение с помощью приведенной ниже js-вставки.

К дате, которая записана в ДП ID=123, надо прибавить 1 час и записать в ДП ID=456.

(window).addEventListener('MTFMainLoadFinished', function() {
 
 //Получаем объект ДП с ID=123
 var ep123 = new ExtParam(123);
 
 // Создаем функцию с обработкой изменения ДП
 function f_change() {              
   var ep456 = new ExtParam(456);
   var text1 = ep123.val();
  var date1 = new Date(text1.replace(/(\d+).(\d+).(\d+)/, '$3/$2/$1'));
  date1.setHours(date1.getHours() + 1);               // прибавляем 1 час
 

   var newFormatedDate = date1.format("dd.MM.yyyy H:mm").toString();
  ep456.val(newFormatedDate);
  ep456.save();
 }
 
 //Привязываем функцию к событию изменения значения ДП с ID=123
 ep123.change( function () {
    f_change();
 });            
 
 //Вызываем только что привязанную функцию
 f_change();
 
});

Полезные ссылки