Для передачи параметров между объектами в Ax используется класс
Args. Когда для вызова объекта на форме используется менюайтем, экземпляр класса Args создается ядром автоматически. При этом если у менюайтема заполнены свойства Parameters, EnumParameter или EnumTypeParameter, то ядро передает эти значения через соответствующие методы в класс Args (Parm, ParmEnum, ParmEnumType). Если у менюайтема на форме, заполнено свойство DataSource, то через метод Args.record передается текущий курсор этого датасорса (свойство DataSource может быть и пустым, тогда передается курсор первого датасорса на форме). Таким образом в новом объекте (в данном случае Форме 2), через
X++:
element.args().record();
вы получаете курсор датасорса вызывающего объекта. При этом при использовании присваивания вида
X++:
t1 = element.args().record();
происходит передача по ссылке, а не по значению. Тем самым при изменении положения курсора в Форме 1 меняется ссылка и соответственно в форме 2 тоже.
xRecord.orig() возвращает последнее сохраненное состояние записи и используется для других целей, например, чтобы перед непосредственной записью значений в БД проверить поля по типу "было/стало".