Там же, в LedgerJournalTransDaily на источнике данных LedgerJournalTrans ...
Метод active() постоянно вызывает метод setFurtherPostingProtection(), который меняет возможность редактирования 7 полей (тип счета и счет, тип корр.счета и коррсчет, суммы дебет/кредит и валюту) по факту заполненности полей FurtherPostingType и FurtherPostingRecId. Вот как это делает наш неизвестный герой:
X++:
void setFurtherPostingProtection()
{
int i;
DictTable dictTable = new DictTable(ledgerJournalTrans.TableId);
FormDataObject objectLedgerJournalTrans;
boolean preventEdit;
;
preventEdit = ledgerJournalTrans.FurtherPostingType && ledgerJournalTrans.FurtherPostingRecId;
for (i = 1; i <= dictTable.fieldCnt(); i++)
{
objectLedgerJournalTrans = ledgerJournalTrans_ds.object(dictTable.fieldCnt2Id(i));
if (objectLedgerJournalTrans)
{
if (preventEdit)
{
switch (dictTable.fieldCnt2Id(i))
{
case fieldnum(LedgerJournalTrans, AccountType),
fieldnum(LedgerJournalTrans, AccountNum),
fieldnum(LedgerJournalTrans, OffsetAccountType),
fieldnum(LedgerJournalTrans, OffsetAccount),
fieldnum(LedgerJournalTrans, AmountCurDebit),
fieldnum(LedgerJournalTrans, AmountCurCredit),
fieldnum(LedgerJournalTrans, CurrencyCode) :
objectLedgerJournalTrans.allowEdit(false);
break;
default :
objectLedgerJournalTrans.allowEdit(true);
}
}
else
{
objectLedgerJournalTrans.allowEdit(true);
}
}
}
}
Это SYS-слой...
Есть мнение, что за такое в таком месте - надо бить ...
Наверное даже ногами и наверное даже по голове ...