X++:
public void executeQuery()
{
QueryBuildDataSource qbds;
QueryBuildRange qbdsrange3;
QueryBuildDataSource qbds1;
str _rangeClose;
QueryBuildDataSource qbdsStd;
QueryBuildRange qbrStatus;
;
//запрос по таблице РБП
qbds1 = this.query().dataSourceTable(tableNum(RDeferralsTable));
qbds1.clearRanges();
qbds1.clearLinks();
if (!this.query().dataSourceTable(tableNum(RDeferralsBook)))
{
if (Cat_OpenDef.value() == NoYes::No)
{
qbdsStd = qbds1.addDataSource(tablenum(RDeferralsBook));
qbdsStd.joinMode(JoinMode::ExistsJoin);
qbdsStd.relations(true);
qbrStatus =qbdsStd.addRange(fieldnum(RDeferralsBook,Status));
qbrStatus.value(enum2str(RDeferralsStatus::Open));
}
}
else
{
qbdsStd = qbds1.addDataSource(tablenum(RDeferralsBook));
qbdsStd.joinMode(JoinMode::ExistsJoin);
qbdsStd.relations(true);
qbrStatus =qbdsStd.addRange(fieldnum(RDeferralsBook,Status));
qbrStatus.value('');
}
super();
}
Идет куда надо, но qbds1.addDataSource(tablenum(RDeferralsBook)); все равно игнорирует, он вообще
qbdsStd = qbds1.addDataSource(tablenum(RDeferralsBook)); расценивает как один запрос и не соединяет его с первичным запросом
qbds1 = this.query().dataSourceTable(tableNum(RDeferralsTable));
Т.е. на выходе у него появляется 2 отдельных запроса qbds1 и qbdsStd , а они должны были соединиться.
А может причина в том, что RDeferralsTable является DS формы, а RDeferralsBook - нет?