Логично.
X++:
specTrans.skipDeleteActions(true);
delete_from specTrans
where specTrans.SpecTableId == custVendPaymProposalLine.TableId
notexists join custVendPaymProposalLine
where custVendPaymProposalLine.JournalId == ledgerJournalTable.JournalNum
&& custVendPaymProposalLine.RecId == specTrans.SpecRecId;
Если более одного пользователя работает с Payment proposal creation, то тот, кто последним создает Payment proposal - тот и прав. Записи SpecTrans для остальных журналов очищаются из-за условия "custVendPaymProposalLine.JournalId == ledgerJournalTable.JournalNum" в notexists join. Т.е. для остальных пользователей в журнал ничего не переносится.