Проверка поля Владелец выполняется в событии RowPersisting :
protected virtual void CRActivity_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
{
var row = e.Row as CRActivity;
if (row == null) return;
if ((e.Operation == PXDBOperation.Insert || e.Operation == PXDBOperation.Update) && row.OwnerID == null && row.WorkgroupID == null)
{
var displayName = PXUIFieldAttribute.GetDisplayName<CRActivity.ownerID>(Tasks.Cache);
var exception = new PXSetPropertyException(ErrorMessages.FieldIsEmpty, displayName);
if (Tasks.Cache.RaiseExceptionHandling<CRActivity.ownerID>(row, null, exception))
{
throw new PXRowPersistingException(typeof(CRActivity.ownerID).Name, null, ErrorMessages.FieldIsEmpty, displayName);
}
}
}
В этом случае, учитывая, что это единственная проверка, имеющая место в событии, вы можете переопределить еечтобы исходное событие не вызывалось:
public class CRTaskMaint_Extension : PXGraphExtension<CRTaskMaint>
{
protected void CRActivity_RowPersisting(PXCache cache, PXRowPersistingEventArgs e, PXRowPersisting InvokeBaseHandler)
{
//if(InvokeBaseHandler != null)
// InvokeBaseHandler(cache, e); //Original Event handler is not invoked
}
}
Имейте в виду, что этот ответ показывает, как сделать поле «Владелец» необязательным с технической точки зрения. Однако следует учитывать дальнейшие последствия этого изменения в Acumatica, то есть других страницах, отчетах и т. Д.