Обновление Msch Pos Mixin

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