Настройка показа полей в зависимости от значений других полей. Все настройки хранятся на вашем портале Битрикс24.
Логика «при каком значении триггера какие поля показывать» задаётся здесь: нажмите «Добавить настройку зависимых полей» → в открывшемся окне выберите поле-триггер → нажмите «+ Ветка по значению» и для каждого значения триггера укажите, какие поля показывать. Можно добавить несколько веток и вложенные условия (цепочка из 2–3 списков и более).
Где это работает: правила из этого блока действуют только во вкладке «Зависимые поля» в карточке CRM — не в левой колонке основной формы. После сохранения настройки обязательно нажмите ниже «Добавить зависимые поля в карточку» (блок A) и проверяйте результат на этой вкладке.
Есть два способа вывода — выберите подходящий:
После настройки нажмите «Добавить зависимые поля в карточку» — во вкладке карточки откроется виджет. При дублях вкладок: «Очистить вкладки» → F5 → «Добавить зависимые поля в карточку». Основное хранилище — портал Битрикс24; копия правил по домену сохраняется на сервере приложения.
Создаёт пользовательское поле специального типа, которое само показывается или скрывается в зависимости от значения поля-триггера. Поле появляется в общей раскладке карточки CRM (как стандартное поле), оператор не уходит во вкладку. Значение хранится в Битрикс24 (стандартное UF-поле); приложение только управляет показом.
Чтобы поле появилось в раскладке карточки сущности, после создания откройте любую карточку сущности и через «Выбрать поле» добавьте созданное поле в нужный раздел (или используйте «Создать раздел»). После этого настройки раскладки сохранятся для всех карточек данной сущности.
Выберите поле-триггер и для каждого его значения укажите, какие поля показывать дальше. Можно добавлять вложенные ветвления.
Ниже: при каком значении триггера какие поля показывать. Тип ввода (дата, список, число…) подставится после выбора поля.
Поле будет автоматически создано в выбранной сейчас сущности (см. блок «Сущность CRM» вверху). Видимость поля определяется значением поля-триггера: при подходящем значении поле появляется в карточке, иначе — пустая ячейка.
Полезно, когда поле должно появляться в самом начале (пока оператор не выбрал значение триггера).
Удерживайте Ctrl (⌘ на macOS) для выбора нескольких значений.
Когда условие срабатывает и поле появляется в карточке, оно будет помечено красным и подсвечено как обязательное. Если оставить пустым — оператор увидит ошибку у поля.
rest_105_df, где 105 — это внутренний номер). Теперь проверка использует тот же тип, что и при создании поля, и дополнительно сверяется с реальным списком зарегистрированных типов от Битрикс24 — поле считается нашим, если у его типа handler-адрес ведёт на наш домен.400 Handler already binded в журнале сетевых запросов. Раньше при каждом открытии приложение пыталось заново привязать вкладки в карточках, и Битрикс отвечал ошибкой (мы её ловили, но в Network-логе клиента и ИБ-сервиса это выглядело как сбой). Теперь приложение сначала проверяет список уже привязанных мест встраивания и привязывает только недостающие — журнал чистый.Указан неверный пользовательский тип», и поле не создавалось. Теперь многострочное текстовое поле корректно создаётся в любой сущности — лиды, сделки, контакты, компании и смарт-процессы.[df-inline]. Если что-то не работает — откройте F12 → Console и пришлите вывод, мы быстрее поможем.Что делает приложение
В карточке CRM (Лид, Сделка, Контакт, Компания, Смарт-процесс) поля сами появляются и скрываются в зависимости от того, что менеджер выбрал в другом поле. Классический пример: при выборе в поле «Причина отказа» определённого значения снизу появляется поле «Комментарий к отказу» — оператору не нужно лишний раз думать «нужно заполнить или нет». Все настройки хранятся на вашем портале Битрикс24.
Два варианта вывода в карточке (можно использовать оба)
Частая ошибка: настройки в блоке «Настройки зависимостей» не меняют видимость полей в основной форме карточки (слева). Они работают только после добавления вкладки (вариант A) и открытия вкладки «Зависимые поля». Для показа в левой колонке без вкладки — только inline (вариант B), с созданием нового поля приложения.
Подходит, когда нужно связать несколько уже созданных полей CRM (в том числе списки) или построить цепочку «А → Б → В».
Сценарий «Причина отказа → Комментарий» (как у клиента):
Управление inline-правилами — внизу блока «B. Inline-поле…»: список созданных правил, для каждого — кнопка «Удалить» (правило показа). При удалении правила само поле в CRM остаётся — если оно больше не нужно, удалите его в Битрикс24 вручную, чтобы случайно не потерять данные.
Как работает вложенность (цепочка)
Это цепочка, а не два независимых правила. Пример: основное поле (1) — «Тип», при значении «Отказ» показываем поле (2) «Причина отказа». Внутри этой ветки нажимаете «+ Вложенное условие» и выбираете второе поле-триггер — то же поле (2) «Причина отказа»: при значении «Другое» показываем поле (3) «Комментарий». В карточке: выбрали «Тип» = «Отказ» → показалось поле «Причина отказа»; выбрали в нём «Другое» → дополнительно показалось «Комментарий». То есть поле 2 зависит от поля 1, поле 3 зависит от поля 2.
В Битрикс24 «Лид» — это одна сущность, а «Первичный лид» и «Повторный лид» — это направления (категории) одной и той же сущности «Лид». То же самое для сделок: «Продажа услуг», «Продажа товаров» и т.д. — это категории сделки. Что это значит для приложения:
Краткий чек-лист настройки «Причина отказа → Комментарий к отказу» с нуля для двух направлений лидов:
Это особенность того, как Битрикс24 встраивает кастомные поля. Само поле работает в отдельном маленьком iframe, и Битрикс не передаёт нам события «значение другого поля карточки изменилось». Приложение раз в 1,5–3 секунды само опрашивает текущее значение триггера и при изменении показывает/скрывает зависимое поле. Поэтому небольшая задержка — это нормально. В первую минуту после открытия карточки опрос идёт чаще (1,5 с), потом реже (3 с).
Важное уточнение про режим редактирования карточки. Если оператор поменял значение триггера в дропдауне, но ещё не нажал «Сохранить» внизу карточки — новое значение хранится только в форме на экране, в БД его пока нет. Битрикс не разрешает встроенным полям приложений читать «несохранённые» значения других полей. Поэтому приложение увидит новое значение только после нажатия «Сохранить». На этот случай в плейсхолдере скрытого поля сразу появляется подсказка «Нажмите Сохранить в карточке».
Также в плейсхолдере есть кнопка «↻ Обновить» — если уверены, что значение уже сохранено, но поле не обновилось, кликните её для мгновенной перепроверки.
Polling приостанавливается, если вкладка браузера свёрнута — экономит запросы и батарею. Когда вы вернётесь на вкладку, опрос продолжится с обычной частотой.
Если что-то пошло не так
Если ваш Битрикс24 закрыт от внешнего интернета (reverse proxy, allow-list, корпоративный фаервол), системному администратору нужно знать, куда и как обращается приложение. Ниже — общая схема без перечисления конкретных REST-методов.
Куда обращается приложение со стороны нашего сервера (server-to-server, HTTPS, метод POST):
https://<домен-вашего-портала>/rest/* — единственный путь на стороне портала, к которому обращается приложение. Все вызовы REST API идут только через этот префикс. К путям /bitrix/*, /admin/*, /upload/*, /disk/*, /im/* и прочим внутренним адресам портала приложение не обращается.https://oauth.bitrix.info/oauth/token/ — обновление OAuth-токена. Это облачный сервис самого Битрикса, не ваш сервер. На стороне портала ничего разрешать не нужно.Источник запросов: наш сервер приложения dependent-fields.safekit.tech. Сервер работает в кластере, поэтому исходящий IP-адрес может меняться. Если для allow-list нужен фиксированный IP — напишите в нашу поддержку (контакты ниже), сообщим актуальное значение.
Что НЕ нужно открывать: WebSocket-соединений, длинных коннектов и постоянных пуллов приложение не использует. Все запросы — короткие синхронные HTTPS-вызовы.
Про iframe в браузере оператора: UI приложения встраивается в карточки CRM через стандартный механизм виджетов Битрикс24 — iframe грузится с нашего домена dependent-fields.safekit.tech (не с вашего портала). Сам iframe из браузера оператора тоже обращается к REST API портала, но через стандартный SDK BX24.callMethod() — с того же IP, с которого оператор и так заходит в Битрикс24. Дополнительных правил в reverse proxy для этого случая не требуется.