---

pkg: '@nocobase/plugin-action-duplicate'

---

# Дублирование

## Введение

Действие «Дублирование» позволяет пользователям быстро создавать новые записи на основе существующих данных. Поддерживаются два режима дублирования: **Прямое дублирование** и **Дублировать в форму для редактирования**.

## Установка

Это встроенный плагин, дополнительная установка не требуется.

## Режимы дублирования

![20260209224344](https://static-docs.nocobase.com/20260209224344.png)

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

![20260209224506](https://static-docs.nocobase.com/20260209224506.png)

- По умолчанию выполняется как «Прямое дублирование»;
- **Поля шаблона**: укажите поля, которые необходимо скопировать. Поддерживается опция «Выбрать все». Это обязательная настройка.

![20260209225910](https://static-docs.nocobase.com/20260209225910.gif)

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

### Дублировать в форму для редактирования

Настроенные поля шаблона будут подставлены в форму как **значения по умолчанию**. Пользователи могут изменить эти значения перед отправкой для завершения дублирования.

![20260209224704](https://static-docs.nocobase.com/20260209224704.png)

**Настройка полей шаблона**: только выбранные поля будут перенесены и использованы в качестве значений по умолчанию.

![20260209225148](https://static-docs.nocobase.com/20260209225148.png)

#### Синхронизировать поля формы

- Автоматически анализирует поля, уже настроенные в текущем блоке формы, и использует их как поля шаблона;
- Если поля блока формы будут изменены позже (например, при изменении компонентов полей связи), необходимо снова открыть настройки шаблона и нажать **«Синхронизировать поля формы»** для обеспечения соответствия.

![20260209225450](https://static-docs.nocobase.com/20260209225450.gif)

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

### Дополнительные примечания

#### Дублирование, Ссылка, Предварительная загрузка

Разные типы полей (типы связей) имеют разную логику обработки: **Дублирование / Ссылка / Предварительная загрузка**. **Компонент поля** связи также влияет на эту логику:

- Выбор (Select) / Выбор записи (Record picker): используется для **Ссылки**
- Подформа (Sub-form) / Подтаблица (Sub-table): используется для **Дублирования**

**Дублирование**

- Обычные поля дублируются;
- Связи `hasOne` / `hasMany` могут только дублироваться (для таких связей не следует использовать компоненты выбора, такие как «Выбор» или «Выбор записи»; вместо этого используйте компоненты «Подформа» или «Подтаблица»);
- Изменение компонента для `hasOne` / `hasMany` **не меняет** логику обработки (она остается «Дублированием»);
- Для дублируемых полей связи можно выбрать все дочерние поля.

**Ссылка**

- Связи `belongsTo` / `belongsToMany` обрабатываются как ссылки;
- Если компонент поля изменить с «Выбора» на «Подформу», тип связи изменится со **Ссылки на Дублирование** (после этого все дочерние поля станут доступными для выбора).

**Предварительная загрузка**

- Поля связи внутри поля типа «Ссылка» обрабатываются как предварительная загрузка;
- Поля предварительной загрузки могут стать ссылками или дубликатами после смены компонента.

#### Выбрать все

- Выбирает все **поля для дублирования** и **поля-ссылки**.

#### Из записи, выбранной в качестве шаблона данных, будут исключены следующие поля:

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

#### Синхронизировать поля формы

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