Таблица = Таблица vs Таблица.Данные(Таблица)

В чем разница между двумя приведенными ниже утверждениями?

newTable = orginalTable

or

newTable.data(originalTable)

Я подозреваю, что метод .data() дает преимущество в производительности, поскольку он чаще используется в стандартном AX.


person AnthonyBlake    schedule 19.07.2012    source источник


Ответы (1)


Попробуй это:

newTable = originalTable;
info(strfmt('%1 %2', newTable.recId, originalTable.recId);

newTable.data(originalTable);
newTable.insert();
info(strfmt('%1 %2', newTable.recId, originalTable.recId);

Вы увидите, что первый оператор просто создает еще один указатель на существующую запись. Второй создает новую копию существующей записи.

person demas    schedule 19.07.2012
comment
+1. Добавлю, что если вы не хотите копировать системные поля из одной записи в другую, а только поля, несущие функциональное значение (т.е. поля, которые вы видите в AOT), используйте buf2buf() вместо data(). - person Max; 19.07.2012
comment
ах, ладно, возникает вопрос, почему это не называется чем-то очевидным, например .copy() - person AnthonyBlake; 19.07.2012