Добавление поля карточки контрагента в фильтр сделок
Рассмотрим добавление поля карточки контрагента в фильтр сделок на примере свойства Сегмент рынка объекта Контрагент.
Данное свойство имеет тип Выпадающий список с четырьмя элементами списка: SOHO, Средний бизнес, Бизоны, Enterprise.
В Дизайнере для объекта Сделка добавляем свойство Сегмент рынка типа Выпадающий список. Элементы списка идентичны элементам аналогичного свойства объекта Контрагент. На вкладке Дополнительно устанавливаем флажок Участвует в поиске (фильтре).
Рис. 1. Настройка свойства. Вклакда "Общие"
После этого сохраняем справочник и публикуем его.
Переходим на вкладку Сценарии карточки объекта Сделка.
Если нет сценариев, то необходимо создать новый модуль.
После чего, добавляем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 | protected override void OnSetupFilter(ICriteria criteria, IEntityFilter filter) { var saleFilter = filter as ISaleConfigExtFilter; if (saleFilter != null ) { if (saleFilter.SegmentRynka != null ) { var contractorAlias = "cc" ; criteria.GetOrCreateAlias( "Contractor" , JoinType.InnerJoin, ref contractorAlias); criteria.Add(Restrictions.Eq(contractorAlias + ".SegmentRynka" , saleFilter.SegmentRynka)); } } } |
После этого публикуем сценарий и перезапускаем сервер.
В веб-интерфейсе в разделе Сделки в верхнем меню нажимаем на кнопку Изменить фильтр.
Рис. 2. Кнопка "Изменить фильтр"
На вкладке Поля фильтра в блоке Доступные элементы необходимо найти созданное нами новое свойство Сегмент рынка.
Рис. 3. Настройка полей фильтра
Двойным нажатием мыши переносим Сегмент рынка в блок Выбранные элементы, таким образом добавляя его в расширенный поиск по сделкам.
Результат проделанной работы представлен ниже на рисунке.
Рис. 4. Поле "Сегмент рынка" для расширенного поиска сделок