> ## 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/storage-cache).

## Понятия

| Понятие                          | Значение                                                                                                                                                  |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Значение настройки компании      | Сохранённое значение одной настройки конкретной компании. Пара «компания + ключ» уникальна; ключи без записи работают на значении по умолчанию из реестра |
| Реестр настроек компании         | Словарь всех настроек системы: ключ → значение по умолчанию, служебная подпись и тип значения; через него же идёт чтение и запись значений компании       |
| Ленивый объект настроек          | Глобальная точка доступа к настройкам, которая инициализируется при первом обращении и не трогает базу на старте приложения                               |
| Хранилище настроек               | Слой, который читает и записывает значения настроек и поддерживает кэш по каждой компании                                                                 |
| Параметры модуля настроек        | Набор общих параметров самого модуля: реестр ключей, механизм хранения, префикс, время жизни кэша, секции и правила доступа                               |
| Поле сериализованного значения   | Тип поля, позволяющий положить в одну колонку значение любого вида — список, словарь, длительность                                                        |
| Безопасная работа с кэшем        | Обёртки над кэшем: при сбое кэша пишут предупреждение в журнал и не роняют запрос                                                                         |
| Подавление реакций на сохранение | Временное отключение обработчиков сохранения настроек на время массовой записи                                                                            |
| Обработчик сохранения настройки  | Реакция на сохранение настройки: кладёт новое значение в кэш в схеме своей компании                                                                       |
| Заглушка компании                | Объект, который подставляется вместо компании, когда работа идёт вне контекста конкретной компании                                                        |

## Модели и поля

### Значение настройки компании

*Сохранённое значение одной настройки конкретной компании. Пара «компания + ключ» уникальна; ключи без записи работают на значении по умолчанию из реестра.*

| Поле           | Тип                   | Описание                                                                             |
| -------------- | --------------------- | ------------------------------------------------------------------------------------ |
| Идентификатор  | число                 | Первичный ключ строки                                                                |
| Компания       | связь                 | Владелец значения настройки                                                          |
| Ключ настройки | текст                 | Имя параметра из реестра настроек                                                    |
| Значение       | произвольное значение | Хранится в сериализованном виде, поэтому поддерживает списки, словари и длительности |

### Реестр настроек компании

*Словарь всех настроек системы: ключ → значение по умолчанию, служебная подпись и тип значения; через него же идёт чтение и запись значений компании. Задаётся в конфигурации модуля и может быть переопределён на уровне проекта; значение по умолчанию действует, пока компания не сохранила своё.*

**Реквизиты и валюта**

| Поле                 | Тип   | Описание                                                      |
| -------------------- | ----- | ------------------------------------------------------------- |
| Название организации | текст | Название компании, подставляется в документы и печатные формы |
| Адрес организации    | текст | Юридический или фактический адрес компании                    |
| Валюта               | текст | Символ валюты для отображения сумм, по умолчанию ₸            |
| Валюта перед суммой  | флаг  | Ставить символ валюты слева от суммы, а не справа             |
| Язык компании        | текст | Язык интерфейса и документов, по умолчанию русский            |
| ИИН компании         | текст | Индивидуальный идентификационный номер                        |
| БИН компании         | текст | Бизнес-идентификационный номер юридического лица              |
| Банк                 | текст | Название обслуживающего банка                                 |
| IBAN                 | текст | Международный номер банковского счёта                         |
| БИК                  | текст | Банковский идентификационный код                              |
| Номер счёта          | текст | Расчётный счёт компании                                       |

**Доступные сущности**

