Значение по умолчанию

Введение

Значение по умолчанию — это начальное значение поля при создании новой записи. Вы можете задать значение по умолчанию для поля при настройке его в коллекции или указать значение по умолчанию для поля в блоке формы добавления. Его можно задать как константу или как переменную.

Где задавать значения по умолчанию

Поля коллекции

20240411095933

Поля в форме добавления

Большинство полей в форме добавления поддерживают установку значения по умолчанию.

20251028161801

Добавление в подформе

Подданные, добавленные через поле подформы как в форме добавления, так и в форме редактирования, будут иметь значение по умолчанию.

Добавить новое в подформе: 20251028163455

При редактировании существующих данных пустое поле не будет заполнено значением по умолчанию. Значение по умолчанию будет применяться только к новым добавленным данным.

Значения по умолчанию для полей связи

Только связи типа многие-к-одному и многие-ко-многим имеют значения по умолчанию при использовании компонентов выбора.

20251028164128

Переменные значений по умолчанию

Какие переменные доступны

  • Текущий пользователь;
  • Текущая запись; применимо только к существующим записям;
  • Текущая форма, желательно, чтобы она содержала только поля формы;
  • Текущий элемент, понятие внутри подформ (объект данных для каждой строки подформы);
  • Параметры веб-адреса. Для дополнительной информации о переменных см. Переменные

Переменные значений по умолчанию на уровне поля

Делятся на две категории: поля без связей и поля связей.

Переменные значений по умолчанию для полей связи

  • Объект переменной должен быть записью коллекции;
  • Это должна быть коллекция в цепочке наследования: текущая коллекция или родительская/дочерняя коллекция;
  • Переменная «Выбранные записи таблицы» доступна только для полей связи «многие-ко-многим» и «один-ко-многим/многие-к-одному»;
  • Для многоуровневых сценариев требуется выполнить разворачивание и удаление дубликатов
// Выбранные записи таблицы:
[{id:1},{id:2},{id:3},{id:4}]

// Выбранные записи таблицы/to-one:
[{toOne: {id:2}}, {toOne: {id:3}}, {toOne: {id:3}}]
// Выполнить разворачивание и удаление дубликатов
[{id: 2}, {id: 3}]

// Выбранные записи таблицы/to-many:
[{toMany: [{id: 1}, {id:2}]}, {toMany: {[id:3}, {id:4}]}]
// Выполнить разворачивание
[{id:1},{id:2},{id:3},{id:4}]

Переменные значений по умолчанию для полей без связей

  • Типы должны совпадать или быть совместимыми, например: строки совместимы с числами, а также любые объекты, предоставляющие метод преобразования в строку;
  • Поле в формате JSON — особое, оно может хранить данные любого типа;

Уровень поля (необязательные поля)

20240411101157

  • Переменные значений по умолчанию для полей без связей

    • При выборе многоуровневых полей ограничение: только связи «к одному», без поддержки связей «ко многим»;
    • Поле в формате JSON — особое и может быть без ограничений;
  • Переменные значений по умолчанию для полей связей

    • «один-к-одному»: поддерживает только связи «к одному»;
    • «один-ко-многим»: поддерживаются и связи «к одному» (внутреннее преобразование), и связи «ко многим»;
    • «многие-ко-многим»: поддерживаются и связи «к одному» (внутреннее преобразование), и связи «ко многим»;
    • «многие-к-одному»: обычно для связей «к одному», но когда родительская связь — «один-ко-многим», также поддерживается связь «ко многим» (поскольку «один-ко-многим/многие-к-одному» по сути является отношением «многие-ко-многим»);

Особые случаи

«Многие-ко-многим» эквивалентно комбинации «один-ко-многим/многие-к-одному»

Модель

20240411101558

Почему «один-к-одному» и «один-ко-многим» не имеют значений по умолчанию?

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

Почему подформы или подтаблицы «многие-к-одному» и «многие-ко-многим» не могут иметь значения по умолчанию?

Потому что основная задача подформ и подтаблиц — напрямую редактировать данные связи (включая добавление и удаление), тогда как значение связи по умолчанию — это механизм общего доступа, где все могут быть связаны, но сами данные связи изменять нельзя. Поэтому в этом сценарии предоставлять значения по умолчанию нецелесообразно.

Кроме того, у подформ или подтаблиц есть под-поля, и будет неясно, является ли значение по умолчанию для подформы/подтаблицы значением строки или значением столбца.

С учетом всех факторов более корректно не разрешать прямую установку значений по умолчанию для подформ и подтаблиц независимо от типа связи.