Обновление дат документов и проводок по списку GID из XLSX

Обновление дат документов и проводок по списку GID из XLSX#

Используется для массового обновления дат документов и связанных с ними проводок по списку GID из XLSX-файла. Скрипт читает значения из первого столбца файла Excel, находит соответствующие документы проводок, устанавливает для них фиксированную дату и обновляет даты связанных проводок.

Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт

Внимание

Требует адаптации под конкретную задачу. Перед запуском укажите актуальную дату в переменной dvDate, проверьте имя листа Excel и убедитесь, что GID документов указаны в первом столбце файла.

Тип: JEXL-скрипт

var GetStringValue = function(row, Column)  {
     row.getCell(Column) == null ? null : toString((row.getCell(Column)).getCellType()) == "NUMERIC" ? toString(row.getCell(Column).getNumericCellValue()) : toString(row.getCell(Column)).trim();
  }

var fun = x -> {
  var sheet = x.getSheet("Лист1");
  var lastRowNum = sheet.getLastRowNum();
  var i =  1;
  var dvDate = toDate("31.01.2025", "dd.MM.yyyy");
  while (i <= lastRowNum ){
    var row = sheet.getRow(i);
    var gidDoc = GetStringValue(row, 0);
                var s = `select t.id
                                               from act_transdoc t
                                               where t.gidsrc  = '` + gidDoc + `'
                                               `;
                var l = sql(s).asList();
                for(w:l){
                               var ropTr = Act_TransDocApi.load(w.id);
                               Act_TransDocApi.setdDoc(ropTr, dvDate);
                               var s2 = `select t.id
                                               from act_trans t
                                               where t.idTransDoc  = ` + ropTr.id 
                                               ;
                                               var l2 = sql(s2).asList();
                               for(r:l2){
                                               var rop1 = Act_TransApi.load(r.id);
                                               Act_TransApi.setdDate(rop1, dvDate);
                               }
                               commit();
                }
                    i = i+1;
   }

commit();
true;
}

lib("Btk_XlsxLib").uploadParseFiles(fun);