Чуть более короткий путь, там специально делегат оставили.
Тут нужно было протянуть свой текст в GeneralJournalAccountEntry.Text из VendorInvoice. Но суть та же.
X++:
[SourceDocumentExtensionAttribute()]
class VendorInvoiceSubledgerJournalTransferCommandExtension extends SubledgerJournalTransferCommandExtension
{
public void insertedGeneralJournalAccountEntry(RefRecId _transferidVal, SourceDocument _sourceDocument, boolean _doSummarization)
{
SourceDocumentHeader sourceDocumentHeader;
TransactionTextLarge transactionText;
GeneralJournalAccountEntry localGeneralJournalAccountEntry;
SubLedgerJournalAccountEntryView subLedgerJournalAccountEntryView;
if (!_doSummarization)
{
sourceDocumentHeader = _sourceDocument.parmSourceDocumentHeader();
if (sourceDocumentHeader.TypeEnumName == enumStr(SourceDocument_VendorInvoice) && sourceDocumentHeader.TypeEnumValue == SourceDocument_VendorInvoice::VendorInvoice)
{
transactionText = VendInvoiceInfoTable::findSourceDocumentHeader(sourceDocumentHeader.RecId).ConcurVoucherTxt();
}
if (transactionText)
{
localGeneralJournalAccountEntry.skipDataMethods(true);
localGeneralJournalAccountEntry.skipDatabaseLog(true);
update_recordset localGeneralJournalAccountEntry
setting Text = transactionText
exists join subLedgerJournalAccountEntryView
where subLedgerJournalAccountEntryView.TransferId == _transferidVal
&& subLedgerJournalAccountEntryView.SourceDocumentHeader == sourceDocumentHeader.RecId
&& subLedgerJournalAccountEntryView.GeneralJournalAccountEntry == localGeneralJournalAccountEntry.RecId;
}
}
}
protected void subscribe()
{
super();
command.insertedGeneralJournalAccountEntry += eventhandler(this.insertedGeneralJournalAccountEntry);
}
}