Странно.
Глюк проявился на форме PurchAgreement в 2012-й аксапте при редактировании условий оплаты AgreementHeaderDefault.PaymentSchedule
Для обхода бага в write датасорса вместо super() приходится вызывать свой метод, передавая в него буфер датасорса.
X++:
// pkoz 13.11.2017
public server static void writeSafe_MRC(Common _common)
{
Common common4Save;
DictTable dictTable;
;
dictTable = New DictTable(_common.TableId);
if (!dictTable || (!dictTable.hasRecidIdx() && !dictTable.hasSurrogateKey()))
{
throw error(Error::wrongUseOfFunction(funcname()));
}
ttsBegin;
common4Save = dictTable.makeRecord();
if (_common.RecId)
{
select forupdate common4Save
where common4Save.RecId == _common.RecId;
}
else
{
common4Save.clear();
}
buf2Buf(_common, common4Save);
common4Save.write();
ttsCommit;
_common.reread();
}
Причина проблем все та же. Портится orig() значение буфера.
Кто-нибудь встречал такое на формах ?