Для того, чтобы заработал фильтр в сущностях CRM для нестандартных пользовательских типов необходимо создать соответствующий шаблон для компонента crm.field.filter. Лучше всего его создать в каталоге /local/templates/.default/components/bitrix/crm.field.filter.
К сожалению, разработчики Битрикс24 пока не предусмотрели возможность вывода в фильтре нестандартных сущностей (/bitrix/components/bitrix/main.ui.filter/templates/.default/js/search.js)
1 2 3 4 |
case this.parent.types.CUSTOM : { value = '_VALUE' in current && BX.type.isNotEmptyString(current._VALUE) ? current.LABEL : null; break; } |
Выводится только название пользовательского поля (current.LABEL). Доработаем это, добавив обработчик js-события BX.Filter.Search:beforeSquaresUpdate в шаблоне компонента:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
BX.addCustomEvent('BX.Filter.Search:beforeSquaresUpdate', function (data, filterObj) { data.FIELDS.forEach(function(field) { if (field.NAME === "<?= $arParams['arUserField']['FIELD_NAME'] ?>") { var select = BX('<?= $selectId ?>'); if (select) { var name = select.options[select.selectedIndex].text; if (name) { field.LABEL = field.LABEL + ": " + name; } } } }); }); |
К сожалению, этот костыль будет работать только при изменении фильтра. А при начальной загрузке нужно придумывать другой ))