Создал такой диалог:
X++:
class DialogCommRate extends RunBase
{
DialogField dialogField;
DialogField dialogRate;
DialogButton dialogButton;
TradeCurencyConversion tcc;
BankGroupId bgi;
#define.CurrentVersion(1)
#localmacro.CurrentList
tcc,
bgi
#endmacro
}
public Object dialog()
{
DialogRunbase dlg;
;
dlg = super(dlg);
dlg.caption("@SYS54755");
dialogField = dlg.addField(typeid(TradeCurencyConversion));
dialogRate = dlg.addFieldValue(typeid(BankGroupId), bgi, "Коммерческий курс", "Коммерческий курс");
dialogRate.visible(false);
return dlg;
}
public void dialogPostRun(DialogRunbase dialog)
{
;
Super(dialog);
dialog.formRun().controlMethodOverload(true);
dialog.formRun().controlMethodOverloadObject(this);
}
protected boolean fld1_1_selectionChange()
{
;
dialogRate.visible(dialogField.value() == 2);
dialogRate.value(bgi);
return true;
}
public container pack()
{
return [#CurrentVersion, #CurrentList];
}
public boolean unpack(container packedClass)
{
Version version = RunBase::getVersion(packedClass);
;
switch (version)
{
case #CurrentVersion:
[version, #CurrentList] = packedClass;
break;
default:
return false;
}
return true;
}
public boolean getFromDialog()
{
;
tcc = dialogField.value();
bgi = dialogRate.value();
return true;
}
X++:
static void myJob(Args _args)
{
DialogCommRate d = new DialogCommRate();
d.prompt();
//тут ему надо задать начальное значение и получить обратно
}
Подскажите как получить из него значения dialogField и dialogRate после нажатия кнопки ОК?
Так же у меня не выходит передать ему начальное значение dialogRate, создавал метод parm но он не работает.