In my case it's easier to use WaitAliasChild method. In my script (which is converted from keyword test) i have about 20-30 fields on form, so it looks like :
(...)
Aliases.iforce1.MainForm.MDIClient.WaitAliasChild(test).ScrollBox.pnlCenter.dedTransactionRate.Keys('4,1234');
//Enters '1000' in the 'dedAmountBought' object.
Aliases.iforce1.MainForm.MDIClient.WaitAliasChild(test).ScrollBox.pnlCenter.gbBuy.dedAmountBought.Keys('1000');
//Enters 'USD[Enter]' in the 'dedCcyBought' object.
Aliases.iforce1.MainForm.MDIClient.WaitAliasChild(test).ScrollBox.pnlCenter.gbBuy.dedCcyBought.Keys('USD[Enter]');
//Enters '~[Down]' in the 'dcbNostBought' object.
Aliases.iforce1.MainForm.MDIClient.WaitAliasChild(test).ScrollBox.pnlCenter.gbBuy.dcbNostBought.Keys('~[Down]');
(...)
Replace part of alias with WaitAliasChild(variable) is faster than changing every line into new object.
Although thank you for new idea :)