Спасибо всем. Посмотрели, как реализован соответствующий метод в складских журналах, и такую же "обертку" добавили в свой класс.
Поучилоь следующее:
X++:
if (_args && _args.caller() && _args.dataset() )
{
id = fieldname2id(_args.dataset(),fieldstr(SalesTable,SalesId));
if (id)
salesId = _args.record().(id);
callerForm = _args.caller();
if (!salesId)
{
if (callerForm && callerForm.args() && callerForm.args().record() && callerForm.args().record().TableId)
{
id = fieldname2id(callerForm.args().record().TableId,fieldstr(SalesTable,SalesId));
if (id)
salesId = callerForm.args().record().(id);
}
}
}
return salesId;
}