При добавлении в фильтр экземпляра BXCalculatedField возникает exception
[NullReferenceException: Object reference not set to an instance of an object.]
Bitrix.DataLayer.BXFilterItem.SearchItem(BXSchemeFieldBase field) +43
Bitrix.DataLayer.BXFilter.SearchItem(BXSchemeFieldBase field) +91
Bitrix.IBlock.BXIBlockElementDataLayerHelper.BuildCustomConditionsForList(IBXFilter filter, IDictionary`2 customCoditions) +2658
Bitrix.DataLayer.BXFilter.GetConditionString() +511
Bitrix.IBlock.BXIBlockElement.GetListInternal(BXFilter filter, BXOrderBy orderBy, BXSelect select, BXQueryParams queryParams, IBXTextEncoder textEncoder) +318
Bitrix.DataLayer.BXEntity`3.GetList(BXFilter filter, BXOrderBy orderBy) +81
Причина, на мой взгляд, в реализации метода Bitrix.DataLayer.BXFilterItem.SearchItem. Перед использованием свойства Table у filteredField забыли вставить проверку на IsTableField.
Обходной вариант решения - после создания объекта типа BXCalculatedField явно прописать ему что-то в свойство Table.
[NullReferenceException: Object reference not set to an instance of an object.]
Bitrix.DataLayer.BXFilterItem.SearchItem(BXSchemeFieldBase field) +43
Bitrix.DataLayer.BXFilter.SearchItem(BXSchemeFieldBase field) +91
Bitrix.IBlock.BXIBlockElementDataLayerHelper.BuildCustomConditionsForList(IBXFilter filter, IDictionary`2 customCoditions) +2658
Bitrix.DataLayer.BXFilter.GetConditionString() +511
Bitrix.IBlock.BXIBlockElement.GetListInternal(BXFilter filter, BXOrderBy orderBy, BXSelect select, BXQueryParams queryParams, IBXTextEncoder textEncoder) +318
Bitrix.DataLayer.BXEntity`3.GetList(BXFilter filter, BXOrderBy orderBy) +81
Причина, на мой взгляд, в реализации метода Bitrix.DataLayer.BXFilterItem.SearchItem. Перед использованием свойства Table у filteredField забыли вставить проверку на IsTableField.
Обходной вариант решения - после создания объекта типа BXCalculatedField явно прописать ему что-то в свойство Table.
Код |
---|
BXCalculatedField field = new BXCalculatedField("PeopleCount", System.Data.SqlDbType.Int, (BXSqlFilterOperators operation, object value) => { ... }); field.Table = ""; |