Попробуйте так:
X++:
public void dialogPostRun(DialogRunbase _dialog)
{
super(_dialog);
_dialog.dialogForm().formRun().controlMethodOverloadObject(this);
_dialog.dialogForm().formRun().controlMethodOverload(true);
}
И лукап я бы строил по таблице RContractTypes с присоединенной по exists join RcontractTable.