Ну, приближенно можно посчитать с помощью метода fieldSize() на SysDictField:
X++:
static void Job2(Args _args)
{
SysDictTable dictTable = SysDictTable::newName(tableStr(InventTable));
SysDictField dictField;
Counter fieldCnt;
int recordSize;
;
for (fieldCnt = 1; fieldCnt <= dictTable.fieldCnt(); fieldCnt++)
{
dictField = SysDictField::newName(dictTable.name(), dictTable.fieldName(dictTable.fieldCnt2Id(fieldCnt)));
recordSize += dictField.fieldSize();
}
info(int2str(recordSize));
}
p.s. надо конечно учитывать все типы и array поля и т.д.
плюс служебную информацию заголовка сообщения при передаче по сети.