Как бы я сделал всё что выше super() в классе ProdJournalCreateBOM вынес бы в отдельный метод
X++:
Protected void preCreateLines()
{
ProdJournalBOM prodJournalBOM;
ProdBOMCalc prodBOMCalc;
ProdBOM prodBOM;
BOMCalcData BOMCalcData = BOMCalcData::newProdTable(qtyCalc,ProdTable::find(prodId));
;
setPrefix("@SYS28536");
this.initProdJournalTableData(prodJournalType::Picklist);
prodJournalTransData = prodJournalTableData.JournalStatic().newJournalTransData(prodJournalBOM,prodJournalTableData);
if (prodJournalTable.NumOfLines)
prodJournalTransData.parmLastLineNum(prodJournalBOM::lastLineNum(journalId));
if (! oprNumTo)
oprNumTo = oprNumFrom;
BOMCalcData = BOMCalcData::newProdTable(qtyCalc,ProdTable::find(prodId));
while select forupdate prodBOM
index hint numIdx
where prodBOM.prodId == prodId &&
prodBOM.OprNum >= oprNumFrom &&
(prodBOM.OprNum <= oprNumTo || ! oprNumTo)
{
prodBOMCalc = prodBOMCalc::newBOMCalcData(BOMCalcData,prodBOM,ConsumpProposal,BOMAutoConsump,! prodBOM.ConstantReleased, shipAccError);
if (prodBOMCalc.hasQty() ||
(endUpdate && prodBOM.backorderStatus == ProdBackStatus::Release))
{
prodJournalTableData.initJournalId();
this.initTransFromProdBOM(prodJournalBOM,prodBOM);
ProdBOMCalc.setProdJournalBOM(prodJournalBOM);
if (ConsumpAsProposal)
{
prodJournalBOM.BOMConsump = prodJournalBOM.BOMProposal;
prodJournalBOM.inventConsump = prodJournalBOM.inventProposal;
}
if (proposalAsConsump)
{
prodJournalBOM.BOMProposal = prodJournalBOM.BOMConsump;
prodJournalBOM.inventProposal = prodJournalBOM.inventConsump;
}
prodBOM.ConstantReleased = noYes::Yes;
prodJournalBOM.insertJournalCreate(prodJournalTransData,prodBOM);
if (prodBOM.ConstantReleased != prodBOM.orig().ConstantReleased)
prodBOM.doUpdate();
}
}
}
А в методе createLines класса ProdJournalCreateBOM
X++:
Protected void createLines()
{
;
this.preCreateLines();
super();
}
А в своём классе уже будете перекрывать preCreateLines и не будете трогать createLines