Фильтрация справочного поля на странице продуктового каталога
Добрый день, Коллеги!
Задача:
На странице продуктового каталога (ProductSelectionSchema) необходимо для справочного поля [Прайс-лист] (PriceList) добавить логику фильтрации значений.
https://www.screencast.com/t/KGWpnt5Ab
Что попробовал:
"Классический" вариант, объявленный на замещённой странице ProductSelectionSchema. Попробовал просто скрыть "Базовый" прайс-лист.
https://academy.terrasoft.ru/documents/technic-sdk/7-15/primenenie-filtracii-k-spravochnym-polyam
Не помогло.
Подскажите, пожалуйста, как именно можно реализовать дополнительную логику фильтрации?
Возможно свойство filters для атрибута нужно объявить в другой схеме/модуле?
Или подскажите на какие методы обратить внимание?
Заранее спасибо!
Нравится
Титаев Александр Николаевич,
Покопался еще в коде. Именно получение запроса на выборку списка прайс-листов осуществляется в методе applyProductPriceItemsEsq (ProductSelectionQueryUtilitiesMixin).
Этот метод глобально вызывается в методе getLookupQuery (модуль
ProductSelectionSchema) по клику по лукапному полю (берется обработчик заполнения списка лукапного поля в методе getLookupColumnHandlers).
Что можно сделать:
1) Реализовать свой метод applyProductPriceItemsEsq с нужной вам фильтрацией в ProductSelectionSchema
2) Указать новый метод в getLookupColumnHandlers
3) Указать новый метод в getGridRecordByItemValues
Добрый день!
В указанное вами поле попадают записи с детали "Цены" объекта "Продукт" (вкладка "Цены и остатки").
Логика отбора записей реализована в ProductSelectionQueryUtilitiesMixin (метод getProductInBasePriceListEsq), который скорее всего переопределить не получится (модули переопределять нельзя в системе).
Как вариант, удалять записи "Основной" из детали "Цены" продукта. Но это крайне не рекомендуется делать, даже запрещено на уровне системы.
Спасибо за "Наводку", Александр! Думаю можно поработать с методом initCurrencies в ProductSelectionSchema. Хотя тоже не лучший вариант. Попробую всё же разобраться, как именно можно навесить обработчик с фильтром на справочную колонку, так как отключение логики пересчёта, при наличии пункта меню справочника, как вы отметили, не лучшая идея..
Титаев Александр Николаевич,
Покопался еще в коде. Именно получение запроса на выборку списка прайс-листов осуществляется в методе applyProductPriceItemsEsq (ProductSelectionQueryUtilitiesMixin).
Этот метод глобально вызывается в методе getLookupQuery (модуль
ProductSelectionSchema) по клику по лукапному полю (берется обработчик заполнения списка лукапного поля в методе getLookupColumnHandlers).
Что можно сделать:
1) Реализовать свой метод applyProductPriceItemsEsq с нужной вам фильтрацией в ProductSelectionSchema
2) Указать новый метод в getLookupColumnHandlers
3) Указать новый метод в getGridRecordByItemValues