Показать сообщение отдельно
Старый 29.05.2003, 15:54   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Lightbulb
Все дело в том, что при построении query, когда система пытается прописать связи с Table2 согласно relations (класс SysQueryBuilder метод newDataSource()), она неправильно отрабатывает тип связи "Поле фиксировано". В методе видно, что получаемые числа система пытается интерпретировать как id полей. Так было в версии 2.5, а в 3.0 они все же решили эту проблему и проверяют тип связи в relation`е.
Можно сделать так:
(класс SysQueryBuilder метод newDataSource())
PHP код:
...
for(
lines=1;lines <= dictRelation.lines();lines++)
{
//    newDataSource.addLink(dictRelation.lineExternTableValue(lines), dictRelation.lineTableValue(lines));  было так
    
switch (dictRelation.lineType(lines))
    {
        case 
TableRelation::Field:
            {
                
newDataSource.addLink(dictRelation.lineExternTableValue(lines), dictRelation.lineTableValue(lines));
            }
            break;
        case 
TableRelation::ThisFixed:
            {
                
queryBuildRange newDataSource.addRange(dictRelation.lineTableValue(lines));
                
queryBuildRange.value(queryValue(dictRelation.lineExternTableValue(lines)));
                
queryBuildRange.status(RangeStatus::Hidden);
            }
            break;
    }
}
... 
__________________
Андрей.