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

# Обновление Res Tech Proc

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

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

Внимание

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

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

    var nvCount = sql(`
    	select count(*) as "nCount"
    	from (
    		select tpv.id
    		from mct_techProc tp
    		join btk_objectType ot on tp.idObjectType = ot.id
    		join Btk_SubClass sc on ot.idsubclass = sc.id
    		join mct_techProcVer tpv on (tpv.idmctdocument = tp.id and tpv.bislast = 1 and tpv.idstatemc = 300)
    		where sc.scode = 'Mct_TechProc_UnitProduct'
    		and exists (
    			select 1
    			from mct_techproclist tpl
    			join mct_techproclistnorm tpln on tpl.id = tpln.idtechproclist
    			join mct_techprocnorm tpn on tpln.idtechprocnorm = tpn.id
    			where tpl.idtechprocver = tpv.id
    			and tpn.idresource is not null
    			)
    	) t
    	`).asSingle().nCount;
    var nvIter = nvCount / 300 + 1;
    for (i : (1 .. nvIter)){
    	var ropList =  sql(`
    		select tpv.id
    		from mct_techProc tp
    		join btk_objectType ot on tp.idObjectType = ot.id
    		join Btk_SubClass sc on ot.idsubclass = sc.id
    		join mct_techProcVer tpv on (tpv.idmctdocument = tp.id and tpv.bislast = 1 and tpv.idstatemc = 300)
    		where sc.scode = 'Mct_TechProc_UnitProduct'
    		and exists (
    			select 1
    			from mct_techproclist tpl
    			join mct_techproclistnorm tpln on tpl.id = tpln.idtechproclist
    			join mct_techprocnorm tpn on tpln.idtechprocnorm = tpn.id
    			where tpl.idtechprocver = tpv.id
    			and tpn.idresource is not null
    			)
    		order by tpv.id
    		`
    		+ " limit 300 offset " + ((i-1) * 300)).batchObjLoad(Mct_TechProcVerApi, "id");
    	for (rop : ropList){
    		Mct_TechProcApi.registerResTechProc(rop);
    	}
    	commit();
    }