OuterJoin как мне представляется должен работать отлично.
Если в форме 2 датасорса SalesTable и PickingRouteid и в PickingRouteid я так понимаю нет записей, которых нет в SalesTable, то задвоение может происходить только если не установлена связь (Relation) между SalesTable и PickingRouteid по pickingroute.transrefid или динамически PickingRouteid хватает другую связь. Можно поробовать переопределить init датасорса PickingRouteid примерно так:
X++:
public void init()
{
QueryBuildDatasource qbds;
;
super();
qbds = this.query().dataSourceTable(tableNum(PickingRouteid));
qbds.clearDynalinks(); // долой диналинки
qbds.clearLinks(); // ... и линки на всякий случай
qbds.addLink(fieldNum(SalesTable, SalesId), fieldNum(PickingRouteid, transrefId));
}
... или на таблице PickingRouteid создать relation.
Если я неверно чего понял sorry. SalesTable у меня в AOT есть а PickingRouteid?