При выполнении Subj в одной из 2-х складских проводок по строке журнала ссылка на журнал указывает на исходный журнал.
Возможно никто не замечал, т.к. не очень критично, но у нас есть отчет, благодаря которому было замечено.
Хочу посоветоваться с методом исправления бага. Думаю в классе JournalCheckPost в методе createJournalTransfer можно исправить так:
было
PHP код:
protected void createJournalTransfer()
{
JournalTableData toJournalTableData;
JournalTableMap fromJournalTable;
JournalTableMap toJournalTable;
JournalTransMap journalTrans;
JournalError journalError;
JournalInfoAction journalInfoAction;
Integer x;
if (transferErrors && this.journalErrorListCount() > 0)
{
fromJournalTable = journalTableData.journalTable();
toJournalTable = fromJournalTable.data(); // copy
toJournalTableData = JournalTableData::newTable(journalTableData.JournalStatic().JournalTable());
toJournalTableData.copyTotalTo(toJournalTable); // clear total fields
toJournalTableData.journalTable(toJournalTable);
toJournalTable.journalId = toJournalTableData.nextJournalId();
if (journalTableData.journalTransList().first())
do
{
journalTrans = journalTableData.journalTransList().item();
if (this.hasTransError(journalTrans))
{
journalTableData.addTotal(journalTrans,true);
journalTrans.journalId = toJournalTable.journalId;
journalTrans.doUpdate();
стало
PHP код:
protected void createJournalTransfer()
{
JournalTableData toJournalTableData;
JournalTableMap fromJournalTable;
JournalTableMap toJournalTable;
JournalTransMap journalTrans;
JournalError journalError;
JournalInfoAction journalInfoAction;
Integer x;
if (transferErrors && this.journalErrorListCount() > 0)
{
fromJournalTable = journalTableData.journalTable();
toJournalTable = fromJournalTable.data(); // copy
toJournalTableData = JournalTableData::newTable(journalTableData.JournalStatic().JournalTable());
toJournalTableData.copyTotalTo(toJournalTable); // clear total fields
toJournalTableData.journalTable(toJournalTable);
toJournalTable.journalId = toJournalTableData.nextJournalId();
if (journalTableData.journalTransList().first())
do
{
journalTrans = journalTableData.journalTransList().item();
if (this.hasTransError(journalTrans))
{
journalTableData.addTotal(journalTrans,true);
journalTrans.journalId = toJournalTable.journalId;
// Проект RO_InventTransErrorFix_edd -->
//journalTrans.doUpdate();
journalTrans.Update();
// <-- Проект RO_InventTransErrorFix_edd
Как вы думаете, не критично doUpdate заменить на Update в данном случае? Т.к. в неразнесенном журнале любого типа нажатие на кнопку сохранить (т.е. в итоге вызов Update) штатная ситуация.
PS. Axapta 3.0 sp3.