Связи между формами
Как создать связи между формами
Создание связей между формами — важная возможность для разумной организации информации. Связывая формы, вы избавляетесь от необходимости дублировать данные и обеспечиваете согласованность, масштабируемость и простоту поддержки приложения.
Одно из главных преимуществ Netuno — возможность автоматически генерировать диаграмму модели данных.
Связи определяют, как данные разных таблиц взаимодействуют друг с другом. Эта связь напрямую отражается в пользовательском интерфейсе (UI), позволяя полям одной формы автоматически получать информацию из другой.
Простая диаграмма: Идеально подходит для проверки начальной логики небольших модулей.

Сложная диаграмма: Демонстрирует надёжность инструмента в крупномасштабных приложениях, отображая множество зависимостей и потоков данных.

Создание поля связи типа Select
Поле Select создаёт связь между двумя формами. Оно позволяет выбрать значение из выпадающего списка (dropdown) вместо ручного ввода. Список заполняется данными, которые уже существуют в другой форме.
В качестве примера будем использовать формы Автомобиль и Цвет.
Когда использовать? Используйте select, когда у вас есть связь типа «многие-к-одному» (N-1).
Пример: Многие автомобили могут иметь один цвет. Вместо того чтобы каждый раз вводить «Синий», вы выбираете «Синий» из списка уже зарегистрированных цветов.
- Целевая форма: Автомобиль (где мы создадим поле select).
- Исходная форма: Цвет (откуда берутся данные для списка цветов).
Требования
Перед началом убедитесь, что:
-
Обе формы (Автомобиль и Цвет) уже созданы в Netuno. Подробнее см. наше руководство по созданию форм.
-
В исходной форме (Цвет) уже есть несколько записей. (Например: «Синий», «Красный», «Серебристый»). Подробнее см. наше руководство по созданию полей.
Создание и настройка Select
Добавьте тип поля select в форму Автомобиль, чтобы она могла «подтягивать» данные из формы Цвет.

1 - Перейдите к целевой форме
- В бэк-офисе перейдите в управление полями и откройте редактирование формы Автомобиль.
2 - Создайте новое поле
- Нажмите «Создать новое поле».
3 - Задайте заголовок и имя столбца
- Заголовок поля: Задайте понятное имя, которое увидит пользователь. Пример: Цвет автомобиля.
- Имя столбца: Это техническое имя поля в базе данных.
Рекомендация: При создании поля связи всегда используйте суффикс _id в Имени столбца. Это ясно показывает, что столбец хранит не текст «Синий», а ID-ссылку на запись «Синий» в форме Цвет. Пример: tsvet_avtomobilya_id.
4 - Выберите тип данных
- В поле Тип выберите в списке вариант
select - select.
5 - Настройте связь (отношение)