| Поле                        | Тип            | Описание                                                                    |
| --------------------------- | -------------- | --------------------------------------------------------------------------- |
| Подготовка на точке проката | флаг           | Признак для интерфейса: отдельный этап подготовки инвентаря на точке        |
| Продукты                    | флаг           | Включает работу с продуктами (группами инвентаря)                           |
| Доступность продуктов       | флаг           | Учитывать остаток доступных продуктов при подборе                           |
| Комплекты                   | флаг           | Включает работу с комплектами                                               |
| Альтернативные комплекты    | флаг           | Разрешает подбор замен внутри комплекта                                     |
| Услуги                      | флаг           | Включает продажу и добавление услуг                                         |
| Единицы инвентаря           | флаг           | Включает поштучный учёт единиц                                              |
| Автомобильный инвентарь     | флаг           | Включает автомобильные атрибуты единиц                                      |
| Буфер между арендами        | число (минуты) | Технологический перерыв между арендами одной единицы при проверке занятости |
| Уникальный номер единицы    | флаг           | Требовать собственный уникальный номер у каждой единицы                     |

**Инвентаризация**

| Поле                             | Тип         | Описание                                                 |
| -------------------------------- | ----------- | -------------------------------------------------------- |
| Периодичность инвентаризации     | число (дни) | Через сколько дней инвентаризация считается просроченной |
| Инвентаризация перед выдачей     | флаг        | Требовать осмотр до выдачи инвентаря                     |
| Инвентаризация при приёме        | флаг        | Требовать осмотр при возврате инвентаря                  |
| Фото и видео при осмотре         | флаг        | Обязательные вложения при инвентаризации                 |
| Медиа при осмотре на компьютере  | флаг        | Разрешает прикреплять медиа из десктопной версии         |
| Инвентаризация в карточке аренды | флаг        | Проводить осмотр прямо из аренды                         |

**Доставки и интеграции**

| Поле                     | Тип  | Описание                                                         |
| ------------------------ | ---- | ---------------------------------------------------------------- |
| Субаренда                | флаг | Включает работу с чужим инвентарём и расчёты с субарендодателями |
| Подтверждение доставки   | флаг | Доставку нужно подтвердить курьером или менеджером               |
| Доставка стартует аренду | флаг | Завершение доставки переводит аренду в прокат                    |
| Забор завершает аренду   | флаг | Завершение забора закрывает аренду                               |
| Интеграция с автобазой   | флаг | Подключение проверки автомобилей по госномеру                    |
| Карты Wallet             | флаг | Выдача клиентских карт Apple/Google Wallet                       |
| Интеграция WhatsApp      | флаг | Подключение мессенджера к уведомлениям                           |

**Транзакции**

| Поле                           | Тип  | Описание                                   |
| ------------------------------ | ---- | ------------------------------------------ |
| Своя дата операции             | флаг | Разрешает указывать дату платежа вручную   |
| Переплата                      | флаг | Разрешает принимать сумму больше долга     |
| График платежей                | флаг | Включает рассрочку и график по аренде      |
| Первоначальный взнос в графике | флаг | Первый платёж графика выделяется как взнос |
| Чеки по аренде                 | флаг | Формирование фискального чека по аренде    |

**Цвета статусов аренды**

| Поле                      | Тип  | Описание                                         |
| ------------------------- | ---- | ------------------------------------------------ |
| Цвет статуса «Запрос»     | цвет | HEX-код подсветки статуса в таблицах и календаре |
| Цвет статуса «Бронь»      | цвет | HEX-код подсветки забронированных аренд          |
| Цвет статуса «Должник»    | цвет | HEX-код подсветки аренд с задолженностью         |
| Цвет статуса «В прокате»  | цвет | HEX-код подсветки активных аренд                 |
| Цвет статуса «Отменена»   | цвет | HEX-код подсветки отменённых аренд               |
| Цвет статуса «Завершена»  | цвет | HEX-код подсветки завершённых аренд              |
| Цвет статуса «Просрочена» | цвет | HEX-код подсветки аренд с превышением срока      |

**Поведение аренды**

