Но в данном конкретном запросе (я рассматриваю только его) выше есть строки
X++:
while select RecId from markupTrans
where markupTrans.TransRecId == this.RecId
&& markupTrans.TransTableId == this.TableId
где мы четко по номеру таблицы и RecId находим запись в таблице накладных расходов (она привязана четко к одному документу но разным строкам - что нам не важно). Потом по ней строку фактуры (по RecID - опять четкая увязка к документу). А двух контрагентов в одном документе быть никак не может.
Так зачем потом еще фильтр по контрагенту? Ведь даже если мы накладные расходы разбили по нескольким фактурам (не знаю зачем) то контрагент то все равно один. Или все-таки бывают варианты?.