Настройка зависимых выпадающих списков ФВД - Публичная база знаний Modus
Разбор схемы работы зависимых полей
Ситуация: зависимые выпадающие списки
Предположим, в системе есть форма ввода данных, где пользователь должен указать три параметра:
- Тип продукции;
- Регион;
- Город.
При этом наполнение списка «Город» должно зависеть от того, какой тип продукции и какой регион выбраны. Иными словами, пользователю должны показываться только те города, которые в справочнике явно привязаны к выбранной паре «тип продукции + регион».
Такая логика позволяет:
- исключить ошибки при вводе (нельзя выбрать город, не подходящий к типу продукции или региону);
- сократить время поиска нужного значения;
- сделать интерфейс более удобным и предсказуемым.
Для реализации этого механизма используются три справочника (они играют роль источников данных) и специальная настройка, которая связывает поля формы между собой. Структурная схема представлена ниже.
Теоретическое объяснение структурной схемы
Схема разделена на три крупные области, которые показаны прямоугольниками: «Справочники», «Форма ввода данных» и «Настройка зависимости». Внутри каждой области находятся элементы, а между областями проведены стрелки, показывающие, как эти элементы взаимодействуют.
Блок «Справочники»
Здесь изображены три справочника — хранилища данных, из которых берутся значения для полей формы:
- Справочник «Типы продукции» — перечень возможных типов.
- Справочник «Регионы» — перечень регионов.
- Справочник «Города» — содержит названия городов, но, что важно, у каждой записи о городе есть два дополнительных поля: «Тип продукции» и «Регион».
Стрелки, идущие от справочника «Города» к двум другим справочникам, показывают, что справочник «Города» использует их в своей структуре — он ссылается на них, чтобы определить, к какому типу продукции и к какому региону относится тот или иной город.
Блок «Форма ввода данных»
В форме находятся три выпадающих списка:
- «Тип продукции» и «Регион» — это обычные независимые поля. Они получают свои значения напрямую из соответствующих справочников (это показано не стрелками, но подразумевается по смыслу).
- «Город» — выделено как зависимое. Стрелки, направленные от полей «Тип продукции» и «Регион» к полю «Город», указывают на то, что содержимое последнего зависит от того, что выбрано в первых двух.
Блок «Настройка зависимости»
Этот блок показывает, как система связывает поля формы и справочники, чтобы поле «Город» подчинялось выбору в полях «Тип продукции» и «Регион».
Внутри блока есть два элемента:
- «Настройка поля Город» — это просто отметка, что для поля «Город» установлено особое правило.
- «Условие фильтрации» — это само правило, которое записано в виде трёх коротких фраз: «Фильтровать по полю», «Подставлять из», «Поля формы»:
- «Фильтровать по полю» — означает, что при отборе городов нужно смотреть на какие‑то конкретные поля в справочнике городов.
- «Подставлять из» и «Поля формы» — означают, что значения для сравнения берутся не откуда-то из справочника, а прямо из полей формы, которые заполнил пользователь.
Конкретно в нашем примере:
- «Поля формы» — это поля «Тип продукции» и «Регион».
- «Поля справочника», по которым нужно фильтровать, — это поля «Тип продукции» и «Регион» внутри справочника «Города».
Итог: система берёт то, что пользователь выбрал в «Тип продукции» и «Регион», ищет в справочнике «Города» записи, где эти два поля совпадают, и показывает только такие города.
Итоговая связь
Последняя стрелка на схеме идёт от справочника «Города» прямо к полю «Город» на форме. Она показывает, что после того, как условие фильтрации отработало, отобранные значения (города, соответствующие выбранным типу продукции и региону) попадают в выпадающий список на экране.
Создание таблиц
Для создания зависимых списков этого необходимо создать таблицы-справочники и целевую таблицу. Подробнее о настройке выпадающих списков смотрите в разделе «Настройка выпадающих списков ФВД».
Примечание — далее на примере создадим форму ввода данных «Домашняя техника», в которой выбор бренда будет зависеть от выбора типа техники.
Из главного меню перейдите на портал ФВД: «Формы ввода данных/ Настройки/ Таблицы». Подробнее о создании таблицы ФВД смотрите в разделе «Формирование таблицы для хранения данных и настройка свойств полей данных в форме ввода».
Создание таблицы-справочника для первого поля (основной список)
Выберите хранилище данных, нажмите на кнопку «Добавить», укажите название таблицы, например, «Тип домашней техники».
Нажмите на кнопку «Добавить поле», укажите тип поля и название. Например: applainces_type — значения для основного выпадающего списка: Стиральная машина, Блендер, Кофеварка, Пылесос.

