Показать сообщение отдельно
Старый 28.02.2018, 11:21   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
Почему, господа?
Как уже сказали выше - поводом является отсутствие orig().

причиной является то, что в контейнер аксапта (версии 2009 и младше, 2012 без CIL) запоминает не ссылку на объект, а сериализованную строку.

причем в контейнер сериализуются не все аспекты record, а только поля записи.
Подозреваю, что не сериализуются приватные поля record-объекта. В том числе буфер, который используется для orig().

в 2012 CIL и выше в качестве контейнера используется системный Array<Object>.
Поэтому такой проблемы быть не должно пока не будет происходить явная сериализация через sysLastValue или подобное.

кстати, в 2012 CIL были замечены странные эффекты "переходного периода" - иногда работает так, а иногда иначе.
в акс7 контейнер - всегда массив объектов, хранящий ссылки.

кстати 2: контейнер в акс2012 и младше - не мутабельный объект. контейнер всегда пересоздается при любой правке контейнера.
а точно ЛЮБОЕ изменение приводит к пересозданию контейнера? даже conpoke?

Поэтому, например, KeySum - антипаттерн в младших версиях и вполне терпимая штука, начиная с 2012 CIL.
Постарайтесь использовать меньше операций по модификации контейнера
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 28.02.2018 в 11:24.
За это сообщение автора поблагодарили: user_ax (2), Logger (3).