Цитата:
Сообщение от
bobski
Спасибо, но это немного не то.
Таблицы разные.
Например: LedgerJournalTrans и LedgerTrans.
Эти таблицы имеют схожие наборы полей, участвующие в процедуре разноски. Но в LJT и в LT было добавлено поле. После разноски значение из созданного поля в LJT должно попадать в LT. Отвечает за разноску класс LedgerJournalCheckPost. А вот в каком методе происходит перенос данных из LJT в JT я, к сожалению, не нашел. И поэтому вспомнил про указанную в вопросе функцию из Nav.
В данном случае лучше сделать доплнительный parm метод на классе LedgerVoucherTransObject и через него передавать в разноску что нужно, и уже внутри разноски все делать.
Но если вернуться к вопросу переноса полей, то в аксапте обычно создают метод типа initFromTable1 на таблице Table2, и вызывают его Table2.initFromTable1(Table1).
Или можно сделать свой buf2buf типа:
X++:
static void myBuf2Buf(
Common _from,
Common _to
)
{
DictTable dictTable = new DictTable(_from.tableId);
fieldId fieldId = dictTable.fieldNext(0);
fieldId fieldIdto;
fieldName fieldName;
while (fieldId && ! isSysId(fieldId))
{
fieldName = fieldId2name(_from.TableId, fieldId);
fieldIdto = fieldname2Id(_to.TableId, fieldName);
if (fieldIdto && typeof(_to.(fieldIdto)) == typeof(_from.(fieldId)))
_to.(fieldIdto) = _from.(fieldId);
fieldId = dictTable.fieldNext(fieldId);
}
}