Быстрые фильтры

Коллеги, подскажите в чем причина.

Добавляю на закладки быстрый фильтр по ответственному. 

На в разделе Контакты все отлично работает,

но в разделах Сервис и Контрагенты работает только если ремарить фильтр

//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
		};
	});

 

Нравится

1 комментарий

Уточните, когда и где работает или нет? И как не работает, как будто фильтра не существует или пустая выборка?

 

Все наложенные фильтры можно увидеть в запросе, уходящем к /0/DataService/json/SyncReply/SelectQuery, а если система развёрнута  локально, итоговый запрос в базу видно в SQL-профайлере. Возможно, условия стандартного и добавленного фильтров противоречат?

 

Также проверьте, всё ли правильно сделано в соответствии со статьёй о создании быстрого фильтра.

Показать все комментарии