| Поле                          | Тип          | Описание                                                                                |
| ----------------------------- | ------------ | --------------------------------------------------------------------------------------- |
| Черновики аренд               | флаг         | Разрешает сохранять незавершённую аренду черновиком                                     |
| Бронирование                  | флаг         | Включает этап брони до выдачи                                                           |
| Этап сбора                    | флаг         | Включает отдельный этап сбора (забора) инвентаря                                        |
| Развёрнутая таблица аренд     | флаг         | Показывать позиции аренды прямо в списке                                                |
| Агенты в аренде               | флаг         | Включает поле агента и вознаграждение по нему                                           |
| Процент агента                | число        | Процент вознаграждения агента по умолчанию                                              |
| Гибкая аренда                 | флаг         | Разрешает разные сроки у позиций одной аренды                                           |
| Клиент в аренде               | флаг         | Требовать указание клиента в аренде                                                     |
| Отметки клиента для фильтра   | список       | Набор отметок клиента, по которым фильтруются аренды                                    |
| Единицы в аренде              | флаг         | Разрешает добавлять конкретные единицы                                                  |
| Продукты в аренде             | флаг         | Разрешает добавлять продукты без выбора единицы                                         |
| Услуги в аренде               | флаг         | Разрешает добавлять услуги в аренду                                                     |
| Тип фильтрации по датам       | текст        | По какой границе периода фильтруются аренды: по началу, по окончанию или комбинированно |
| Округление штрафа             | число        | Шаг округления рассчитанного штрафа                                                     |
| Льготный период до штрафа     | длительность | Опоздание в пределах этого времени не штрафуется                                        |
| Залоги                        | флаг         | Включает приём и возврат залога по аренде                                               |
| Пауза аренды                  | флаг         | Разрешает приостанавливать начисление по аренде                                         |
| Детализация по позициям       | флаг         | Показывать расчёт по каждой позиции аренды                                              |
| Контроль занятости            | флаг         | Запрещать пересечение аренд по одной единице                                            |
| Скидка по позиции             | флаг         | Разрешает скидку на отдельную позицию аренды                                            |
| Срок аренды по умолчанию      | длительность | Предзаполняемая продолжительность новой аренды                                          |
| Автоархивация аренд           | флаг         | Завершённые аренды уходят в архив автоматически                                         |
| Отсрочка автоархивации        | длительность | Сколько ждать после завершения перед архивацией                                         |
| Фильтр аренд по умолчанию     | текст        | Предустановленный фильтр списка аренд                                                   |
| Точка выдачи                  | флаг         | Указывать точку проката, откуда выдают инвентарь                                        |
| Точка возврата                | флаг         | Разрешает вернуть инвентарь на другую точку                                             |
| Автоучёт дней недели          | флаг         | Автоматически учитывать рабочие дни при расчёте срока                                   |
| Периоды аренды                | флаг         | Включает работу с периодами внутри аренды                                               |
| Объединять прокат и просрочку | флаг         | Показывать просроченные аренды вместе с активными                                       |
| Одна единица на аренду        | флаг         | Ограничивает аренду одной единицей инвентаря                                            |
| Автопродление аренды          | флаг         | Аренда продлевается автоматически по окончании срока                                    |

**Штрафы и смены**

| Поле                           | Тип          | Описание                                                                                              |
| ------------------------------ | ------------ | ----------------------------------------------------------------------------------------------------- |
| Штрафы                         | флаг         | Включает начисление штрафов за просрочку                                                              |
| Тип штрафа                     | текст        | Начисление от момента просрочки или за интервал (см. «Тип штрафа»)                                    |
| Штраф после возврата           | флаг         | Начислять штраф только после фактического приёма                                                      |
| Доступ менеджера к штрафам     | флаг         | Разрешает менеджеру менять штраф                                                                      |
| Штрафной интервал по умолчанию | длительность | Базовый шаг начисления штрафа                                                                         |
| Варианты штрафов               | список       | Готовые пресеты штрафа: название и длительность интервала                                             |
| Единая выдача                  | флаг         | Выдавать всю аренду одним действием, без разбивки по позициям                                         |
| Единый приём                   | флаг         | Принимать всю аренду одним действием                                                                  |
| Рабочие смены                  | флаг         | Включает учёт смен сотрудников                                                                        |
| Приоритет подбора инвентаря    | текст        | Что предлагать первым: свой инвентарь, субарендный или всё подряд (см. «Приоритет подбора инвентаря») |

