Битрикс24
July 26, 2022

Свои типы полей для Битрикс24. Привязка к спискам с автозаполнением.

Бестранк. Расширенная привязка к элементам списка с автозаполнением для Битрикс24

В Битрикс24 есть огромное количество типов полей, которые очень сильно расширяют возможность системы по хранению данных. Мы можем создавать поля с типом Да/Нет, Строки, Числа, Даты. Есть более сложные поля, которые реализуют функционал бронирования или привязку к картам. С полным списком типов полей можно ознакомиться в курсе от вендора.

Одним из часто используемых типов является привязка к элементам инфоблоков (списков). По сути это возможность привязки сложных данных (строк таблицы) к другим сущностям. Но у стандартного поля есть ряд недостатков:

  • Если мы будем использовать тип отображения "Список", то в интерфейсе получим простой выпадающий список, в котором будут ВСЕ элементы списка, отсортированные по алфавиту. С недавних пор появилась возможность использовать ui.selector для поиска элементов, что спасает нас от этого недостатка.
  • Нет возможности отобразить дополнительные поля искомых элементов. Поиск и привязка будет только по названию.
  • Нет возможности указать свою сортировку.
  • Не всегда можно привязать элементы из любого инфоблока. Например, если мы работаем со списками, то мы можем привязать только инфоблоки данного раздела. Если мы работаем с процессами в ленте, то только инфоблоки из этих процессов.

Чтобы решить все вышеуказанные недостатки мы разработали свой модуль, который позволяет создавать свой тип поля как в объектах crm (ниже будут уточнения), так и в списках/инфоблоках.

Посмотрим возможности модуля на реальных проектах.

Кейс 1. Привязка к реестру документов

Когда мы заводим на согласование новый документ, может быть, так, что сам документ является дополнением к существующему договору. То, нам нужно указать связь с уже существующим документом в нашем реестре.

Используя наше новое поле мы можем сделать следующие настройки:

  • Выбрать дополнительные поля для отображения при поиске. Например: компанию, номер документа, тип нашего договора.
Расширенная привязка к элементам списка с автозаполнением. Настройка дополнительных полей для отображения при поиске
  • Выбрать дополнительные поля для отображения при просмотре карточки объекта.
Расширенная привязка к элементам списка с автозаполнением. Настройка дополнительных полей при отображении элементов инфоблока
  • Указать по каким полям будет происходить поиск. Например: ИНН нашего контрагента, номер документа, название компании.
Расширенная привязка к элементам списка с автозаполнением. Настройка дополнительных полей для осуществления поиска элементов

После такой настройки, при выборе элемента списка, мы сможем увидеть следующие данные в интерфейсе Битрикс24:

Кейс 2. Группировка элементов по разделам

Иногда нам необходимо иметь привязку к инфоблоку, в котором есть группировка элементов по разделам. Например, нам нужно выбирать города, сгруппированные по регионам и областям. В таком случае, мы можем поставить соответсвующий чек-бокс в настройках поля, и тогда наш выбор элементов будет выглядеть следующим образом:

Расширенная привязка к элементам списка с автозаполнением. Группировка элементов списка по разделам

Нюансы Битрикс24

На данный момент (июль 2022) свои типы полей не отображаются в публичной части при создании поля. Для решения данной задачи необходимо создавать поля из административного раздела.

Планы

На данный момент момент запланированы работы по следующим улучшениям:

  • Возможность добавления элемента списка. В случае, если необходимого элемента у нас нет, то пользователь должен иметь возможность для создания нового. Возможно, будет связь с модулем "Детальная карточка элемента списка" и "Зависимые поля в карточках CRM". Тогда мы сможем показывать красивую форму создания элемента вместо стандартной.
  • Отображение отфильтрованных элементов. Если у нас в списке есть элементы с разным типом (например: акты, счета, договоры) и пользователю нужно в поле видеть только договоры, то в настройках поля будет фильтр, в котором можно выбрать поле и значения, по которым будут отбираться элементы.
  • Добавить сортировку при поиске и отображении элементов.