- При выборе
selectпоявится новое поле Связь. - Нажмите кнопку Настроить.
- Откроется модальное окно со списком всех ваших форм. Теперь нужно выбрать исходную форму.
- Выберите форму, содержащую данные, которые нужно вывести в списке. В нашем примере нажмите tsvet - Цвет.
- После выбора нажмите кнопку Закрыть в модальном окне.
6 - Сохраните изменения
- Нажмите кнопку Сохранить в управлении полями, чтобы применить все настройки.
Результат
Готово! Теперь в режиме «просмотр», когда вы будете добавлять или редактировать запись в форме Автомобиль, поле «Цвет автомобиля» будет выпадающим списком (dropdown), в котором отобразятся все цвета, зарегистрированные в форме Цвет.
Создание поля связи типа Multiselect
Поле Multiselect создаёт связь «многие-ко-многим» (N-M). Оно позволяет выбрать несколько элементов из списка в одном поле.
В качестве примера будем использовать формы Человек, Роль и Человек-Роль.
Когда использовать? Используйте multiselect, когда запись может быть связана с несколькими другими и наоборот. Пример: Многие люди могут иметь много ролей.
- Один человек (например, «Анна») может иметь роли «Администратор» и «Менеджер».
- Роль «Менеджер» может быть связана с несколькими людьми (например, «Анна», «Бруно» и «Тьяго»).
Чтобы это работало, нам нужны три формы:
- Родительская форма (Человек): Где поле
multiselectбудет видно пользователю. - Исходная форма (Роль): Откуда берутся варианты списка (например, «Администратор», «Менеджер»).
- Связующая форма (Человек-Роль): «Промежуточная» форма, которая хранит связи между Человеком и Ролью.
Требования
Перед началом убедитесь, что:
- Родительская форма (Человек) уже создана и содержит несколько записей (например, «Анна», «Бруно», «Лукас»).
- Исходная форма (Роль) уже создана и содержит несколько записей (например, «Администратор», «Менеджер», «Консультант»).
Создание и настройка Multiselect
Настройка выполняется в 4 этапа:
Этап 1: создание связующей формы (Человек-Роль)
Сначала создадим «промежуточную» форму.
1 - Перейдите в Управление > Формы и нажмите «Создать новую форму».
2 - Заголовок формы: Человек-Роль.
3 - Имя таблицы: chelovek_rol (или похожее).
4 - Важно: В поле Родитель выберите основную «родительскую» форму, в данном случае Человек. Так Человек-Роль станет подформой.
5 - Нажмите Сохранить.

Этап 2: настройка полей связующей формы
Добавьте «промежуточные» поля в форму Человек-Роль.
1 - Перейдите в управление полями формы Человек-Роль, которую вы только что создали.
2 - Добавьте два поля типа select: одно будет указывать на Человек, другое — на Роль.
Поле 1 (связь с Человеком):

- Заголовок поля: Имя человека
- Имя столбца:
imya_cheloveka_id(следуя соглашению _id) - Тип:
select - select - Связь: Нажмите Настроить и выберите основное поле формы Человек, например:
chelovek:imya. - Нажмите Сохранить.
Поле 2 (связь с Ролью):
- Заголовок поля: Роль человека.
- Имя столбца:
rol_cheloveka_id. - Тип:
select - select. - Связь: Нажмите Настроить и выберите основное поле формы Роль, например:
rol:rol_id. - Нажмите Сохранить.

Этап 3: создание поля multiselect в «родительской» форме
Когда «промежуточная» форма (Человек-Роль) готова, можно вернуться к форме Человек, чтобы создать итоговое поле.
1 - Перейдите в управление полями формы Человек.
2 - Нажмите «Создать новое поле».
3 - Заголовок поля: Человек-Роль.
4 - Имя столбца: chelovek_rol_id.
5 - Тип: multiselect - multiselect.
Этап 4: настройка поля multiselect
При выборе типа multiselect появятся два новых поля настройки: Ссылка и Связь.
1 - Ссылка (Где сохранять связь?)
- Это поле сообщает Netuno: «Какое поле "промежуточной" формы ссылается обратно на меня (Человек)?»
- Нажмите Настроить.
- Выберите связующую форму (Человек-Роль) и поле, созданное на этапе 2 (Поле 1). Пример:
chelovek_rol:imya_cheloveka_id.
2 - Связь (Откуда берутся варианты?)
- Это поле сообщает: «Какое поле "промежуточной" формы ссылается на варианты (Роль)?»
- Нажмите Настроить.
- Выберите связующую форму (Человек-Роль) и поле, созданное на этапе 2 (Поле 2). Пример:
chelovek_rol:rol_cheloveka_id.
3 - Сохраните изменения
- Нажмите кнопку Сохранить в управлении полями, чтобы применить все настройки.

Результат
Готово! Теперь в режиме «просмотр» при добавлении или редактировании записи в форме Человек поле «Человек-Роль» будет отображаться как множественный выбор. Вы сможете выбрать несколько ролей из списка (они берутся из формы Роль), а Netuno автоматически сохранит эти связи в форме Человек-Роль.
Если у вас есть вопросы, свяжитесь с нами через сообщество и другие каналы, доступные в конце этой страницы.
Удачной разработки!