**Проценты менеджеров**

| Поле                | Тип             | Описание                                     |
| ------------------- | --------------- | -------------------------------------------- |
| Процент за создание | число (2 знака) | Вознаграждение менеджеру за создание аренды  |
| Процент за сбор     | число (2 знака) | Вознаграждение за этап сбора инвентаря       |
| Процент за бронь    | число (2 знака) | Вознаграждение за оформление брони           |
| Процент за выдачу   | число (2 знака) | Вознаграждение за выдачу инвентаря           |
| Процент за приём    | число (2 знака) | Вознаграждение за приём инвентаря            |
| Процент за доставку | число (2 знака) | Вознаграждение курьеру за доставку по аренде |

**Метрики**

| Поле                      | Тип    | Описание                                                 |
| ------------------------- | ------ | -------------------------------------------------------- |
| Статусы аренд для метрик  | список | Какие статусы аренды учитываются в отчётах и начислениях |
| Статусы оплаты для метрик | список | Какие статусы оплаты попадают в отчёты                   |
| Типы позиций для выручки  | список | Какие типы позиций считаются арендной выручкой           |

**Бонусы и налог**

| Поле                             | Тип             | Описание                                     |
| -------------------------------- | --------------- | -------------------------------------------- |
| Бонусы                           | флаг            | Включает бонусную программу для клиентов     |
| Процент начисления бонусов       | число (2 знака) | Доля суммы аренды, начисляемая бонусами      |
| Фиксированное начисление бонусов | число (2 знака) | Постоянная сумма бонусов за аренду           |
| Лимит списания бонусов           | число (2 знака) | Какую долю чека можно оплатить бонусами      |
| Налог                            | флаг            | Включает расчёт налога в суммах              |
| Ставка налога                    | число (2 знака) | Процент налога                               |
| Налог включён в цену             | флаг            | Налог входит в цену, а не добавляется сверху |

**Клиенты и документы**

| Поле                               | Тип             | Описание                                                                                     |
| ---------------------------------- | --------------- | -------------------------------------------------------------------------------------------- |
| Формат телефона                    | текст           | Маска ввода номера, по умолчанию +9-999-999-9999                                             |
| Паспорт клиента                    | флаг            | Требовать паспортные данные клиента                                                          |
| Скан паспорта                      | флаг            | Требовать прикреплённый скан документа                                                       |
| Длина ИИН                          | число           | Ожидаемое число символов в ИИН клиента, по умолчанию 12                                      |
| Лимит долга клиента                | число (2 знака) | Порог задолженности, после которого клиент блокируется                                       |
| Баланс Kaspi у клиента             | флаг            | Показывать платёжный баланс клиента                                                          |
| Режим тарификации документов       | текст           | Оплата за сообщение со ссылкой/кодом или за подписанный документ; меняется только платформой |
| Дополнительные поля справочников   | словарь         | Наборы кастомных полей по справочникам (клиенты, инвентарь, аренда и т. д.)                  |
| Секрет банковского разбора выписок | текст           | Служебный ключ разбора банковских уведомлений, через общий API настроек не отдаётся          |

**Раскладка карточки аренды**

| Поле                           | Тип     | Описание                                                                     |
| ------------------------------ | ------- | ---------------------------------------------------------------------------- |
| Левая колонка карточки аренды  | словарь | Ширина колонки и порядок блоков: информация, клиент, агент, даты, позиции    |
| Правая колонка карточки аренды | список  | Порядок блоков: документы, комментарии, залог, штраф, агент, медиа, доставки |

**Доступ к значениям**

