Обновление Msch Pos Mixin#
Используется для настройки или корректировки метаданных системы: типов объектов, вкладок, состояний, операций или атрибутов.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Внимание
Требует адаптации под конкретную базу и версию системы. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.
Тип: JEXL-скрипт
sql(`
with mschOT as (select ot.id as idMctObjectType
from btk_objecttype ot
where ot.scode = 'UnitProduct')
select
svp.id as "idSpecVerPos"
,dvp.gidref as "gidDocumentVerPos"
from mct_specificationverpos svp
left join mct_specificationver sv on svp.idmctdocumentver = sv.id
left join mct_specification s on sv.idmctdocument = s.id
left join mct_documentverpos dvp on svp.gid = dvp.gidref
where s.idobjecttype in (select idMctObjectType from mschOT)
and dvp.gidref is not null
`).foreach(function(r){
@begin{
var ropSVP = Mct_SpecificationVerPosApi.load(r.idSpecVerPos);
var rvSVP = ropSVP.copyAro();
var ropDocVerPos = Mct_DocumentVerPosApi.loadByGid(r.gidDocumentVerPos);
Mct_DocumentVerPosApi.setgidMctDocumentVer(ropDocVerPos, rvSVP.gidMctDocumentVer());
//нужно сетить gidParent
Mct_DocumentVerPosApi.setgidParent(ropDocVerPos, Mct_SpecificationVerPosApi.getGid(rvSVP.idParent()));
Mct_DocumentVerPosApi.setidPosType(ropDocVerPos, rvSVP.idPosType());
Mct_DocumentVerPosApi.setsPosition(ropDocVerPos, rvSVP.sPosition());
Mct_DocumentVerPosApi.setsDesignation(ropDocVerPos, rvSVP.sDesignation());
Mct_DocumentVerPosApi.setsCaption(ropDocVerPos, rvSVP.sCaption());
Mct_DocumentVerPosApi.setsMatMarkProj(ropDocVerPos, rvSVP.sMatMarkProj());
Mct_DocumentVerPosApi.setnQtyTotal(ropDocVerPos, rvSVP.nQtyTotal());
Mct_DocumentVerPosApi.setnQty(ropDocVerPos, rvSVP.nQty());
Mct_DocumentVerPosApi.setnNormPerUnit(ropDocVerPos, rvSVP.nNormPerUnit());
Mct_DocumentVerPosApi.setnUseCoef(ropDocVerPos, rvSVP.nUseCoef());
Mct_DocumentVerPosApi.setnUseCoefManual(ropDocVerPos, rvSVP.nUseCoefManual());
Mct_DocumentVerPosApi.setnMass(ropDocVerPos, rvSVP.nMass());
Mct_DocumentVerPosApi.setidMsr(ropDocVerPos, rvSVP.idMsr());
Mct_DocumentVerPosApi.setidMsrNorm(ropDocVerPos, rvSVP.idMsrNorm());
Mct_DocumentVerPosApi.setidGoods(ropDocVerPos, rvSVP.idGoods());
Mct_DocumentVerPosApi.setsNote(ropDocVerPos, rvSVP.sNote());
Mct_DocumentVerPosApi.setsGdsCode(ropDocVerPos, rvSVP.sGdsCode());
Mct_DocumentVerPosApi.setnMassFull(ropDocVerPos, rvSVP.nMassFull());
Mct_DocumentVerPosApi.setbIsolated(ropDocVerPos, rvSVP.bIsolated());
Mct_DocumentVerPosApi.setsLocatedPlace(ropDocVerPos, rvSVP.sLocatedPlace());
Mct_DocumentVerPosApi.setsOrderSheet(ropDocVerPos, rvSVP.sOrderSheet());
Mct_DocumentVerPosApi.setbProtected(ropDocVerPos, rvSVP.bProtected());
Mct_DocumentVerPosApi.setsSectionNumber(ropDocVerPos, rvSVP.sSectionNumber());
Mct_DocumentVerPosApi.setidOrderSheet(ropDocVerPos, rvSVP.idOrderSheet());
Mct_DocumentVerPosApi.setsCoverType(ropDocVerPos, rvSVP.sCoverType());
Mct_DocumentVerPosApi.setsWBS(ropDocVerPos, rvSVP.sWBS());
commit();
}
@exception
function(exp){
println("[JEXL Exception] " + exp.getCause());
}end;
}) ;