> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yume.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Переименование сущностей

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

Полный перечень полей — в [глоссарии переименования](/ru/logic/settings/labels-glossary).

Раздел «Переименование сущностей» позволяет компании называть системные объекты своими словами: прокат самокатов может говорить «самокат» вместо «инвентарь», автопрокат — «автомобиль», а сервисный центр — «заказ-наряд» вместо «мастерская». Переименование задаётся не одной строкой, а полным набором форм — единственное и множественное число во всех шести падежах, — чтобы интерфейс мог корректно строить фразы вида «нет свободных самокатов» или «добавить к автомобилю».

## Что можно переименовать

Ключ переименования — это закрытый список из шестнадцати позиций: восемь справочных сущностей и восемь статусов аренды.

| Группа              | Ключи переименования                                                                |
| ------------------- | ----------------------------------------------------------------------------------- |
| Справочные сущности | Инвентарь, Комплект, Продукт, Точка проката, Услуга, Клиент, Депозит, Мастерская    |
| Статусы аренды      | Запрос, Забронировано, В прокате, Отменено, Завершено, Должник, Просрочено, Удалено |

<Note>
  Список ключей фиксирован на уровне системы. Добавить в него новую сущность из интерфейса нельзя — переименовать можно только то, что уже перечислено выше.
</Note>

Переименование статусов аренды — чисто визуальное: смысл статуса, переходы между ними, расчёты и отчётность не меняются. То же верно и для сущностей: система продолжает работать с прежними объектами, меняется только то, как они называются на экране.

## Модель данных

Одна запись наименования — это связка «ключ переименования + язык» и двенадцать форм слова: шесть падежей единственного числа и шесть падежей множественного.

### Идентификация и область действия

| Поле                | Тип             | Назначение                                                                                                                |
| ------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Идентификатор       | число           | Номер записи; используется, чтобы обратиться к конкретному наименованию для изменения или удаления                        |
| Ключ переименования | выбор из списка | Какую сущность или какой статус аренды переименовывает запись                                                             |
| Язык                | выбор из списка | Язык, для которого заданы формы. Доступны языки, поддерживаемые системой, — русский и английский                          |
| Компания            | связь           | Владелец записи. Пусто — это глобальный набор платформы; заполнено — собственное наименование компании                    |
| Типы компаний       | связь (много)   | Типы бизнеса, которым достаётся глобальный набор (прокат авто, самокаты и т. д.). Заполняется только у глобальных наборов |

### Формы слова

| Поле                        | Тип   | Назначение                                       |
| --------------------------- | ----- | ------------------------------------------------ |
| Именительный падеж (ед. ч.) | текст | Базовая форма: кто? что? — «Инвентарь»           |
| Родительный падеж (ед. ч.)  | текст | Кого? чего? — «инвентаря»                        |
| Дательный падеж (ед. ч.)    | текст | Кому? чему? — «инвентарю»                        |
| Винительный падеж (ед. ч.)  | текст | Кого? что? — «инвентарь»                         |
| Творительный падеж (ед. ч.) | текст | Кем? чем? — «инвентарем»                         |
| Предложный падеж (ед. ч.)   | текст | О ком? о чём? — «об инвентаре»                   |
| Именительный падеж (мн. ч.) | текст | Базовая форма множественного числа — «Инвентари» |
| Родительный падеж (мн. ч.)  | текст | Кого? чего? — «инвентарей»                       |
| Дательный падеж (мн. ч.)    | текст | Кому? чему? — «инвентарям»                       |
| Винительный падеж (мн. ч.)  | текст | Кого? что? — «инвентари»                         |
| Творительный падеж (мн. ч.) | текст | Кем? чем? — «инвентарями»                        |
| Предложный падеж (мн. ч.)   | текст | О ком? о чём? — «об инвентарях»                  |

Все двенадцать форм необязательны: запись сохранится, даже если заполнена только часть падежей или не заполнено ничего. Система не достраивает недостающие формы автоматически и не проверяет их согласованность — что записали, то интерфейс и покажет.

