Привет.
Проблема с формой Платежей (строки) поставщиков. - LedgerJournalTrans_VendPaym.
Началось все с того, что обнаружилось следующее поведение в форме:
Создаю несколько строк в журнале. проставляю какие нибудь счета. Даты пока все одинаковые.
Далее становлюсь на строку, к примеру, первую, меняю дату на другую. И курсором перехожу на другую запись ( на вторую.

) при этом меняется дата во второй строке на ту, что ввел в первой.
Начал рыть код. Это происходит при сохранении текущей записи. Последовательность вызовов следующая:
\Forms\LedgerJournalTransVendPaym\Data Sources\LedgerJournalTrans\Methods\write
там ledgerJournalEngine.write(ledgerJournalTrans); вызывается.
в нем 28 строка: this.adjustLedgerJournalTrans(_ledgerJournalTrans);
в нем 8 строкой: if (ledgerJournalEngine_Server.adjustDate(_ledgerJournalTrans, this))//, voucherDateList))
В этом методе следующий код:
PHP код:
ttsbegin;
dateCorrected = false;
while select forUpdate ledgerJournalTransLocal
where ledgerJournalTransLocal.journalNum == _ledgerJournalTrans.journalNum &&
ledgerJournalTransLocal.voucher == _ledgerJournalTrans.voucher
{
if (ledgerJournalTransLocal.recId != _ledgerJournalTrans.recId)
{
ledgerJournalTransLocal.transDate = _ledgerJournalTrans.transDate;
if (_ledgerJournalEngine)
_ledgerJournalEngine.currencyModified(ledgerJournalTransLocal);
ledgerJournalTransLocal.doUpdate();
dateCorrected = true;
}
}
ttscommit;
То есть для всех строк этого журнала проставляется та же дата, что и для той, которую только что изменили.
И наконец, вопрос:
Это так и должно быть, или это глюк, который просто никто не замечал???
Больше что-то похоже на второе.

А если должно так быть, то почему? Неужели нельзя указать другую дату для отдельной строки?
Спасибо