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

# Изменение номеров хозяйственных операций из табличного файла

Изменяет номера хозяйственных операций по данным из Excel-файла. Скрипт читает строки, получает новый номер документа и `gid` хозяйственной операции, загружает объект и изменяет значение номера. Если объект не найден, информация записывается в лог.

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

Внимание

Перед запуском проверьте имя листа, номера столбцов и способ загрузки объекта по `gid`.

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

    var fun = x -> {
      var sheet = x.getSheet("Sheet1");
      var lastRowNum = sheet.getLastRowNum();

      // Цикл for с начальным значением 2 до последней строки
      for (var nvi = 2; nvi <= lastRowNum; nvi = nvi + 1) {
        var vRow = sheet.getRow(nvi);
        var svNumDocNew = vRow.getCell(6).getStringCellValue();
        var gidvTransDoc = vRow.getCell(7).getStringCellValue();
        var ropTransDoc = null;

        @begin {
          ropTransDoc = Act_TransDocApi.load(toLong(parseId(gidvTransDoc)));
          var svNumDocOld = ropTransDoc.sNumDoc;
          Act_TransDocApi.setsNumDoc(ropTransDoc, svNumDocNew);
          var svInfoLog = "Номер хозяйственной операции " + gidvTransDoc + " " + svNumDocOld + " заменен на номер " + svNumDocNew;
          Btk_InfoLogPkg.info(svInfoLog);
          commit();
        }

        if (ropTransDoc == null) {
          Btk_InfoLogPkg.info("Объект " + gidvTransDoc + " не найден");
          continue; // Переходим к следующей строке
        }
      }

      audInfo('Данные загружены');
      true;
    }

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