//  этот БП будет запущен при наступлении времени таймера в маршруте 

var result = true;
var message = "OK";

// Найти работы с кодом approve 
function processesFilter(processes, userID) {
  let result = [];
  function search(p) {
    p.forEach(function(x) {
      if (x.code == 'approve' && x.typeID == 'ASSIGNMENT_ITEM' && !x.finished && x.responsibleUserID == userID) {
          result.push(x);
//          log.info('найдено result', result); 
      }
      if (x.subProcesses.length > 0) search(x.subProcesses);    
    });
  }
  search(processes);
  return result;
}

try {
    let currentFormData = API.getFormData(dataUUID);
    let currentUser = API.httpGetMethod("rest/api/person/auth");

//  Найти работы для пользователя, от имени которого запускается БП (должна быть параллельная работа для этого пользователя)
    let processes = processesFilter(API.getProcesses(documentID), currentUser.userid);

//  записать данные на форму завершения
    if(processes.length != 0) {
      let actionID = processes[0].actionID;
      let resultFormWork = API.getFormForResult("service_form_approve", actionID);
      let resultFormWorkData = API.getFormData(resultFormWork.dataUUID);
      UTILS.setValue(resultFormWorkData, "is_ok", {key: '1', value: 'Да'});
      UTILS.setValue(resultFormWorkData, "comment", {value: 'Закрыто по таймеру, т.к. время на подтверждение истекло'});        

//   завершить работу   
      API.saveFormData(resultFormWorkData);
      API.finishWork(actionID, resultFormWork.file_identifier);
    }


} catch (err) {
  log.error(err.message);
  message = err.message;
}
