При взгляде на PX.Objects.CN.dll он будет находиться в пространстве имен PX.Objects.CN.ProjectAccounting.PM.CacheExtensions
как PmTaskExt
Использован последний строительный проект 19R2 "ConstructionFeatures_19_205_4_1_157"
Декомпилирована настройка dll (использовал DotPeek) Я искал PMTask:
Скопированный текст:
using PX.Data;
using PX.Data.BQL;
using PX.Objects.CN.ProjectAccounting.PM.Descriptor;
using PX.Objects.CS;
using PX.Objects.PM;
namespace PX.Objects.CN.ProjectAccounting.PM.CacheExtensions
{
public sealed class PmTaskExt : PXCacheExtension<PMTask>
{
[PXDBString(30)]
[PXDefault]
[PXUIField(DisplayName = "Type", Required = true)]
[ProjectTaskType.List]
public string UsrType { get; set; }
public static bool IsActive()
{
return PXAccess.FeatureInstalled<FeaturesSet.construction>();
}
public abstract class usrType : BqlType<IBqlString, string>.Field<PmTaskExt.usrType>
{
}
}
}
Примерно так должно работать:
var cnExt = PXCache<PX.Objects.PM.PMTask>.GetExtension<PX.Objects.CN.ProjectAccounting.PM.CacheExtensions.PmTaskExt>((PX.Objects.PM.PMTask)e.Row);
Обратите внимание, что. Net версия PX.Objects.CN.dll использует 4.8 в случае, если это вызывает проблемы с совместимостью версий в Visual Studio, если ваше решение скомпилировано на той же версии Acumatica для 19R2, что составляет 4,7,1