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

# Обновление 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;
    }) ;