Зависимые поля — когда поле появляется или становится обязательным в зависимости от значения другого поля; скрытые — когда лишние поля убраны из формы, чтобы не мешать менеджеру. Полноценного конструктора зависимостей «показать поле Б при значении поля А» в Битрикс24 нет, но тот же эффект достигается комбинацией штатных настроек и роботов: настройка карточки, обязательность по стадиям, проверки в бизнес-процессе и автоочистка неактуальных значений. Разберём приём по шагам.
Зачем нужны зависимые и скрытые поля?
Карточка сделки обрастает полями: для юрлиц нужны ИНН и юридический адрес, для физлиц — паспортные данные, для доставки — адрес и интервал. Если показывать всё всем, менеджер видит простыню из десятков полей, заполняет их через одно и пропускает важное. Зависимые и скрытые поля решают эту проблему: форма показывает только то, что относится к текущему клиенту и этапу работы. Прямая выгода — скорость заполнения и чистота данных: чем меньше нерелевантных полей на экране, тем меньше значений «лишь бы сохранить» попадает в CRM, тем точнее фильтры, отчёты и документы, которые на этих полях построены.
Что умеет штатная настройка карточки?
Карточку CRM можно настроить без кода: скрыть поля, изменить порядок, сгруппировать поля в разделы и сохранить общий вид для всех сотрудников. Это статическое скрытие: поле либо видно, либо нет — от значения других полей видимость не зависит. Второй штатный механизм — обязательность по стадиям: поле становится обязательным при переходе сделки на определённую стадию (подробнее об обязательности и типах полей — в статье о полях в Битрикс24). Динамической зависимости «выбрали "Юрлицо" — появился блок реквизитов» штатный интерфейс не даёт, поэтому зависимость эмулируют связкой разделов карточки, обязательности по стадиям и роботов-проверок — об этом два следующих раздела.
Как эмулировать зависимость через стадии и обязательность?
Идея: вместо «показать поле при значении» — «потребовать поле на этапе, где оно становится нужным». Пример с доставкой: пока сделка в «Переговорах», поля доставки не обязательны и лежат в свёрнутом разделе в конце карточки; при переходе на стадию «Доставка» адрес и интервал становятся обязательными — карточка сама потребует заполнить их при смене стадии. Свёрнутый раздел с редкими полями визуально работает как скрытие, а обязательность по стадии — как зависимость от этапа. Ограничение приёма: проверка срабатывает только на ручных переходах — изменения по API, импортом или роботами её обходят. Эту дыру закрывает проверка связок полей в бизнес-процессе.
Как проверить связку полей роботом?
Зависимость «если А, то Б обязательно» — это два условия сразу: «Тип клиента = Юрлицо» И «ИНН пуст». Штатный блок «Условие» в дизайнере бизнес-процессов выражает такое цепочкой вложенных блоков, которая быстро становится нечитаемой. Робот «Сложное условие (AND / OR / NOT)» проверяет до четырёх условий с логикой AND или OR одним действием, а в JSON-режиме принимает дерево условий произвольной вложенности — и возвращает единый признак Y/N. Среди операторов — равно, не равно, больше, меньше, содержит, пусто, не пусто; строки по умолчанию сравниваются без учёта регистра. При N процесс возвращает сделку на предыдущую стадию или ставит менеджеру задачу с перечнем незаполненных полей.
Как подставлять и чистить зависимые значения?
Два робота закрывают обратную сторону зависимости. «Тернарный выбор (если-то-иначе)» сравнивает два значения и возвращает один из двух заданных результатов плюс признак выполнения условия Y/N: например, по полю «Тип клиента» подставляет в письмо нужный вариант обращения — без цепочки условий в дизайнере. А «Очистить поле» устанавливает пустое значение в любое поле сделки, контакта, компании или лида: если менеджер сменил тип клиента с «Юрлицо» на «Физлицо», робот очищает ИНН и юридический адрес, чтобы данные прошлого варианта не уехали в документы и отчёты. Как вешать роботов на стадии — в статье о настройке роботов.
Как объединить поля в разделы карточки?
Поля в карточке сделки, лида, контакта и компании группируются в разделы штатно. В карточке нажмите «Создать раздел», дайте ему название — «Доставка», «Оплата», «Документы» — и перетащите туда нужные поля за левый край. Раздел можно свернуть, переименовать или удалить, а поля внутри — переставить. Пока вы меняете карточку под себя, видите изменения только вы. Чтобы раскладка стала общей, администратор сохраняет её для всех сотрудников в настройках карточки: после этого у всех одинаковые разделы, а личные правки больше не расходятся.
Раздел — это блок с заголовком, и на длинной карточке их удобно листать. Если нужен заголовок прямо между полями одного раздела, без отдельного блока, подойдёт пользовательское поле «Разделитель»: тонкая линия с подписью, которая ничего не хранит и только делит поля на группы. Им размечают длинный раздел «О сделке», не дробя его на пять маленьких.
Почему скрытое поле видно в фильтре?
Скрытие поля в карточке меняет только карточку. Фильтр, колонки списка, экспорт в Excel, отчёты, REST API и бизнес-процессы видят поле как раньше. Поэтому поле, которое убрали с глаз менеджера, по-прежнему можно найти в фильтре и вывести колонкой в списке.
Обратная ситуация тоже частая: поле в карточке есть, а в фильтре его не найти. Тут две причины. Первая: фильтр каждый сотрудник настраивает сам — поле нужно добавить через «Добавить поле» в самом фильтре. Вторая: у пользовательского поля в его настройках есть флажок «Показывать в фильтре». Если флажок снят, поле в списке для фильтра не появится, сколько его ни ищи. Аналогичный флажок отвечает за показ поля в списке.
Отсюда практический вывод: скрытие — это порядок в интерфейсе, а не защита данных. Права ролей CRM здесь тоже не помогут: они выдаются на запись целиком, а не на отдельное поле. Если нужно, чтобы значение в карточке правили только администраторы и выбранные сотрудники, подойдёт поле «Защищённое значение»: остальные видят его только для чтения. Это тоже защита интерфейса: импорт, REST и бизнес-процессы значение по-прежнему меняют, что и нужно для автоматики.
Чек-лист
Скройте редкие поля: настройте карточку, сгруппируйте поля в разделы, сохраните вид для всех. Проверьте, какие поля нужны в фильтре, и включите им показ в фильтре. Включите обязательность по стадиям для полей конкретных этапов. Добавьте робота-проверку связок полей на переходах между стадиями. Настройте автоочистку полей при смене определяющего значения. Роботы для этой схемы — в каталоге Роботеки; нет нужного — опишите задачу, сделаем робота бесплатно.