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

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