---
title: Импорт связей между объектами
description: Импорт связей между записями с помощью CSV.
---

## Обзор

Twenty поддерживает импорт связей между объектами при импорте CSV. Это позволяет связывать записи (например, прикреплять Людей к Компаниям) в рамках миграции данных.

<Note>**В настоящее время поддерживается для импорта**: связи «один-ко-многим», указывающие на один тип объекта с каждой стороны (например, Люди → Компании). Связи, указывающие на несколько типов объектов, пока не поддерживаются для импорта/экспорта.</Note>

## Как работают связи в Twenty

### Один-ко-многим / Многие-к-одному

Twenty поддерживает стандартные связи, когда одна запись связана со многими другими:

* **Одна Компания → Многие Люди**: у компании может быть несколько сотрудников, но каждый человек принадлежит одной компании
* **Одна Компания → Многие Сделки**: у компании может быть несколько сделок, но каждая сделка принадлежит одной компании

### Связи, которые могут указывать на несколько типов объектов

Некоторые связи могут связывать разные типы объектов. Это работает двумя способами:

**Паттерн 1: Многие записи, каждая из которых связана с одной записью каждого типа объекта**

Несколько Заметок, Задач или Активностей могут одновременно быть привязаны к нескольким типам объектов:

* **Заметки** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой
* **Задачи** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой

Здесь Заметки/Задачи находятся на стороне «многие». Каждая из них связывается с одной записью каждого типа объекта.

<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />

**Паттерн 2: Одна запись, получающая связи от многих записей разных типов объектов**

Проект может получать связи от множества записей разных типов объектов:

* **Проект** может иметь много связанных с ним Людей, много связанных Компаний и много прикреплённых к нему Заметок

Здесь Проект находится на стороне «один». Несколько записей из разных объектов могут ссылаться на один и тот же Проект.

<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />

<Warning>
**Ограничение импорта/экспорта**: связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), **пока не поддерживаются** при импорте или экспорте CSV.

* **Импорт**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта с каждой стороны
* **Экспорт**: столбцы для связей, указывающих на несколько типов объектов, на данный момент остаются пустыми

Это запланировано в нашей дорожной карте.
</Warning>

### Что пока не поддерживается

**Связи «многие-ко-многим»** пока недоступны. Например, сейчас вы не можете создать связь, где:

* Многие Люди связаны со многими Проектами

<Note>Связи «многие-ко-многим» запланированы на 1 полугодие 2026 года.</Note>

## Связывание записей при импорте

<Note>**Напоминание**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта (например, Люди → Компании). Связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), пока не поддерживаются.</Note>

### Шаг 1: Определите стороны «один» и «многие»

Сначала определите, какой объект находится на стороне «один», а какой — на стороне «многие» в этой связи.

**Пример**:

* **Компания** — это сторона «один» (у одной компании много сотрудников)
* **Люди** — это сторона «многие» (каждый человек принадлежит одной компании)

### Шаг 2: Убедитесь, что записи стороны «один» существуют

Прежде чем импортировать сторону «многие», записи стороны «один» уже должны существовать в Twenty.

* Сначала импортируйте или создайте записи стороны «один» (например, Компании)
* Проверьте их уникальный идентификатор. Это может быть:
  * `id` (UUID в Twenty)
  * Поле, помеченное как уникальное (например, `domain` для Компаний или внешний идентификатор из вашей предыдущей системы)

<Warning>Импорт завершится с ошибкой, если ссылка указывает на несуществующую запись.</Warning>

### Шаг 3: Подготовьте файл CSV

Добавьте столбец в CSV-файл для стороны «многие», который ссылается на запись стороны «один».

**Пример**: для CSV-файла Людей, связывающего с Компаниями:

```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```

**Важно**:

* Значение должно **в точности совпадать** с уникальным полем в записи Компании
* Для доменов используйте **URL домена** (например, `https://acme.com`), а не метку домена
* Сопоставляйте только **один** уникальный идентификатор на связь: так импорт пройдёт более гладко

### Шаг 4: Убедитесь, что поле связи существует

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

Если его нет:

1. Перейдите в **Настройки → Модель данных**
2. Выберите ваш объект (например, Люди)
3. Создайте поле связи, указывающее на целевой объект (например, Компания)

### Шаг 5: Загрузите и сопоставьте связь

1. Загрузите ваш CSV-файл через интерфейс импорта
2. На шаге сопоставления полей найдите столбец связи (например, `companyDomain`)
3. Сопоставьте его с полем связи (например, Компания)
4. Twenty автоматически свяжет каждую запись с соответствующим родителем

### Доступные уникальные поля для связей

| Объект                                            | Доступные уникальные поля                              |
| ------------------------------------------------- | ------------------------------------------------------ |
| **Компании**                                      | `id`, `domain`, любое пользовательское уникальное поле |
| **Люди**                                          | `id`, `email`, любое пользовательское уникальное поле  |
| **Участники рабочего пространства**               | `id`, `email` (не имя)                                 |
| **Прочие стандартные и пользовательские объекты** | `id`, любое поле, помеченное как уникальное            |

<Note>**Связь с участниками рабочего пространства**: когда связь указывает на Участников рабочего пространства (ваша команда, входящая в Twenty), указывайте их по **адресу электронной почты**, а не по имени.</Note>

<Note>Мы рекомендуем использовать `domain` для Компаний и `email` для Людей, так как эти значения человекочитаемы и их легко поддерживать в таблицах.</Note>

<Note>**Напоминание**: Мягко удалённые записи (видны в Командном меню → Показать удалённые записи) учитываются при проверке уникальности. Если вы импортируете запись с тем же уникальным значением, что и у удалённой записи, удалённая запись будет восстановлена. См. [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints) для подробностей.</Note>

## Правило порядка импорта

<Warning>
**Всегда сначала импортируйте сторону «один»!**

1. **Компании** в первую очередь (без зависимостей)
2. **Люди** во вторую очередь (связаны с Компаниями)
3. **Сделки** в третью очередь (связаны с Компаниями/Людьми)
4. **Пользовательские объекты** с учётом их зависимостей

Родительская запись должна существовать до того, как вы сможете на неё сослаться.
</Warning>
