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

# Удаление неиспользуемых спецификаций единиц продукции

Удаляет спецификации, связанные с ТМЦ по заданным условиям, если они не используются в списках единиц продукции. Перед удалением последняя версия переводится в редактируемое состояние и удаляется из структуры.

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

Внимание

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

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

    var nvCount = 400
    var nvIter = nvCount / 10 + 1;
    for (i : (1 .. nvIter)){
    	var ropList =  sql(`
    		select distinct
    			s.id
    		from bs_goods g
    		join bs_goodssrc gs on g.id = gs.idgds
    		join mct_specification s on gs.gidsrc = s.gid
    		left join mct_unitprodsheetlist ul on s.id = ul.idspecification
    		where (upper(g.sdesignation) like 'ТЛИШ.745311.001%'
    		or upper(g.sdesignation) like 'ТЛИШ.745311.001%'
    		or upper(g.sdesignation) like 'ТЛИШ.363621.069%'
    		or upper(g.sdesignation) like 'ТЛИШ.363621.058-%'
    		or upper(g.sdesignation) like 'ВПИЕ.632721.012%'
    		or upper(g.sdesignation) like 'ИЕАШ.632731.018%'
    		or upper(g.sdesignation) like 'ТЛИШ.363611.059%'
    		or upper(g.sdesignation) like 'НИМБ.324219.210%'
    		or upper(g.sdesignation) like '22350.363212.009%')
    		and ul.id is null
    		order by s.id
    		limit 10
    		`).batchObjLoad(Mct_SpecificationApi, "id");
    		for (rop : ropList){
    			//@begin{
    				var gidvLastVer = Mct_SpecificationApi.getGidLastVer(rop.idJ())
    				var idvLastVer = parseId(gidvLastVer);
    				var ropLastVer = Mct_SpecificationVerApi.load(idvLastVer);
    				Mct_SpecificationVerApi.setidState(ropLastVer, Mct_SpecificationVerApi.idEditState());
    				Mct_StructureGenPkg.deleteFromStructure(gidvLastVer);
    				flush();
    				Mct_SpecificationApi.delete(rop);
    			//	commit();
    			//}
    			//@exception
    			// function(exp){
    			//	println('there was an exception');
    			//	rollback();
    			//	}end;
    			}
    			commit();
    }