<Tip>
  Справочник падежей в системе существует отдельно и служит только описанием: сами формы хранятся в перечисленных выше полях, а не выбираются из списка падежей.
</Tip>

## Два уровня: глобальные наборы и наименования компании

Наименования живут в двух слоях.

**Глобальные наименования** заводит платформа. У такой записи не указана компания, зато перечислены типы компаний, которым она предназначена. Это заготовки «из коробки»: например, для типа «прокат самокатов» платформа заранее описывает инвентарь как «самокат» во всех падежах.

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

Ограничение уникальности «компания + язык + ключ» действует только для записей компании: у одной компании не может быть двух наименований одного ключа на одном языке. Глобальные наборы этим правилом не ограничены — платформа технически может завести несколько записей на один ключ и язык.

<Info>
  Копирования при подключении компании не происходит: глобальные наборы не переносятся в компанию при регистрации. Компания видит их «сквозь» свои записи, а собственная запись появляется только тогда, когда компания сама что-то переименует.
</Info>

## Как формируется итоговый список

Выдача списка наименований работает так:

1. Отбираются записи, принадлежащие текущей компании.
2. К ним добавляются глобальные наборы, привязанные к типу текущей компании. Если у компании тип не указан, глобальные наборы в отбор не попадают вовсе, и список состоит только из собственных записей.
3. Отобранное сортируется так, чтобы записи без компании шли первыми, а записи компании — следом.
4. Результат сворачивается по ключу переименования: на каждый ключ остаётся одна запись, и побеждает та, что встретилась последней, — то есть наименование компании.

Именно шаг 4 обеспечивает правило «компания перекрывает платформу». Он же задаёт важное свойство выдачи: в списке ровно один элемент на ключ переименования. Список отдаётся целиком, без постраничной разбивки.

<Warning>
  Свод выполняется только по ключу переименования — язык в нём не участвует, и выбрать язык при запросе списка нельзя. Если по одному ключу заведено несколько языков (например, русский и английский), в итоговый список попадёт лишь один из них, а остальные будут вытеснены. То же касается смешанных случаев: собственная запись на одном языке перекроет глобальную запись на другом.
</Warning>

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

## Сохранение: «создать или обновить»

Сохранение нового наименования устроено как идемпотентная операция по паре «ключ переименования + язык» в рамках текущей компании:

* если у компании такой записи ещё нет — она создаётся;
* если запись уже есть — у неё обновляются переданные формы.

Дубликатов повторная отправка не создаёт, а компания и типы компаний в запросе не участвуют: принадлежность подставляется по текущей компании автоматически, а привязка к типам остаётся зоной ответственности платформы. В ответ возвращается сохранённая запись с идентификатором — со статусом «создано» независимо от того, была запись создана или обновлена.

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

### Изменение и удаление одной записи

Отдельное наименование можно посмотреть, изменить и удалить по его идентификатору, но работает это только с записями текущей компании. Глобальные наборы через этот механизм недоступны: попытка обратиться к ним по идентификатору отвечает «не найдено», хотя в общем списке они видны.

<Warning>
  При изменении отдельной записи смена ключа переименования или языка на пару, которая у этой компании уже занята, не отсекается заранее понятным сообщением — сохранение обрывается ошибкой на уровне базы. Безопаснее менять наименования через общий список, где работает режим «создать или обновить».
</Warning>

Удаление записи компании — это и есть «сброс к значению по умолчанию»: после удаления в общем списке снова появляется глобальный набор соответствующего типа компании (если он существует).

<Note>
  Отдельной кнопки «вернуть исходное название» в логике нет. Возврат к умолчанию — это именно удаление собственной записи.
</Note>

## Наименования по умолчанию

Помимо общего списка задумана отдельная выдача значений по умолчанию: она возвращает все глобальные наборы — без учёта типа компании и без учёта языка — как справочник «к чему можно вернуться», и по замыслу открыта любому авторизованному пользователю, а не только сотрудникам компании.

