Ни как не могу создать запрос. Есть две таблицы OS и Main, связаны 1 (OS) ко многим. Резутате хочу получить выборку: 
ОС.ИнвентарныйНомер1, Main.ИнвентарныйНомер1, Main.Сотрудник1
ОС.ИнвентарныйНомер1, Main.ИнвентарныйНомер1, Main.Сотрудник2
ОС.ИнвентарныйНомер1, Main.ИнвентарныйНомер1, Main.Сотрудник3
А у меня выбирается только первая запись из таблицы Main. То ли выбираю не так, то ли запрос не тот
	PHP код:
	
		
			
void run()
{
    Args                        args;
    ReportRun                   report;
    TmpOSReportTable            _TmpOSReportTable;
    OS                          _OS;
    Main                        _Main;
    QueryRun qr;
    Query NewQuery;
    QueryBuildDataSource bb;
    QueryBuildRange br;
    int                         i;
;
    ttsbegin;
    delete_from _TmpOSReportTable;
    ttscommit;
    NewQuery = new Query ();
    bb = NewQuery.AddDataSource (TableNum(OS));
    if ((dialogOSGroup.value()) != "")
    {
     br = bb.AddRange (fieldNum(OS, OSGroup));
     br.value (dialogOSGroup.value());
    }
    if ((dialogOSNumber.value()) != 0)
    {
     br = bb.AddRange (fieldNum(OS, Number));
     br.value(int2str(dialogOSNumber.value()));
    }
    if (( dialogStartDate.value()) != datenull())
    {
     br = bb.AddRange (fieldNum(OS, StartDate));
     br.value(Date2Str(dialogStartDate.value(),123,2,2,2,2,2));
    }
    bb = bb.AddDataSource (TableNum(Main));
    bb.joinMode(joinMode::InnerJoin);
//    bb.relations(true);
//    bb.fetchMode(0);
    bb.addLink(fieldNum(OS, Number), fieldNum(Main, Number));
    qr = new QueryRun (NewQuery);
//if (qr.prompt())
//{
ttsbegin;
while (qr.next())
{
_OS     = qr.get(tableNum(OS));
_Main   = qr.get(tableNum(Main));
        _TmpOSReportTable.Number             = _OS.Number;
        _TmpOSReportTable.OsName             = _OS.OsName;
        _TmpOSReportTable.StartDate          = _OS.StartDate;
        _TmpOSReportTable.OSGroup            = _OS.OSGroup;
        _TmpOSReportTable.DAmort             = _OS.DAmort;
        _TmpOSReportTable.Cost               = _OS.Cost;
        _TmpOSReportTable.RealCost           = _OS.RealCost;
        _TmpOSReportTable.Person             = _Main.Person;
        _TmpOSReportTable.insert();
        next _OS;
//        next _Main;
print _OS.OsName;
print _Main.Person;
}
ttscommit;
    args = New Args(reportstr(OSReport));
    args.caller(this);
    args.record(_TmpOSReportTable);
    report = classFactory.reportRunClass(args);
    report.run();
}