Загрузка записей из 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);