Вот метод, на таблице Dimensions
client static void webLookupDimension(SysDimension _dimType)
{
webTableLookup webTableLookup;
Query query = new Query();
QueryBuildRange qbr;
;
webTableLookup = webTableLookup::newParameters(tablenum(Dimensions));
webTableLookup.addLookupfield(fieldnum(Dimensions, Num));
webTableLookup.addLookupfield(fieldnum(Dimensions, Description));
webTableLookup.selectField(fieldnum(Dimensions, Num));
if (query)
{
query.addDataSource(tablenum(Dimensions));
qbr = query.dataSourceTable(tablenum(Dimensions)).addRange(fieldnum(Dimensions, DimensionCode));
if (qbr)
{
qbr.value(queryValue(_dimType));
}
}
webTableLookup.parmQuery(query);
webTableLookup.run();
}
Дальше на таблице, например PurchTable, создается столько методов, сколько есть аналитик примерно такого вида
edit DimensionDepartment webDimensionDepartment(boolean _set, DimensionDepartment _value)
{
;
if (_set)
{
ttsbegin;
this.Dimension[1] = _value;
if (this.validateField(fieldId2Ext(fieldnum(PurchTable, Dimension), 1)))
{
ttscommit;
}
else
{
ttsabort;
}
}
return this.Dimension[1];
}
где DimensionDepartment — это EDT, которое ссылается на Отделы в таблице Dimensions.
Наконец, на контроле в форме, который создан на базе edit-метода, перекрывается метод lookup(), и в нем пишется примерно следующее
public void lookup(str _lookupValue)
{
;
Dimensions::webLookupDimension(SysDimension:

epartment);
}
И у контрола свойство LookupMethod должно быть установлено в Custom.
Насколько это работает в 4.0 пока сказать не могу.