Вопрос

Фільтрація Основного контакту по Контрагенту

Необхідно зробити фільтр, Основний контакт по Контрагенту

Так як в новому інтерфейсі зробити фільтр бізнес правилом не можливо. Пробуємо реалізувати кодом, але не виходить. Можливо підкажете в чому помилка.

handlers: /**SCHEMA_HANDLERS*/[
{
    request: "crt.LoadDataRequest",
    handler: async (request, next) => {
 
        if(request.dataSourceName !== "PrimaryContact_List_DS") {
            return await next?.handle(request);
        }
 
        // get the account                  
        const account = await request.$context.Account;
        if (account) {
            const filter = new sdk.FilterGroup();
            await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Account", account.value);
 
            const newFilter = Object.assign({}, filter);
            newFilter.items = filter.items;
 
            request.parameters.push({
                type: "filter",
                value: newFilter
            });
        }
 
        return await next?.handle(request);
    }
}
]/**SCHEMA_HANDLERS*/,

Скоріш за все не правильно підставляємо ось тут request.$context.Account

Так як це значення нічого не віддає

Нравится

2 комментария

Добрий день,

 

З версії 8.0.9 таку фільтрацію можна зробити бізнес правилом. Правило на рівні об'єкту, а не картки (але налаштовується рівно так само в дизайнері бізнес правил в дизайнері сторінки):

В такому правилі буде фільтруватись лукап Contact custom в залежності від значення в колонці Account custom і будуть повертатись всі значення в Contact custom, якщо колонка Account custom пуста.

 

Тому рекомендую оновитись до версії 8.0.9 і використати наявне правило - фільтрацію для рішення цієї конкретної задачі.

Oscar Dylan,

Ви показуєте фільтр в об'єкті контактів, а мені треба в об'єкті контрагентів. Фільтр в контрагентах, основний контакт контрагента. Треба щоб в контрагенті в полі "основний контакт" відображались тільки контакти які пов'язані з поточним контрагентом

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