Files
twenty/packages/twenty-docs/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv.mdx
T
github-actions[bot] 001c2097a3 i18n - docs translations (#18231)
Created by Github action

<!-- mintlify-editor-comments:start -->
Mintlify
---
0 threads from 0 users in Mintlify

- No unresolved comments
<!-- mintlify-editor-comments:end -->

<!-- mintlify-comment-->

<a
href="https://dashboard.mintlify.com/twenty/twenty/editor/i18n-docs?source=pr_comment"
target="_blank" rel="noopener noreferrer"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg"><img
src="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg"
alt="Open in Mintlify Editor"></picture></a>

<!-- /mintlify-comment -->

Co-authored-by: github-actions <github-actions@twenty.com>
2026-02-25 16:50:28 +01:00

226 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Импорт связей между объектами с помощью CSV
description: Полное пошаговое руководство по связыванию записей при импорте CSV.
---
## Обзор
В этом руководстве показано, как импортировать связи между объектами — например, связывать Людей с Компаниями, или Возможности с Людьми.
<Note>**Что можно импортировать:** Только связи типа «один-ко-многим», указывающие на один тип объекта. Связи, указывающие на несколько типов объектов (например, Заметки, связанные с Людьми И Компаниями), пока не поддерживаются для импорта.</Note>
## Понимание связей
### Что такое связь «один-ко-многим»?
В связи «один-ко-многим»:
* **Одна** компания имеет **много** людей (сотрудников)
* **Одна** компания имеет **много** возможностей
* **Один** человек имеет **много** задач
Сторона «один» — это **родитель**. Сторона «многие» — это **дочерняя** сторона.
### Типичные связи в Twenty
| Связь | Сторона «один» (родитель) | Сторона «многие» (дочерняя) |
| ---------------------- | ------------------------- | --------------------------- |
| Компании → Люди | Компания | Люди |
| Компании → Возможности | Компания | Возможности |
| Люди → Задачи | Человек | Задачи |
| Люди → Заметки | Человек | Заметки |
## Шаг 1: Определите стороны «один» и «многие»
Перед импортом определите, какой объект является родительским, а какой — дочерним.
**Спросите себя:** «У одного [Объект A] есть много [Объект B]?»
* Одна Компания → Много Людей ✓ (Компания — родитель)
* Один Человек → Много Компаний ✗ (Это неверно — человек принадлежит одной компании)
## Шаг 2: Сначала импортируйте родительские записи
Родительская запись (сторона «один») должна существовать в Twenty, прежде чем вы сможете на неё сослаться.
**Порядок импорта:**
1. **Компании** в первую очередь (без зависимостей)
2. **Люди** во вторую очередь (связь с компаниями)
3. **Возможности** в третью очередь (связь с компаниями и/или людьми)
4. **Задачи/Заметки** (связь с любым из вышеперечисленных)
<Warning>
**Если родительская запись не существует, импорт завершится с ошибкой.**
Всегда проверяйте, что Компании импортированы до импорта Людей со ссылками на компании.
</Warning>
## Шаг 3: Запишите уникальный идентификатор родительской записи
Вам нужно ссылаться на родительскую запись с помощью **уникального идентификатора**. Доступные варианты:
| Родительский объект | Доступные уникальные идентификаторы |
| ----------------------------------- | -------------------------------------------------------------------------------- |
| **Компании** | `id` (UUID), `domain` (рекомендуется) или любое пользовательское уникальное поле |
| **Люди** | `id` (UUID), `email` или любое пользовательское уникальное поле |
| **Участники рабочего пространства** | `id` (UUID), `email` (не имя) |
| **Пользовательские объекты** | `id` (UUID) или любое поле, отмеченное как уникальное |
<Note>**Рекомендуется:** Используйте `domain` для Компаний и `email` для Людей. Они удобочитаемы и их легко проверить в вашей таблице.</Note>
### Поиск идентификатора
Если вам нужен `id`:
1. Экспортируйте родительские записи из Twenty
2. Экспорт включает столбец `id`
3. Используйте эти ID в файле дочерних записей
## Шаг 4: Убедитесь, что поле связи существует
Перед импортом убедитесь, что между вашими объектами существует поле связи.
**Чтобы проверить или создать:**
1. Перейдите в **Настройки → Модель данных**
2. Выберите ваш дочерний объект (например, Люди)
3. Найдите поле связи, указывающее на родителя (например, Компания)
4. Если его нет, создайте его:
* Нажмите **+ Добавить поле**
* Выберите тип **Связь**
* Выберите родительский объект
## Шаг 5: Подготовьте ваш файл CSV
Добавьте в ваш дочерний CSV столбец, который ссылается на родителя по его уникальному идентификатору.
### Пример: Связывание Людей с Компаниями
**Ваш CSV-файл для Людей:**
```csv
firstName,lastName,email,jobTitle,companyDomain
John,Smith,john@acme.com,CEO,https://acme.com
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```
Столбец `companyDomain` ссылается на домен Компании.
### Требования к формату
| Идентификатор | Формат | Пример |
| ----------------- | ----------------------------------- | -------------------------------------- |
| Домен | Формат URL | `https://acme.com` |
| Электронная почта | Стандартный адрес электронной почты | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**Формат домена имеет значение!**
Используйте `https://domain.com` (не просто `domain.com`). Это соответствует тому, как Twenty хранит домены Компаний, и предотвращает ошибки сопоставления.
</Warning>
### Важные правила
1. **Требуется точное совпадение** — значение должно в точности соответствовать родительской записи
2. **Сопоставляйте только ОДИН уникальный идентификатор** — не указывайте одновременно `companyId` И `companyDomain`
3. **С учётом регистра** — `Acme.com` ≠ `acme.com`
## Шаг 6: Загрузите и сопоставьте связь
1. Перейдите к дочернему объекту (например, Люди)
2. Нажмите **⋮** → **Импорт записей**
3. Загрузите ваш CSV-файл
4. На шаге сопоставления полей:
* Найдите столбец связи (например, `companyDomain`)
* Сопоставьте его с полем связи **Компания**
5. Завершите оставшееся сопоставление
6. Проверьте ошибки и подтвердите
Twenty автоматически свяжет каждую дочернюю запись с соответствующим родителем.
## Шаг 7: Проверьте импорт
После импорта:
1. Откройте несколько дочерних записей (например, Люди)
2. Убедитесь, что в поле связи указан правильный родитель (например, Компания)
3. Откройте родительскую запись и проверьте раздел связанных записей
## Распространённые ошибки, которых следует избегать
| Ошибка | Проблема | Решение |
| -------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------- |
| **Неправильный порядок импорта** | Импорт Людей раньше Компаний | Всегда сначала импортируйте родительские записи, затем дочерние |
| **Неверный формат домена** | Использование `acme.com` вместо `https://acme.com` | Используйте полный формат URL с `https://` |
| **Несколько уникальных полей** | Сопоставление одновременно `companyId` И `companyDomain` | Сопоставляйте только ОДИН уникальный идентификатор |
| **Отсутствует поле связи** | Поля связи нет в модели данных | Создайте его в **Настройки → Модель данных** перед импортом |
| **Несуществующие записи** | Родительская запись не существует в Twenty | Сначала импортируйте родительские записи или проверьте опечатки |
| **Несовпадение регистра** | `Acme.com` в файле, но `acme.com` в Twenty | Обеспечьте точное совпадение регистра |
## Связь с участниками рабочего пространства
При связывании с участниками рабочего пространства (вашей командой):
* Используйте их **адрес электронной почты**, а не имя
* Пример: `owner@yourcompany.com`, а не «John Smith»
```csv
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Что, если у моей родительской записи нет домена или адреса электронной почты?">
У вас есть два варианта:
1. Используйте Twenty `id` (экспортируйте родительские записи, чтобы получить их ID)
2. Создайте пользовательское уникальное поле в вашей модели данных для хранения внешнего ID из вашей предыдущей системы
</Accordion>
<Accordion title="Могу ли я обновлять связи у существующих записей?">
Да! Укажите уникальный идентификатор дочерней записи (например, `email` для Людей) и новое значение связи. Импорт обновит связь.
</Accordion>
<Accordion title="Могу ли я импортировать связи многие-ко-многим?">
Связи многие-ко-многим пока не поддерживаются для импорта. Это запланировано на первое полугодие 2026 года.
</Accordion>
<Accordion title="Могу ли я связывать с несколькими типами объектов (например, Заметки с Людьми И Компаниями)?">
Связи, указывающие на несколько типов объектов, пока не поддерживаются для импорта/экспорта. Это запланировано в нашей дорожной карте.
</Accordion>
<Accordion title="Что происходит, если родительской записи не существует?">
Импорт покажет ошибку для этой строки. Вы можете либо:
* Сначала импортируйте родительскую запись, затем повторите импорт
* Исправьте ссылочное значение
* Исключите строку из импорта
</Accordion>
<Accordion title="Почему связь устанавливается некорректно?">
Распространённые причины:
* Неверный формат (для доменов используйте `https://domain.com`)
* Несовпадение регистра (проверьте точное написание)
* Родитель не существует (сначала импортируйте родителей)
* Сопоставление нескольких идентификаторов (используйте только один)
</Accordion>
</AccordionGroup>
<Warning>
**Помните: записи, помеченные как удалённые, учитываются при проверке уникальности.**
Если вы получаете ошибки «not found», но запись, кажется, существует, проверьте Command Menu → See deleted records. Возможно, родитель был помечен как удалённый.
</Warning>
## Устранение неполадок
Возникли проблемы? Проверьте:
* [Как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [Возможности импорта связей](/l/ru/user-guide/data-migration/capabilities/import-relations)
* [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)