Вопрос

Быстрый фильтр в продаже

Добрый день, Коллеги!

Подскажите, пожалуйста, как в раздел продажи вынести быстрый фильтр по датам (как в активности с - по), который будет фильтровать по полю дата создания ИСТОРИИ СТАДИИ в карточке продажи. 
Как настроить такой фильтр по полю дата в самом разделе знаю, но как именно по полю дата в детали этого раздела.
Т.Е, я хочу в этом фильтре фильтровать записи (продажи) у которых за заданный период есть в истории стадий стадии

У меня такой же вопрос

5 комментариев
Лучший ответ

По идее код должен выглядеть таким образом:

 define("OpportunitySectionV2", ["BaseFiltersGenerateModule"], function(BaseFiltersGenerateModule) {
    return {
        entitySchemaName: "Opportunity",
        methods: {
            initFixedFiltersConfig: function() {
                var fixedFilterConfig = {
                    entitySchema: this.entitySchema,
                    filters: [
                        {
                            name: "PeriodFilter",
                            caption: "",
                            dataValueType: this.Terrasoft.DataValueType.DATE,
                            startDate: {
                                columnName: "[OpportunityInStage:Opportunity:Id].StartDate",
                            },
                            dueDate: {
                                columnName: "[OpportunityInStage:Opportunity:Id].StartDate",
                            }
                        },
                    ]
                };
                this.set("FixedFilterConfig", fixedFilterConfig);
            }
        }
    };
});

Но это не будет работать, так как FixedFilterViewV2 не позволит создать элемент с таким id.

Могу предложить 2 варианта:
1) переопределить FixedFilterViewV2 и исправить этот метод. В 7.13.х переопределять модули сложно, но можно
2) настроить и сохранить расширенный фильтр

Смотрите документацию по применению расширенных фильтров

Григорий Чех,

Тут фильтр на поля самого раздела, вопрос в том как в разделе добавить этот фильтр но фильтровать по записям детали (по полю дата в детали)

Тогда нужно вам писать свой фильтр который будет отбирать записи с иторией стадий попадающий в диапазон дат

Калушка Д.,

Напишите sql-запрос, который будет выбирать нужные значения из таблицы продаж, а потом этот запрос 'переведите' в програмный код понятный bpm'online.

Его потом и пропишите в конфиге для быстрых фильтров.

По идее код должен выглядеть таким образом:

 define("OpportunitySectionV2", ["BaseFiltersGenerateModule"], function(BaseFiltersGenerateModule) {
    return {
        entitySchemaName: "Opportunity",
        methods: {
            initFixedFiltersConfig: function() {
                var fixedFilterConfig = {
                    entitySchema: this.entitySchema,
                    filters: [
                        {
                            name: "PeriodFilter",
                            caption: "",
                            dataValueType: this.Terrasoft.DataValueType.DATE,
                            startDate: {
                                columnName: "[OpportunityInStage:Opportunity:Id].StartDate",
                            },
                            dueDate: {
                                columnName: "[OpportunityInStage:Opportunity:Id].StartDate",
                            }
                        },
                    ]
                };
                this.set("FixedFilterConfig", fixedFilterConfig);
            }
        }
    };
});

Но это не будет работать, так как FixedFilterViewV2 не позволит создать элемент с таким id.

Могу предложить 2 варианта:
1) переопределить FixedFilterViewV2 и исправить этот метод. В 7.13.х переопределять модули сложно, но можно
2) настроить и сохранить расширенный фильтр

Войдите или зарегистрируйтесь, чтобы комментировать