<Warning>
  На практике эта выдача недостижима: её адрес объявлен позже адреса отдельного наименования и выглядит для маршрутизатора как обращение к записи, у которой вместо номера стоит слово. Запрос уходит в обработчик одной записи и завершается ошибкой, а не списком значений по умолчанию. Опираться на неё в интерфейсе нельзя.
</Warning>

## Права доступа

| Действие                                                | Кому доступно                                                                  |
| ------------------------------------------------------- | ------------------------------------------------------------------------------ |
| Просмотр списка наименований, просмотр отдельной записи | Сотрудникам компании и субарендаторам                                          |
| Сохранение, изменение, удаление наименований            | Только пользователю с правами владельца компании                               |
| Просмотр наименований по умолчанию                      | По замыслу — любому авторизованному пользователю (фактически адрес недоступен) |

## Управление со стороны платформы

В административной панели переименования разложены на два раздела, работающих поверх одних и тех же данных.

**Глобальные наименования** — раздел платформы. В нём видны только записи без компании, поле компании в форме отсутствует и всегда остаётся пустым, зато можно выбрать типы компаний, которым набор предназначен, и увидеть их перечень в списке. Есть фильтр по ключу переименования. Формы слова сгруппированы в два блока — падежи единственного и множественного числа.

**Наименования компании** — раздел для разбора конкретных ситуаций. В нём видны только записи с указанной компанией, компанию можно выбрать через поиск, а список фильтруется по компании (фильтра по ключу здесь нет). Набор полей тот же, что и в глобальном разделе.

<Warning>
  Глобальный набор без указанных типов компаний не попадёт ни в один список компаний: отбор глобальных записей идёт строго по типу компании. Такая запись останется видимой только в административной панели.
</Warning>

## Границы применения

* Наименования не кэшируются, в отличие от значений настроек компании: изменение видно при следующем обращении к списку, дополнительного сброса кэша не требуется.
* Значения хранятся в общей части базы и связаны с компанией ссылкой, поэтому переименования одинаково доступны всем пользователям компании и не зависят от того, с каким набором данных компании идёт работа.
* Система нигде не подставляет эти названия за клиента: серверная часть сама по-прежнему оперирует исходными сущностями и статусами, а подстановка нужных падежных форм в тексты — задача интерфейса, который получает наименования из общего списка.

## Подводные камни

<Warning>
  **Выдача значений по умолчанию фактически недоступна.** Её адрес объявлен после адреса отдельного наименования и выглядит для системы как обращение к записи, у которой вместо номера стоит слово. Запрос уходит в обработчик одной записи и обрывается ошибкой, а не списком умолчаний, — строить на этой выдаче интерфейс нельзя.
</Warning>

<Warning>
  **Язык теряется при сборке списка.**

  * Записи сворачиваются только по ключу переименования, без учёта языка, и выбрать язык при запросе нельзя.
  * Если по одному ключу заведены и русский, и английский наборы, в выдачу попадёт лишь один из них.
  * Собственная запись компании на одном языке перекроет глобальную запись на другом.
</Warning>

<Warning>
  **Правка отдельной записи может оборваться технической ошибкой.** Смена ключа переименования или языка на пару, которая у компании уже занята, заранее не проверяется: вместо понятного сообщения о конфликте сохранение прерывается ошибкой базы. Через общий список, где работает режим «создать или обновить», такой ситуации не возникает.
</Warning>

<Warning>
  **Глобальную строку из списка нельзя изменить по её идентификатору.** В общем списке видны идентификаторы глобальных наборов, но обращение к отдельному наименованию работает только с записями текущей компании — правка или удаление такой строки отвечает «не найдено». Чтобы перекрыть глобальное значение, нужно сохранить новую запись компании через общий список.
</Warning>

Менее критичные особенности:

