Как насчет более простого решения?
В любом случае вам по хорошему надо бы еще тип значения на корректность проверить.
X++:
SalesTable salesTable;
void updateFieldValue(Common _common, FieldId _fieldId, anytype _value)
{
ttsbegin;
_common.(_fieldId) = _value;
if (_common.validateWrite())
{
_common.update();
}
ttscommit;
}
;
salesTable = SalesTable::find('M073237', true);
updateFieldValue(salesTable, fieldnum(SalesTable, SalesTaker), 'Denis');