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