Ситуация: Аксапта 3.0
Когда у нас по полю "Группа договоров" в Договорах происходит лукап, выводится 2 столбца: группа договоров и название.
причём отсортирован набор по второму полю (название).
Я лезу в дебугер, рою, рою и нарываю следующее:
Класс: (C) \Classes\FormStringControl\Lookup - line 24
Код:
// Changed on 11 Апр 2003 at 12:05:37 by green, KV05
public void lookup()
{
KV05_ImportContractTypeReference Tr;
Query q = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
SysTableLookup sysTableLookup;
TableId tableId;
FieldId fieldId;
;
tableId = tablename2id('RContractTypes');
sysTableLookup = SysTableLookup::newParameters(tableId,this);
fieldId = fieldname2id(tableId, 'ContractCode');
sysTableLookup.addLookupfield(fieldId);
fieldId = fieldname2id(tableId, 'ContractCodeName');
sysTableLookup.addLookupfield(fieldId);
queryBuildDataSource = q.addDataSource(tableId);
queryBuildDataSource.addSortField(fieldId);
queryBuildRange = queryBuildDataSource.AddRange(fieldnum(RContractTypes, ContractPartnerType));
queryBuildRange.value(queryvalue(RContractTable.RContractPartnerType));
queryBuildDataSource.addSortField(fieldname2id(tableId, 'ContractCode'));
sysTableLookup.parmQuery(q);
this.performFormLookup(sysTableLookup.formRun());
}
Косяк (или фича) тут:
Код:
fieldId = fieldname2id(tableId, 'ContractCode');
sysTableLookup.addLookupfield(fieldId);
fieldId = fieldname2id(tableId, 'ContractCodeName');
sysTableLookup.addLookupfield(fieldId);
queryBuildDataSource = q.addDataSource(tableId);
queryBuildDataSource.addSortField(fieldId);
проблема в следующем - я вообще не вижу этот класс в АОТ. Не понимаю где он перекрыт и кто его вызывает. Как-то Грин подсовывает свой класс вместо моего, но как?
Upd: всё, нашлось в методе контрола грида.
\Forms\RContractTable\Designs\Design\[Group:Group]\[Tab:Tab]\[TabPage:Overview]\[Grid:Grid]\StringEdit:RContractTable_RContractCode\Methods\lookup
Топик удалить не получается
Upd2: я пробовал искать по закомментированой строке. Не нашёл