Цитата:
Сообщение от
LEX
select firstonly _vendTrans
index hint VoucherDateIdx
where _vendTrans.Invoice == fTrans.InvoiceId &&
_vendTrans.TransDate == fTrans.InvoiceDate;
Во-первых, так неправильно. Необходимо учитывать AccountNum (для CustTrans то-же самое).
Во-вторых, в счет-фактуру может входить несколько накладных и сопоставлена может быть только одна из них. Т.е. правильнее делать так
X++:
select firstonly recid from _fTrans
where _fTrans.FactureId == FactureJour.FactureId
join LastSettleVoucher, RecId from _vendTrans
where _vendTrans.AccountNum == FactureJour.CustVendInvoiceAccount &&
_vendTrans.Invoice == fTrans.InvoiceId &&
_vendTrans.TransDate == fTrans.InvoiceDate &&
_vendTrans.LastSettleVoucher;
В-третьих, посмотрите метод document() таблицы FactureJour_Ru - в нем выдергивается номер сопоставленного документа при создании с/ф (и при выполнении которого уходит много времени

)