Проверьте данные и нажмите на кнопки «Сохранить» и «Записать в хранилище».

Создание таблицы-справочника для второго поля (зависимый список)
В нужном хранилище данных нажмите на кнопку «Добавить», укажите название таблицы, например, «Бренд домашней техники».
Добавьте основное поле. Например, applainces_type. Перейдите в настройки свойств поля и в разделе «Выбор из справочника» выберите основную таблицу-справочник, созданную на шаге один. Затем укажите поле, из которого будут подставляться значения.

Добавьте поле для зависимого выпадающего списка, например applainces_brand.

Проверьте данные и нажмите на кнопки «Сохранить» и «Записать в хранилище».
Например, для связи «Тип техники → Бренд» каждая запись бренда должна содержать ссылку на конкретный тип техники: Bosch, LG, Samsung — для стиральных машин; Philips, Braun, KitchenAid — для блендеров и т.д.
Создание целевой таблицы
Создание таблицы, в которой необходимо настроить зависимый выпадающий список.
В нужном хранилище данных нажмите на кнопку «Добавить», укажите название таблицы, например, «Домашняя техника».
Создайте необходимые поля:
- home_appliance — свяжите основной выпадающий список с таблицей-справочником и полем «Типы домашней техники» в настройках свойств поля;

- applainces_brand — свяжите зависимый выпадающий список с таблицей-справочником «Бренды домашней техники» и с полем «Бренды техники»;

- при необходимости добавьте другие поля. Например, «Комментарий» или «Дата».
Проверьте данные и нажмите на кнопки «Сохранить» и «Записать в хранилище».

Настройка ФВД с целевой таблицей
После заполнения данными таблиц справочников настройте зависимые поля в целевой форме ввода данных. Подробнее о настройке формы смотрите в разделе «Настройка форм ввода данных в режиме конструктора».
В форме ввода данных теперь можно настроить зависимость выпадающего списка от одного или нескольких полей (как от других выпадающих списков, так и от фиксированных значений справочника).
Настройка зависимого поля:
- Перейдите в настройки поля, для которого нужно настроить зависимость (в примере — appliances brand).

- Включите переключатель напротив раздела настроек «Зависимое поле»:
- «Поле Справочника для связи» — выберите поле из справочника зависимого списка, по которому будет выполняться фильтрация (например, «Тип техники»). Значение нельзя сбросить, если связь уже добавлена. В примере: в справочнике «Бренд домашней техники» есть поле «Тип техники», выберите его
- «Тип зависимости» — выберите один из вариантов:
- «От полей Формы ввода» — значение для фильтрации берётся из одного или нескольких полей текущей формы. В примере: выберите «От полей Формы ввода».
- «От значений Справочника» — значение для фильтрации берётся из фиксированных записей справочника (можно выбрать несколько значений).
-
«Зависит от» – в зависимости от выбранного типа:
-
Если выбран тип «От полей Формы ввода», здесь отобразятся все поля формы, имеющие тип «Выпадающий список». Выберите то поле, значение которого будет использовано для фильтрации.
В примере: выберите поле home_appliance (тип техники). -
Если выбран тип «От значений Справочника», то выберите одно или несколько значений из справочника, при совпадении с которыми будет срабатывать фильтрация.
-
Примечание — зависимость будет работать даже если родительское поле защищено от редактирования (предзаполнено и недоступно для изменения пользователем).

Нажмите на кнопку «Сохранить» в настройках поля и на кнопку «Сохранить» в настройках формы. Зависимый выпадающий список в форме ввода данных настроен.

