И стоило городить всё это ради такой ерунды? Ну да ладно, как говорится, опыт - сын ошибок трудных.
Для решения поставленной задачи вам необходимо в момент смены даты в InvetJournalTable (а совершенно гарантированно этот момент можно отловить в методе update() таблицы InvetJournalTable) синхронно (т.е. в одной транцакции) менять значения даты и в таблице InvetJournalTrans.
Например так:
X++:
public void update()
{
InventJournalTrans InventJournalTrans;
;
ttsbegin;
if (this.TransDate != this.orig().TransDate)
{
update_recordset InventJournalTrans
setting TransDate = this.TransDate
where InventJournalTrans.JournalId == this.JournalId;
}
super();
ttscommit;
}
Обратите внимание. Метод InvetJournalTable.update() будет вызываться как при штатном сохранении записи CTRL+S, так и при аварийном выходе при нажатии ESC. Более того, если по каким-нибудь причинам у пользователя появится возможность изменить дату журнала с како-либо другой формы, этот код также отработает. Т.е. синхранизация данных обеспечивается на уровне тригеров таблиц и не зависит от пользовательского интерфейса