Показать сообщение отдельно
Старый 01.03.2012, 12:04   #1  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
LookUp в SysQueryForm по TableRelations бага или фича
Всем привет!

Ax2009, SP1, RU7

Наткнулся на следующую проблему:
Если сделать две таблицы, одна справочник, во второй таблице есть поле которое заполняется из него.
На EDT нет relation'a!

На второй таблице определяем связь с первой таблицей по полям:
- первое поле, связь обычная, EDT строкового типа
- второе поле, связь обычная (не поле ссылки фиксировано и наоборот), BaseEnum (т.е. текущая запись)

Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 386
Размер:	131.1 Кб
ID:	7606

если выбирать значенния из справочников, все хорошо фильтруется, но если сделать запрос, по кнопке на панели инструментов, или вызвать его программно, то значения не появляются в лукапе.

Нашел метод lookupTableFieldRelation в SysLookup:
X++:
...
if (dictRelation.lines() &&
            dictRelation.lineType(dictRelation.lines())       != TableRelation::ThisFixed &&
            dictRelation.lineTableValue(dictRelation.lines()) == Global::fieldExt2Id(_fieldId)) // Вот здесть получается, что только одна связь может быть для лукапов по обычным relation'ам
        {
            relationPack = connull();

            for (j=1; j <= dictRelation.lines(); j++)
            {
                relationPack = conins(relationPack, conlen(relationPack)+1, [dictRelation.lineType(j), dictRelation.lineTableValue(j)]);
            }

            relationMap.insert(setIterator.value(), relationPack);
        }
...
Никто не сталкивался, как решали?