* Компания без указанного типа бизнеса не получает ни одного глобального набора: отбор умолчаний идёт строго по типу компании, поэтому в списке будут только те наименования, которые компания завела сама.
* Ограничение уникальности «компания + язык + ключ» распространяется только на записи компании. Платформа может завести несколько глобальных записей на один ключ и язык, и тогда в списке компании победит непредсказуемая из них — порядок среди глобальных записей не задан.
* Все падежные формы необязательны, включая базовую именительную: наименование можно сохранить с пустыми полями, и система не достроит недостающие формы и не предупредит об этом.
* Глобальный набор, у которого не указаны типы компаний, не увидит ни одна компания — он останется доступен только в административной панели.
* Список языков ограничен языками системы — русским и английским; завести наименование на другом языке нельзя.
* В разделе наименований компании административной панели фильтр по ключу переименования объявлен, но перекрыт фильтром по компании, поэтому доступен только отбор по компании. В глобальном разделе фильтр по ключу работает.

<Info>
  Что полезно помнить о поведении раздела:

  * Сохранение через общий список всегда отвечает статусом «создано», даже когда фактически обновило уже существующую запись компании.
  * Возврат к названию по умолчанию выполняется удалением собственной записи компании: отдельного действия «сбросить» нет, а после удаления в списке снова появляется глобальный набор соответствующего типа компании.
  * Читать наименования могут сотрудники компании и субарендаторы, изменять — только пользователь с правами владельца компании. Выдача значений по умолчанию по правам открыта любому авторизованному пользователю, но её адрес недоступен из-за порядка объявления адресов.
  * Наименования не кэшируются: список каждый раз читается из базы, тогда как значения настроек компании обслуживаются кэшем со сбросом при изменении. Поэтому переименование видно сразу и не требует сброса кэша.
  * В разделе глобальных наборов административной панели поле компании в форму не выводится и остаётся пустым, поэтому создать через него переопределение для конкретной компании невозможно — для этого есть отдельный раздел наименований компании.
  * Серверная часть системы нигде не подставляет заданные наименования сама: данные о переименованиях читаются и пишутся только этим разделом настроек, а внутренние сущности и статусы аренды остаются прежними.
  * Список наименований и выдача значений по умолчанию отдаются целиком, без постраничной разбивки.
</Info>

## Связанные страницы

<CardGroup cols={2}>
  <Card title="Глоссарий: Переименование сущностей" icon="book" href="/ru/logic/settings/labels-glossary">
    Полный перечень полей записи наименования, ключей переименования и падежных форм.
  </Card>

  <Card title="Настройки компании" icon="sliders" href="/ru/logic/settings">
    Обзорная страница модуля: из чего складываются настройки компании и как они связаны между собой.
  </Card>

  <Card title="Реестр настроек компании" icon="sliders" href="/ru/logic/settings/config">
    Полный перечень параметров компании: что можно включить или выключить, какие значения стоят по умолчанию и как настройки читаются и сохраняются.
  </Card>

  <Card title="Хранение и кэш настроек" icon="database" href="/ru/logic/settings/storage-cache">
    Как значение настройки попадает в базу, как оно кэшируется по компаниям и почему изменение настройки сбрасывает кэш целиком.
  </Card>

  <Card title="Дополнительные поля" icon="list-check" href="/ru/logic/settings/custom-fields">
    Собственные поля компании для клиентов, инвентаря, аренд и других справочников: типы, обязательность, отображение в таблице и фильтрах.
  </Card>

  <Card title="Настройки таблиц" icon="table-columns" href="/ru/logic/settings/tables">
    Сохранённый состав, порядок и ширина колонок для таблиц интерфейса — отдельно по каждой таблице компании.
  </Card>

  <Card title="Промо-баннеры" icon="bullhorn" href="/ru/logic/settings/promo">
    Показ рекламных и информационных баннеров платформы внутри системы: частота показа, отметка о просмотре и исключение компаний.
  </Card>

  <Card title="Сквозная автонумерация" icon="hashtag" href="/ru/logic/settings/counters">
    Общий счётчик компании, из которого берутся номера клиентов, артикулы создаваемых единиц инвентаря и номера документов.
  </Card>

  <Card title="Настройки в админ-панели" icon="screwdriver-wrench" href="/ru/logic/settings/admin">
    Служебный экран платформы для просмотра и правки настроек конкретной компании со сбросом значений к умолчанию.
  </Card>
</CardGroup>
