Коллеги, подскажите в чем причина.
Добавляю на закладки быстрый фильтр по ответственному.
На в разделе Контакты все отлично работает,
но в разделах Сервис и Контрагенты работает только если ремарить фильтр
//filter: BaseFiltersGenerateModule.OwnerFilter, Но работает без этого фильтра.
В чем может быть причина? Спасибо.
/** * @class AccountSectionV2.ELBase * @extends AccountSectionV2.NUI */ define( "AccountSectionV2", [ "ProcessModuleUtilities", "ELJSConst", "ELAccountActionMenuMixin", "BaseFiltersGenerateModule" ], function( ProcessModuleUtilities, ELJSConst, BaseFiltersGenerateModule ) { return { entitySchemaName: "Account", mixins: { ELAccountActionMenuMixin: "Terrasoft.ELAccountActionMenuMixin" }, methods: { initFixedFiltersConfig: function() { var fixedFilterConfig = { entitySchema: this.entitySchema, filters: [ {name: "Owner", caption: this.get("Resources.Strings.OwnerFilterCaption"), dataValueType: Terrasoft.DataValueType.LOOKUP, filter: BaseFiltersGenerateModule.OwnerFilter, columnName: "Owner", defValue: this.Terrasoft.SysValue.CURRENT_USER_CONTACT } ] }; this.set("FixedFilterConfig", fixedFilterConfig); },
define("BaseFiltersGenerateModule", ["BaseFiltersGenerateModuleResources", "ConfigurationConstants"], function(resources, ConfigurationConstants) { function getIsNotNullFilterGroup(refSchema) { const userFilter = Terrasoft.createColumnIsNotNullFilter(refSchema + ".Id"); const filters = Ext.create("Terrasoft.FilterGroup"); filters.addItem(userFilter); return filters; } function employeesFilter() { const sysAdminUnitRef = "[SysAdminUnit:Contact]"; const employeesFilter = Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, sysAdminUnitRef + ".ConnectionType", ConfigurationConstants.SysAdminUnit.ConnectionType.AllEmployees); const filters = getIsNotNullFilterGroup(sysAdminUnitRef); filters.addItem(employeesFilter); return filters; } function allUsersFilter() { return getIsNotNullFilterGroup("[VwSystemUsers:Contact]"); } function selfFilter() { let primaryColumnName = "Id"; if (this.entitySchema && this.entitySchema.primaryColumnName) { primaryColumnName = this.entitySchema.primaryColumnName; } const primaryColumnValue = this.get(primaryColumnName); return Terrasoft.createColumnFilterWithParameter( Terrasoft.ComparisonType.NOT_EQUAL, primaryColumnName, primaryColumnValue); } return { OwnerFilter: employeesFilter, SelfFilter: selfFilter, AllUsersFilter: allUsersFilter }; });
Нравится
Уточните, когда и где работает или нет? И как не работает, как будто фильтра не существует или пустая выборка?
Все наложенные фильтры можно увидеть в запросе, уходящем к /0/DataService/json/SyncReply/SelectQuery, а если система развёрнута локально, итоговый запрос в базу видно в SQL-профайлере. Возможно, условия стандартного и добавленного фильтров противоречат?
Также проверьте, всё ли правильно сделано в соответствии со статьёй о создании быстрого фильтра.