Перейти к основному содержанию
`Ctrl`+`K`

# Обновление дат документов и проводок по списку 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);