INRegisterKitAssemblyExt в вашем примере кода не является DA C. DA C наследуется от базового класса IBqlTable.
INRegisterKitAssemblyExt в вашем примере кода является расширением DA C. Расширения DA C наследуются от базового класса PXCacheExtension. Вы никогда не должны создавать таблицу базы данных для расширений DA C.
Пользовательские поля в расширении DA C будут автоматически сохранены в базовой таблице DA C. Основная проблема здесь в том, что INKitRegister не привязан к таблице базы данных DA C. Это проекция DA C, а таблица базы данных INKitRegister не существует.
Проекция INKitRegister DA C указывает на INRegister DA C:
[PXPrimaryGraph(typeof(KitAssemblyEntry))]
[PXCacheName(Messages.INKit)]
[PXProjection(typeof(Select2<INRegister, InnerJoin<INTran, On<INRegister.FK.KitTran>>>), Persistent=true)]
[Serializable]
public partial class INKitRegister : IBqlTable, ILSPrimary
Вы должны создать расширение INRegister DA C вместо INKitRegister, потому что INRegister привязан к фактической таблице базы данных с тем же именем:
public class INRegisterKitAssemblyExt: PXCacheExtension<INRegister>