Создание объектов по результатам 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);
}