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

# Создание объектов по результатам SQL-выборки

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

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

Внимание

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

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

    var s = `select t.*,
    	   case when t.rn <=1500 then '12000000'
    	        when t.rn >1500 and t.rn <=3000  then '14000000'
    	        when t.rn >3000 and t.rn <=4500  then '15000000'
    	        when t.rn >4500 and t.rn <=6000  then '17000000'
    	        when t.rn >6000 and t.rn <=7500  then '18000000'
    	        when t.rn >7500 and t.rn <=9000  then '19000000'
    	        when t.rn >9000 and t.rn <=10500  then '20000000'
    	        when t.rn >10500 and t.rn <=12000  then '21000000'
    	        when t.rn >12000 and t.rn <=13500  then '22000000'
    	        when t.rn >13500 and t.rn <=15000  then '13000000' end as ss
    from (
    select i.id, ROW_NUMBER() OVER () AS rn
    from Asf_TaxPropertyCalcAvg d
    join bs_invnumb i on i.id = d.idinvnumb
    where d.iddoc  = 52
    ) t
    `;
    var a = toDate("01.01.2000 12:42:10");
    var b = toDate("31.12.2025 12:42:10");
    var l = sql(s).asList();
    for(w:l){
     var rvRop = Asf_TaxPropertyInvNumbSpecialApi.insert();
      Asf_TaxPropertyInvNumbSpecialApi.setdFrom(rvRop, a);
      Asf_TaxPropertyInvNumbSpecialApi.setdTo(rvRop, b);
      Asf_TaxPropertyInvNumbSpecialApi.setidInvNumb(rvRop, w.id);
      Asf_TaxPropertyInvNumbSpecialApi.setidPropertyLoc(rvRop, 2L);
     Asf_TaxPropertyInvNumbSpecialApi.setsOKTMO(rvRop, w.ss);
    }