| Поле                | Тип      | Описание                                                              |
| ------------------- | -------- | --------------------------------------------------------------------- |
| Чтение настройки    | операция | Возвращает сохранённое значение либо значение по умолчанию из реестра |
| Запись настройки    | операция | Сохраняет одно значение, ключ обязан быть в реестре                   |
| Массовое обновление | операция | Сохраняет сразу набор настроек одной пачкой                           |
| Перечень ключей     | метод    | Отдаёт список всех известных настроек                                 |
| Хранилище значений  | связь    | Бэкенд, отвечающий за чтение и запись значений                        |

**Описание ключа**

| Поле                  | Тип                  | Описание                                                                                   |
| --------------------- | -------------------- | ------------------------------------------------------------------------------------------ |
| Значение по умолчанию | значение любого типа | Первый элемент описания ключа; действует, пока компания не сохранила своё значение         |
| Подпись ключа         | текст                | Второй элемент описания: человекочитаемое название либо повтор имени ключа                 |
| Тип значения          | тип                  | Третий, необязательный элемент: текст, флаг, число, дробное, список, словарь, длительность |

Ранее в реестре были отдельные признаки доставки — уведомление о доставке по SMS и интеграция доставки с Wazzup; сейчас этих ключей нет.

### Ленивый объект настроек

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

| Поле                    | Тип   | Описание                                                 |
| ----------------------- | ----- | -------------------------------------------------------- |
| Первичная инициализация | метод | Создаёт объект доступа к настройкам при первом обращении |

### Хранилище настроек

*Читает и записывает значения настроек, поддерживая кэш по каждой компании. Кэш прогревается целиком на сутки; массовое сохранение и сохранение из админки сбрасывают кэш компании.*

**Операции**

| Поле                     | Тип      | Описание                                                       |
| ------------------------ | -------- | -------------------------------------------------------------- |
| Прочитать значение       | операция | Берёт из кэша, при промахе прогревает кэш и обращается к базе  |
| Прочитать набор значений | операция | Одним запросом достаёт сохранённые значения по списку ключей   |
| Сохранить значение       | операция | Пишет в базу и сразу обновляет кэш                             |
| Сохранить набор значений | операция | Пишет пачку значений, затем сбрасывает и заново прогревает кэш |

**Кэш**

| Поле               | Тип      | Описание                                                               |
| ------------------ | -------- | ---------------------------------------------------------------------- |
| Прогрев кэша       | операция | Загружает все настройки компании в кэш на сутки                        |
| Сброс кэша         | операция | Чистит кэш всех ключей компании и прогревает его заново                |
| Сброс по изменению | операция | Срабатывает при сохранении значения настройки вне массового обновления |

**Параметры**

| Поле                  | Тип             | Описание                                                                            |
| --------------------- | --------------- | ----------------------------------------------------------------------------------- |
| Префикс ключей        | текст           | Приставка ко всем ключам хранения, по умолчанию пустая                              |
| Время жизни кэша      | число (секунды) | По умолчанию сутки; нулевое значение полностью отключает предзаполнение             |
| Метка прогретого кэша | текст           | Служебный ключ, по которому видно, что все настройки компании уже разложены по кэшу |
| Добавление префикса   | метод           | Приклеивает общий префикс к имени ключа                                             |

### Параметры модуля настроек

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

**Параметры**

| Поле              | Тип                      | Описание                                                                                          |
| ----------------- | ------------------------ | ------------------------------------------------------------------------------------------------- |
| Реестр параметров | упорядоченный справочник | Перечень всех ключей с значением по умолчанию, кодом и типом — источник состава страницы настроек |
| Секции параметров | справочник               | Группировка ключей по блокам страницы настроек; по умолчанию пусто                                |

**Хранение**

| Поле                   | Тип   | Описание                                                                                  |
| ---------------------- | ----- | ----------------------------------------------------------------------------------------- |
| Механизм хранения      | текст | Путь к слою хранения, читающему и пишущему значения; по умолчанию хранение в базе с кэшем |
| Префикс ключа хранения | текст | Добавляется к ключу при чтении и записи значения; по умолчанию пустой                     |

