Я скопировал ниже из своего метода, который перемещает файлы из возможности в заказ на обслуживание. Также я адаптировался, чтобы действовать в соответствии с ARInvoice & Service Order. Вы можете адаптировать его к своей ситуации. На графике CreateInvoiceBase есть метод с именем CreateInvoices . Посмотрите, можете ли вы использовать процедуру инъекции ниже и расширить / переопределить CreateInvoices или связанный метод на этом графике.
PXGraph.InstanceCreated.AddHandler<ARInvoiceEntry>((graph) =>
{
graph.RowInserted.AddHandler<ARInvoice>((sender, e) =>
{
ARInvoice arInvoice = e.Row as ARInvoice;
foreach(UploadFile file in PXSelectJoin <UploadFile,
InnerJoin<NoteDoc, On<NoteDoc.fileID, Equal<UploadFile.fileID>>,
InnerJoin<FSAppointment, On<FSAppointment.noteID, Equal<NoteDoc.noteID>>>>,
Where<FSAppointment.refNbr,Equal<Current<FSAppointment.refNbr>>,
And<FSAppointment.srvOrdType,Equal<Current<FSAppointment.srvOrdType>>.Select(Base))
{
PXNoteAttribute.SetFileNotes(sender, arInvoice, file.FileID.Value);
}
});
});