Удаление неиспользуемых спецификаций единиц продукции#
Удаляет спецификации, связанные с ТМЦ по заданным условиям, если они не используются в списках единиц продукции. Перед удалением последняя версия переводится в редактируемое состояние и удаляется из структуры.
Место применения: Сервис > Инструменты > Выполнить 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();
}