Показать сообщение отдельно
Старый 16.05.2019, 17:27   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Возможные ответы
б. Свой новый кастомизированный код лучше помешать в modifiedFieldValue(). Тогда он будет вызываться во всех возможных сценариях. (Защита от случаев когда стандартный код вызывает не modifedField, а modifiedFieldValue)

в. Но вызывать из кода при необходимости лучше modifiedField() - чтобы вся цепочка отработала.

г. - д. Явно баг. Для его обхода предлагается в табличке в методе modifedField() вместо вызова super() поставить такую строку кода
#TableModifiedFieldCallSuper_MRC(tableStr(Имя таблички))
в этом случае описанные баги не проявляются и поведение системы одинаково для p-code и CIL

Для проверки можно в прилагаемом проекте в методе
\Classes\TestModifiedMethods_MRC\fixOn
поставить
X++:
return true;
Для всех сценариев (p-code или CIL в сочетании с любым из вариантов: плоская табличка без наследования, корневая табличка в иерархии наследования, некорневая табличка в иерархии наследования) получится одинаковый результат как описано в 1-3. Баги 4-5 не воспроизводятся.

Инфолог:
Нажмите на изображение для увеличения
Название: Fixed.png
Просмотров: 143
Размер:	110.7 Кб
ID:	12314


Интересно попробовать в D365.

Кто может проверить ?

Последний раз редактировалось Logger; 16.05.2019 в 17:31.