Что можно переименовать
Ключ переименования — это закрытый список из шестнадцати позиций: восемь справочных сущностей и восемь статусов аренды.Список ключей фиксирован на уровне системы. Добавить в него новую сущность из интерфейса нельзя — переименовать можно только то, что уже перечислено выше.
Модель данных
Одна запись наименования — это связка «ключ переименования + язык» и двенадцать форм слова: шесть падежей единственного числа и шесть падежей множественного.Идентификация и область действия
Формы слова
Все двенадцать форм необязательны: запись сохранится, даже если заполнена только часть падежей или не заполнено ничего. Система не достраивает недостающие формы автоматически и не проверяет их согласованность — что записали, то интерфейс и покажет.
Два уровня: глобальные наборы и наименования компании
Наименования живут в двух слоях. Глобальные наименования заводит платформа. У такой записи не указана компания, зато перечислены типы компаний, которым она предназначена. Это заготовки «из коробки»: например, для типа «прокат самокатов» платформа заранее описывает инвентарь как «самокат» во всех падежах. Наименования компании — записи с указанной компанией. Они перекрывают глобальные значения для этой конкретной компании и ни на кого больше не влияют. Ограничение уникальности «компания + язык + ключ» действует только для записей компании: у одной компании не может быть двух наименований одного ключа на одном языке. Глобальные наборы этим правилом не ограничены — платформа технически может завести несколько записей на один ключ и язык.Копирования при подключении компании не происходит: глобальные наборы не переносятся в компанию при регистрации. Компания видит их «сквозь» свои записи, а собственная запись появляется только тогда, когда компания сама что-то переименует.
Как формируется итоговый список
Выдача списка наименований работает так:- Отбираются записи, принадлежащие текущей компании.
- К ним добавляются глобальные наборы, привязанные к типу текущей компании. Если у компании тип не указан, глобальные наборы в отбор не попадают вовсе, и список состоит только из собственных записей.
- Отобранное сортируется так, чтобы записи без компании шли первыми, а записи компании — следом.
- Результат сворачивается по ключу переименования: на каждый ключ остаётся одна запись, и побеждает та, что встретилась последней, — то есть наименование компании.
Сохранение: «создать или обновить»
Сохранение нового наименования устроено как идемпотентная операция по паре «ключ переименования + язык» в рамках текущей компании:- если у компании такой записи ещё нет — она создаётся;
- если запись уже есть — у неё обновляются переданные формы.
Изменение и удаление одной записи
Отдельное наименование можно посмотреть, изменить и удалить по его идентификатору, но работает это только с записями текущей компании. Глобальные наборы через этот механизм недоступны: попытка обратиться к ним по идентификатору отвечает «не найдено», хотя в общем списке они видны. Удаление записи компании — это и есть «сброс к значению по умолчанию»: после удаления в общем списке снова появляется глобальный набор соответствующего типа компании (если он существует).Отдельной кнопки «вернуть исходное название» в логике нет. Возврат к умолчанию — это именно удаление собственной записи.
Наименования по умолчанию
Помимо общего списка задумана отдельная выдача значений по умолчанию: она возвращает все глобальные наборы — без учёта типа компании и без учёта языка — как справочник «к чему можно вернуться», и по замыслу открыта любому авторизованному пользователю, а не только сотрудникам компании.Права доступа
Управление со стороны платформы
В административной панели переименования разложены на два раздела, работающих поверх одних и тех же данных. Глобальные наименования — раздел платформы. В нём видны только записи без компании, поле компании в форме отсутствует и всегда остаётся пустым, зато можно выбрать типы компаний, которым набор предназначен, и увидеть их перечень в списке. Есть фильтр по ключу переименования. Формы слова сгруппированы в два блока — падежи единственного и множественного числа. Наименования компании — раздел для разбора конкретных ситуаций. В нём видны только записи с указанной компанией, компанию можно выбрать через поиск, а список фильтруется по компании (фильтра по ключу здесь нет). Набор полей тот же, что и в глобальном разделе.Границы применения
- Наименования не кэшируются, в отличие от значений настроек компании: изменение видно при следующем обращении к списку, дополнительного сброса кэша не требуется.
- Значения хранятся в общей части базы и связаны с компанией ссылкой, поэтому переименования одинаково доступны всем пользователям компании и не зависят от того, с каким набором данных компании идёт работа.
- Система нигде не подставляет эти названия за клиента: серверная часть сама по-прежнему оперирует исходными сущностями и статусами, а подстановка нужных падежных форм в тексты — задача интерфейса, который получает наименования из общего списка.
Подводные камни
Менее критичные особенности:- Компания без указанного типа бизнеса не получает ни одного глобального набора: отбор умолчаний идёт строго по типу компании, поэтому в списке будут только те наименования, которые компания завела сама.
- Ограничение уникальности «компания + язык + ключ» распространяется только на записи компании. Платформа может завести несколько глобальных записей на один ключ и язык, и тогда в списке компании победит непредсказуемая из них — порядок среди глобальных записей не задан.
- Все падежные формы необязательны, включая базовую именительную: наименование можно сохранить с пустыми полями, и система не достроит недостающие формы и не предупредит об этом.
- Глобальный набор, у которого не указаны типы компаний, не увидит ни одна компания — он останется доступен только в административной панели.
- Список языков ограничен языками системы — русским и английским; завести наименование на другом языке нельзя.
- В разделе наименований компании административной панели фильтр по ключу переименования объявлен, но перекрыт фильтром по компании, поэтому доступен только отбор по компании. В глобальном разделе фильтр по ключу работает.
Что полезно помнить о поведении раздела:
- Сохранение через общий список всегда отвечает статусом «создано», даже когда фактически обновило уже существующую запись компании.
- Возврат к названию по умолчанию выполняется удалением собственной записи компании: отдельного действия «сбросить» нет, а после удаления в списке снова появляется глобальный набор соответствующего типа компании.
- Читать наименования могут сотрудники компании и субарендаторы, изменять — только пользователь с правами владельца компании. Выдача значений по умолчанию по правам открыта любому авторизованному пользователю, но её адрес недоступен из-за порядка объявления адресов.
- Наименования не кэшируются: список каждый раз читается из базы, тогда как значения настроек компании обслуживаются кэшем со сбросом при изменении. Поэтому переименование видно сразу и не требует сброса кэша.
- В разделе глобальных наборов административной панели поле компании в форму не выводится и остаётся пустым, поэтому создать через него переопределение для конкретной компании невозможно — для этого есть отдельный раздел наименований компании.
- Серверная часть системы нигде не подставляет заданные наименования сама: данные о переименованиях читаются и пишутся только этим разделом настроек, а внутренние сущности и статусы аренды остаются прежними.
- Список наименований и выдача значений по умолчанию отдаются целиком, без постраничной разбивки.
Связанные страницы
Глоссарий: Переименование сущностей
Полный перечень полей записи наименования, ключей переименования и падежных форм.
Настройки компании
Обзорная страница модуля: из чего складываются настройки компании и как они связаны между собой.
Реестр настроек компании
Полный перечень параметров компании: что можно включить или выключить, какие значения стоят по умолчанию и как настройки читаются и сохраняются.
Хранение и кэш настроек
Как значение настройки попадает в базу, как оно кэшируется по компаниям и почему изменение настройки сбрасывает кэш целиком.
Дополнительные поля
Собственные поля компании для клиентов, инвентаря, аренд и других справочников: типы, обязательность, отображение в таблице и фильтрах.
Настройки таблиц
Сохранённый состав, порядок и ширина колонок для таблиц интерфейса — отдельно по каждой таблице компании.
Промо-баннеры
Показ рекламных и информационных баннеров платформы внутри системы: частота показа, отметка о просмотре и исключение компаний.
Сквозная автонумерация
Общий счётчик компании, из которого берутся номера клиентов, артикулы создаваемых единиц инвентаря и номера документов.
Настройки в админ-панели
Служебный экран платформы для просмотра и правки настроек конкретной компании со сбросом значений к умолчанию.