Свои типы полей для Битрикс24. Привязка к спискам с автозаполнением.
В Битрикс24 есть огромное количество типов полей, которые очень сильно расширяют возможность системы по хранению данных. Мы можем создавать поля с типом Да/Нет, Строки, Числа, Даты. Есть более сложные поля, которые реализуют функционал бронирования или привязку к картам. С полным списком типов полей можно ознакомиться в курсе от вендора.
Одним из часто используемых типов является привязка к элементам инфоблоков (списков). По сути это возможность привязки сложных данных (строк таблицы) к другим сущностям. Но у стандартного поля есть ряд недостатков:
- Если мы будем использовать тип отображения "Список", то в интерфейсе получим простой выпадающий список, в котором будут ВСЕ элементы списка, отсортированные по алфавиту. С недавних пор появилась возможность использовать ui.selector для поиска элементов, что спасает нас от этого недостатка.
- Нет возможности отобразить дополнительные поля искомых элементов. Поиск и привязка будет только по названию.
- Нет возможности указать свою сортировку.
- Не всегда можно привязать элементы из любого инфоблока. Например, если мы работаем со списками, то мы можем привязать только инфоблоки данного раздела. Если мы работаем с процессами в ленте, то только инфоблоки из этих процессов.
Чтобы решить все вышеуказанные недостатки мы разработали свой модуль, который позволяет создавать свой тип поля как в объектах crm (ниже будут уточнения), так и в списках/инфоблоках.
Посмотрим возможности модуля на реальных проектах.
Кейс 1. Привязка к реестру документов
Когда мы заводим на согласование новый документ, может быть, так, что сам документ является дополнением к существующему договору. То, нам нужно указать связь с уже существующим документом в нашем реестре.
Используя наше новое поле мы можем сделать следующие настройки:
- Выбрать дополнительные поля для отображения при поиске. Например: компанию, номер документа, тип нашего договора.
- Указать по каким полям будет происходить поиск. Например: ИНН нашего контрагента, номер документа, название компании.
После такой настройки, при выборе элемента списка, мы сможем увидеть следующие данные в интерфейсе Битрикс24:
Кейс 2. Группировка элементов по разделам
Иногда нам необходимо иметь привязку к инфоблоку, в котором есть группировка элементов по разделам. Например, нам нужно выбирать города, сгруппированные по регионам и областям. В таком случае, мы можем поставить соответсвующий чек-бокс в настройках поля, и тогда наш выбор элементов будет выглядеть следующим образом:
Нюансы Битрикс24
На данный момент (июль 2022) свои типы полей не отображаются в публичной части при создании поля. Для решения данной задачи необходимо создавать поля из административного раздела.
Планы
На данный момент момент запланированы работы по следующим улучшениям:
- Возможность добавления элемента списка. В случае, если необходимого элемента у нас нет, то пользователь должен иметь возможность для создания нового. Возможно, будет связь с модулем "Детальная карточка элемента списка" и "Зависимые поля в карточках CRM". Тогда мы сможем показывать красивую форму создания элемента вместо стандартной.
- Отображение отфильтрованных элементов. Если у нас в списке есть элементы с разным типом (например: акты, счета, договоры) и пользователю нужно в поле видеть только договоры, то в настройках поля будет фильтр, в котором можно выбрать поле и значения, по которым будут отбираться элементы.
- Добавить сортировку при поиске и отображении элементов.