Цитата:
Сообщение от
Vasiliusis
Почему, господа?
Как уже сказали выше - поводом является отсутствие orig().
причиной является то, что в контейнер аксапта (версии 2009 и младше, 2012 без CIL) запоминает не ссылку на объект, а сериализованную строку.
причем в контейнер сериализуются не все аспекты record, а только поля записи.
Подозреваю, что не сериализуются приватные поля record-объекта. В том числе буфер, который используется для orig().
в 2012 CIL и выше в качестве контейнера используется системный Array<Object>.
Поэтому такой проблемы быть не должно пока не будет происходить явная сериализация через sysLastValue или подобное.
кстати, в 2012 CIL были замечены странные эффекты "переходного периода" - иногда работает так, а иногда иначе.
в акс7 контейнер - всегда массив объектов, хранящий ссылки.
кстати 2: контейнер в акс2012 и младше - не мутабельный объект. контейнер всегда пересоздается при любой правке контейнера.
а точно ЛЮБОЕ изменение приводит к пересозданию контейнера? даже conpoke?
Поэтому, например, KeySum - антипаттерн в младших версиях и вполне терпимая штука, начиная с 2012 CIL.
Постарайтесь использовать меньше операций по модификации контейнера