Настройка показа полей в зависимости от значений других полей. Все настройки хранятся на вашем портале Битрикс24.
Логика «при каком значении триггера какие поля показывать» задаётся здесь: нажмите «Добавить настройку зависимых полей» → в открывшемся окне выберите поле-триггер → нажмите «+ Ветка по значению» и для каждого значения триггера укажите, какие поля показывать. Можно добавить несколько веток и вложенные условия (цепочка из 2–3 списков и более).
Где это работает: правила из этого блока действуют только во вкладке «Зависимые поля» в карточке CRM — не в левой колонке основной формы. После сохранения настройки обязательно нажмите ниже «Добавить зависимые поля в карточку» (блок A) и проверяйте результат на этой вкладке.
Есть два способа вывода — выберите подходящий:
После настройки нажмите «Добавить зависимые поля в карточку» — во вкладке карточки откроется виджет. При дублях вкладок: «Очистить вкладки» → F5 → «Добавить зависимые поля в карточку». Основное хранилище — портал Битрикс24; копия правил по домену сохраняется на сервере приложения.
Создаёт пользовательское поле специального типа, которое само показывается или скрывается в зависимости от значения поля-триггера. Поле появляется в общей раскладке карточки CRM (как стандартное поле), оператор не уходит во вкладку. Значение хранится в Битрикс24 (стандартное UF-поле); приложение только управляет показом.
Чтобы поле появилось в раскладке карточки сущности, после создания откройте любую карточку сущности и через «Выбрать поле» добавьте созданное поле в нужный раздел (или используйте «Создать раздел»). После этого настройки раскладки сохранятся для всех карточек данной сущности.
Значения inline-полей (вариант B) не попадают в штатный экспорт Битрикс24, потому что их отображением управляет приложение. Эта кнопка формирует один готовый файл по выбранной вверху сущности со всеми ключевыми и пользовательскими полями (включая причину, комментарий и т.п.) — открывается в Excel. Данные только читаются, в портал ничего не записывается.
Списки и стадии выгружаются подписями (не кодами), ответственный — по ФИО. Для смарт-процесса сначала выберите его тип вверху.
Выберите поле-триггер и для каждого его значения укажите, какие поля показывать дальше. Можно добавлять вложенные ветвления.
Ниже: при каком значении триггера какие поля показывать. Тип ввода (дата, список, число…) подставится после выбора поля.
Поле будет автоматически создано в выбранной сейчас сущности (см. блок «Сущность CRM» вверху). Видимость поля определяется значением поля-триггера: при подходящем значении поле появляется в карточке, иначе — пустая ячейка.
Полезно, когда поле должно появляться в самом начале (пока оператор не выбрал значение триггера).
Удерживайте Ctrl (⌘ на macOS) для выбора нескольких значений.
Когда условие срабатывает и поле появляется в карточке, оно будет помечено красным и подсвечено как обязательное. Если оставить пустым — оператор увидит ошибку у поля.
oauth.bitrix.info, api.bitrix24.com и нашего домена, плюс что делать при «Ошибке получения токена авторизации» и 504.132.243.239.158, 95.79.129.155, 212.192.23.167, 45.80.71.80, 159.194.219.102. Рекомендуется по-прежнему резолвить домен dependent-fields.safekit.tech.UF_CRM_…. Раньше в настройщике (поле-триггер и список зависимых полей) у части пользовательских полей был виден только код. Причина — системный метод получения полей на некоторых порталах не отдавал их названия. Теперь подписи берутся из надёжного источника — как это уже работало для смарт-процессов. Исправление действует и в настройщике, и в карточке сделки.UF_CRM_… (он был записан при сохранении в старых версиях). Теперь имя поля подтягивается из актуальных данных — как в карточке сделки. Сами настройки не меняются, обновляется только отображение.UF_CRM_…, хотя в карточке имя отображалось. Причина — код поля ошибочно попадал в подпись и мешал подставить настоящее название. Исправлено: теперь показывается «Название (UF_CRM_…)», а чистый код остаётся только у полей, у которых названия действительно нет.UF_CRM_… — теперь показывается читаемое название. Подпись берётся из настроек поля на любом доступном языке (русский → английский → другой), поэтому имена появятся и для уже настроенных зависимостей. Если поле всё же отображается кодом — значит, у него не задан «Заголовок»; укажите его в настройках поля в CRM.rest_105_df, где 105 — это внутренний номер). Теперь проверка использует тот же тип, что и при создании поля, и дополнительно сверяется с реальным списком зарегистрированных типов от Битрикс24 — поле считается нашим, если у его типа handler-адрес ведёт на наш домен.400 Handler already binded в журнале сетевых запросов. Раньше при каждом открытии приложение пыталось заново привязать вкладки в карточках, и Битрикс отвечал ошибкой (мы её ловили, но в Network-логе клиента и ИБ-сервиса это выглядело как сбой). Теперь приложение сначала проверяет список уже привязанных мест встраивания и привязывает только недостающие — журнал чистый.Указан неверный пользовательский тип», и поле не создавалось. Теперь многострочное текстовое поле корректно создаётся в любой сущности — лиды, сделки, контакты, компании и смарт-процессы.[df-inline]. Если что-то не работает — откройте F12 → Console и пришлите вывод, мы быстрее поможем.Нажмите кнопку — приложение соберёт всю техническую информацию: версию, права, портал, тип поля, привязки и полную структуру настроенных связок (дерево ветвлений всех сущностей). Текст скопируется в буфер обмена — вставьте его в обращение в поддержку. Это заметно ускорит решение вопроса.
В отчёт не попадают содержимое сделок/лидов и персональные данные клиентов — только техническая информация о настройке приложения.
В карточке CRM (Лид, Сделка, Контакт, Компания, Смарт-процесс) поля сами появляются и скрываются в зависимости от того, что менеджер выбрал в другом поле. Классический пример: при выборе в поле «Причина отказа» определённого значения снизу появляется поле «Комментарий к отказу» — оператору не нужно лишний раз думать «нужно заполнить или нет». Все настройки хранятся на вашем портале Битрикс24.
Частая ошибка: настройки в блоке «Настройки зависимостей» не меняют видимость полей в основной форме карточки (слева). Они работают только после добавления вкладки (вариант A) и открытия вкладки «Зависимые поля». Для показа в левой колонке без вкладки — только inline (вариант B), с созданием нового поля приложения.
Подходит, когда нужно связать несколько уже созданных полей CRM (в том числе списки) или построить цепочку «А → Б → В».
Множественный триггер. Если поле-триггер — список с множественным выбором (работает в классических сущностях и в смарт-процессах), во вкладке оно показывается в виде «чипсов»: сотрудник выбирает значение из выпадающего списка и нажимает «+ Добавить значение» — так можно добавить одно или несколько значений (лишнее убирается крестиком). Создайте по ветке на каждое значение (например: «Тип 1» → Параметр 1, 2, 3; «Тип 3» → Параметр 4, 6, 7). Когда сотрудник добавит несколько значений, наборы полей объединятся — покажутся поля для всех выбранных значений. Зависимые поля-списки также показываются выпадающими списками.
Сценарий «Причина отказа → Комментарий» (как у клиента):
Управление inline-правилами — внизу блока «B. Inline-поле…»: список созданных правил, для каждого — кнопка «Удалить» (правило показа). При удалении правила само поле в CRM остаётся — если оно больше не нужно, удалите его в Битрикс24 вручную, чтобы случайно не потерять данные.
Это цепочка, а не два независимых правила. Пример: основное поле (1) — «Тип», при значении «Отказ» показываем поле (2) «Причина отказа». Внутри этой ветки нажимаете «+ Вложенное условие» и выбираете второе поле-триггер — то же поле (2) «Причина отказа»: при значении «Другое» показываем поле (3) «Комментарий». В карточке: выбрали «Тип» = «Отказ» → показалось поле «Причина отказа»; выбрали в нём «Другое» → дополнительно показалось «Комментарий». То есть поле 2 зависит от поля 1, поле 3 зависит от поля 2.
В Битрикс24 «Лид» — это одна сущность, а «Первичный лид» и «Повторный лид» — это направления (категории) одной и той же сущности «Лид». То же самое для сделок: «Продажа услуг», «Продажа товаров» и т.д. — это категории сделки. Что это значит для приложения:
Краткий чек-лист настройки «Причина отказа → Комментарий к отказу» с нуля для двух направлений лидов:
Это особенность того, как Битрикс24 встраивает кастомные поля. Само поле работает в отдельном маленьком iframe, и Битрикс не передаёт нам события «значение другого поля карточки изменилось». Приложение раз в 1,5–3 секунды само опрашивает текущее значение триггера и при изменении показывает/скрывает зависимое поле. Поэтому небольшая задержка — это нормально. В первую минуту после открытия карточки опрос идёт чаще (1,5 с), потом реже (3 с).
Важное уточнение про режим редактирования карточки. Если оператор поменял значение триггера в дропдауне, но ещё не нажал «Сохранить» внизу карточки — новое значение хранится только в форме на экране, в БД его пока нет. Битрикс не разрешает встроенным полям приложений читать «несохранённые» значения других полей. Поэтому приложение увидит новое значение только после нажатия «Сохранить». На этот случай в плейсхолдере скрытого поля сразу появляется подсказка «Нажмите Сохранить в карточке».
Также в плейсхолдере есть кнопка «↻ Обновить» — если уверены, что значение уже сохранено, но поле не обновилось, кликните её для мгновенной перепроверки.
Polling приостанавливается, если вкладка браузера свёрнута — экономит запросы и батарею. Когда вы вернётесь на вкладку, опрос продолжится с обычной частотой.
Значения inline-полей (вариант B) не попадают в штатный экспорт списка Битрикс24: их отображением управляет приложение, а серверный экспорт к нему не обращается, поэтому колонка получается пустой. Само значение при этом хранится в обычном поле Битрикса и не теряется — его можно выгрузить через приложение.
Значения списков и стадий выгружаются подписями (а не кодами), ответственный — по ФИО. Файл в кодировке UTF-8 с разделителем «;» — корректно открывается в русском Excel. Выгрузка только читает данные, в портал ничего не записывается. Лишние колонки можно удалить прямо в Excel.
Если записей очень много, выгружаются первые 20 000 (с пометкой в статусе) — в этом случае сузьте выборку. В отчёт не попадают вложения и служебные системные поля сверх ключевых.
/rest/ (см. раздел «Информация для ИТ/ИБ-службы»). В Chrome / Edge / Яндекс.Браузере (на базе Chromium 141+) отдельно смотрите пункт про Local Network Access Checks ниже.chrome://flags/#local-network-access-check → Disabled) — это не баг приложения, а защита Chromium: публичная страница не может без разрешения ходить на «локальную сеть». Приложение открывается во iframe с домена dependent-fields.safekit.tech (интернет) и вызывает REST портала. Если портал открыт по внутреннему имени, IP 10.x / 192.168.x / 172.16–31.x или split-DNS резолвит домен портала во внутренний адрес — браузер блокирует запросы. Отключать флаг всем сотрудникам не нужно. Правильно: открывать коробку по внешнему DNS-имени, которое резолвится в публичный IP (не в RFC1918); если браузер спрашивает доступ к локальной сети — нажать «Разрешить». Для парка машин — политика Chrome/Edge LocalNetworkAccessAllowedForUrls на URL портала и https://dependent-fields.safekit.tech. Сам iframe рисует Битрикс24, атрибут allow="local-network-access" мы добавить не можем.oauth.bitrix.info. Что сделать: 1) с сервера Битрикс24 выполнить проверки из раздела «Проверка доступа с сервера портала»; 2) администратору переустановить приложение из Маркета и один раз открыть его из меню портала; 3) если использовали вкладку — снова нажать «Добавить зависимые поля в карточку». Без доступа к oauth.bitrix.info токен не выдастся.dependent-fields.safekit.tech и входящий REST с наших IP на прод (не на тестовый контур). См. раздел «Информация для ИТ/ИБ-службы».Не нужно делать много скриншотов. Нажмите кнопку ниже — приложение автоматически соберёт максимум технической информации (версия, права, портал, тип поля, привязки, правила и т.д.). Текст скопируется в буфер обмена — просто вставьте его в обращение в поддержку. Это заметно ускорит решение вопроса.
В отчёт не попадают содержимое сделок/лидов и персональные данные клиентов — только техническая информация о настройке приложения.
Если ваш Битрикс24 закрыт от внешнего интернета (reverse proxy, allow-list, корпоративный фаервол), для работы приложения нужно разрешить двусторонний обмен между сервером Битрикс24 и сервером приложения. Важно: портал (особенно коробочная версия) должен иметь доступ по HTTPS к серверу нашего приложения — без этого Битрикс не сможет зарегистрировать тип поля и inline-поля работать не будут.
Заявка для ИТ/ИБ (можно скопировать):
Прошу внести следующий домен / IP-адреса для работоспособности приложения на портале Битрикс24:
dependent-fields.safekit.tech (рекомендуется выполнять резолв по домену, так как IP может меняться; актуальные IP на текущий момент — ниже)132.243.239.158, 95.79.129.155, 212.192.23.167, 45.80.71.80, 159.194.219.102oauth.bitrix.info (выдача/обновление токена приложения), api.bitrix24.com (скрипт BX24). Без них в карточке будет «Ошибка получения токена авторизации».80/443Для работы приложения «Зависимые поля» требуется обеспечить двусторонний обмен данными между сервером Битрикс24 (внутри контура) и сервером приложения (dependent-fields.safekit.tech). Приложение реализовано по классической модели Bitrix24 REST API (self-hosted app).
Исходящий трафик (Outgoing) — от клиента к серверу приложения:
widget.php, JS-модули и стили с домена dependent-fields.safekit.tech. Без этого доступа вкладка приложения будет пустой или выдаст ошибку.Входящий трафик (Incoming) — от сервера приложения к порталу:
crm.item.update или userfieldtype.add). Это необходимо, чтобы приложение могло скрыть или показать поле в интерфейсе CRM на основе заданной логики.AUTH_ID. Сервер приложения проверяет валидность сессии, обращаясь к порталу клиента.Доступ требуется для:
Настройки (логика скрытия полей) хранятся в зашифрованном виде в app.option самого портала клиента, а внешний сервер используется преимущественно как «движок» для исполнения этой логики.
Технические уточнения: на стороне портала приложение обращается только к пути https://<домен-вашего-портала>/rest/*; к /bitrix/*, /admin/*, /upload/*, /disk/*, /im/* и прочим внутренним адресам обращений нет. Обновление OAuth-токена идёт на облачный сервис самого Битрикса https://oauth.bitrix.info/oauth/token/ (не ваш сервер). WebSocket-соединений, длинных коннектов и постоянных пуллов приложение не использует — только короткие синхронные HTTPS-вызовы. IP сервера приложения может меняться, поэтому в allow-list предпочтительно указывать домен с резолвом; если нужен фиксированный IP — напишите в нашу поддержку.
Команды выполнять на сервере Битрикс24 (прод-ВМ), не с рабочего ПК. Подходят для CentOS / Rocky / Alma, Debian и Ubuntu (нужен curl; при отсутствии: yum/dnf install curl или apt-get install curl). Норма — HTTP 200/301/302 за несколько секунд, не timeout.
Эти проверки обязательны, если в карточке «Ошибка получения токена авторизации», поля не отображаются, или nginx отдаёт 504; а также после переезда портала на новую ВМ и при настройке доступа отдельно на тест и прод.
1. Исходящий HTTPS с ВМ портала (ВМ → интернет). Без этого Битрикс не получит токен и не загрузит виджет:
curl -vkI --max-time 15 https://oauth.bitrix.info/ curl -vkI --max-time 15 https://api.bitrix24.com/api/v1/ curl -vkI --max-time 15 https://dependent-fields.safekit.tech/
2. Резолв домена приложения и HTTPS по домену:
getent hosts dependent-fields.safekit.tech
curl -sS -o /dev/null -w "code:%{http_code} ip:%{remote_ip} time:%{time_total}\n" --max-time 15 https://dependent-fields.safekit.tech/
3. Исходящий доступ до каждого IP приложения (часть нод может не совпасть с текущим резолвом — в allow-list всё равно нужны все):
for ip in 132.243.239.158 95.79.129.155 212.192.23.167 45.80.71.80 159.194.219.102; do
echo "----- $ip -----"
curl -sS -o /dev/null -w "$ip code:%{http_code} time:%{time_total}\n" --max-time 10 \
--resolve "dependent-fields.safekit.tech:443:${ip}" https://dependent-fields.safekit.tech/ \
|| echo "$ip FAIL"
done
4. Входящий доступ (наши IP → REST портала) с самой ВМ полностью не проверить. Убедитесь, что на проде (не на тесте) в фаерволе разрешены входящие 80/443 с IP из заявки выше, портал слушает 443, и правила теста не повешены на прод. Пока открыто приложение, на ВМ можно смотреть пакеты:
sudo tcpdump -n -i any 'tcp port 443 and (src host 132.243.239.158 or src host 95.79.129.155 or src host 212.192.23.167 or src host 45.80.71.80 or src host 159.194.219.102)'
Если исходящие три curl из пункта 1 проходят, а в карточке всё ещё ошибка токена — администратору нужно переустановить приложение из Маркета (после переезда ВМ старые токены часто недействительны) и открыть его из меню портала.
Local Network Access Checks (Chrome / Edge / Яндекс.Браузер). Если с сервера портала curl проходит, а в браузере приложение оживает только после отключения флага chrome://flags/#local-network-access-check — браузер считает адрес портала «локальной сетью» и блокирует REST из публичного iframe приложения. Сотрудникам флаг отключать не обязательно: пусть заходят на портал по внешнему имени с публичным IP; при запросе разрешения на локальную сеть — «Разрешить». Корпоративно: политика LocalNetworkAccessAllowedForUrls.