**Кэш**

| Поле                     | Тип             | Описание                                                                                                         |
| ------------------------ | --------------- | ---------------------------------------------------------------------------------------------------------------- |
| Срок предзаполнения кэша | число (секунды) | Сутки по умолчанию: на это время весь набор значений компании прогревается в кэше; ноль отключает предзаполнение |

**Доступ**

| Поле                         | Тип  | Описание                                                                                             |
| ---------------------------- | ---- | ---------------------------------------------------------------------------------------------------- |
| Только для суперпользователя | флаг | Включён по умолчанию: правка и удаление настроек в админке доступны лишь суперпользователю платформы |

Ранее модуль имел собственные параметры подключения к кэш-серверу (класс подключения, адрес, префикс, срок жизни, версия формата хранения), список дополнительных полей и отключение проверки версии админки — сейчас эти параметры не используются.

### Поле сериализованного значения

*Тип поля, позволяющий положить в одну колонку значение любого вида. Надстройка над стандартным полем сериализации: без сжатия, фиксированная версия формата.*

| Поле                 | Тип   | Описание                                                                |
| -------------------- | ----- | ----------------------------------------------------------------------- |
| Сжатие               | флаг  | По умолчанию выключено                                                  |
| Версия формата       | число | Версия сериализации, по умолчанию 2                                     |
| Копирование значения | флаг  | Значение копируется перед сохранением, чтобы исходный объект не менялся |
| Редактируемость      | флаг  | Поле доступно для правки в админке                                      |

### Безопасная работа с кэшем

*Обёртки над кэшем: при сбое кэша пишут предупреждение в журнал и не роняют запрос. Все обращения модуля настроек к кэшу идут только через эти функции.*

**Обычные**

| Поле                       | Тип   | Описание                                                           |
| -------------------------- | ----- | ------------------------------------------------------------------ |
| Чтение значения            | метод | При ошибке возвращает значение по умолчанию                        |
| Запись значения            | метод | Возвращает признак успеха                                          |
| Запись, если ключа ещё нет | метод | Не перетирает существующее значение; при ошибке считается успешной |
| Удаление ключа             | метод | Убирает одно значение из кэша                                      |
| Пакетная запись            | метод | Кладёт сразу набор пар «ключ — значение»                           |
| Пакетное удаление          | метод | Используется при полном сбросе кэша компании                       |

**Асинхронные**

| Поле                               | Тип   | Описание                                  |
| ---------------------------------- | ----- | ----------------------------------------- |
| Асинхронное чтение                 | метод | Асинхронный вариант чтения значения       |
| Асинхронная запись                 | метод | Асинхронный вариант записи значения       |
| Асинхронная запись, если ключа нет | метод | Асинхронный вариант записи без перезаписи |
| Асинхронное удаление               | метод | Асинхронный вариант удаления ключа        |

### Подавление реакций на сохранение

*Временное отключение обработчиков сохранения настроек на время массовой записи. Нужно, чтобы кэш не сбрасывался на каждой строке; после записи кэш сбрасывается один раз целиком.*

| Поле                | Тип   | Описание                                                                                                  |
| ------------------- | ----- | --------------------------------------------------------------------------------------------------------- |
| Признак подавления  | флаг  | Переменная контекста, по умолчанию выключена; действует только внутри текущего запроса или фоновой задачи |
| Проверка подавления | метод | Обработчики спрашивают её перед тем, как что-то делать                                                    |

### Обработчик сохранения настройки

*Реакция на сохранение настройки: кладёт новое значение в кэш в схеме своей компании.*

Не срабатывает при подавлении сигналов; пишет ключ без номера компании, поэтому основную инвалидацию делает сброс кэша в бэкенде.

### Заглушка компании

*Объект, который подставляется вместо компании, когда работа идёт вне контекста конкретной компании.*

При заглушке чтение настройки возвращает пусто, запись и прогрев кэша молча пропускаются.
