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

# Загрузка записей из XLSX под заданного родителя

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

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

Внимание

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

Тип: 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 ropAcc = Bs_AccApi.load(7752L);
    var fun = x -> {
      var sheet = x.getSheet("Лист1");
      var lastRowNum = sheet.getLastRowNum();
      var i = 1;
      while (i <= lastRowNum ){
        var row = sheet.getRow(i);
        var scode = GetStringValue(row, 0);
        var scaption = GetStringValue(row, 1);
        var rop = Bs_AccApi.insert();
        Bs_AccApi.setidParent(rop, ropAcc.id) ;
        //Bs_AccApi.setidAdjustMethod(rop, 2L );
        Bs_AccApi.setsCode(rop, scode);
        Bs_AccApi.setsCaption(rop, scaption);
        Bs_AccApi.setidAccType(rop, ropAcc.idAccType);
        Bs_AccApi.setidAccGroup(rop, ropAcc.idAccGroup) ;
        i = i+1;

       }

    commit();

    true;

    }

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