# v1.13.0

### **Авторизация** 

#### **Изменена зависимость регистра в логине пользователя**

Теперь логин при авторизации будет **приводиться к единому виду**. Например: `test`, `Test`, `TEST` — все значения нормализуются к одному значению. Это уменьшает процент "ложных" отказов при входе из-за раскладки/копипаста/привычек набора.

<p class="callout warning">Если в базе исторически существовали учётные записи, отличающиеся **только регистром** (например, `test` и `Test`), система автоматически переименует одну из записей, добавив префикс `d1_`, `d2_` и т.п., чтобы обе учётки остались различимыми и доступными.</p>

#### **Проверка сложности пароля при регистрации пользователя**

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

Базовые требования: **от 8 символов**, наличие **строчных и прописных** букв, а также **символов** (спецзнаки). При несоответствии правилам возвращается ошибка — пароль не принимается.

[![Снимок экрана 2026-02-09 в 23.22.18.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/snimok-ekrana-2026-02-09-v-23-22-18.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/snimok-ekrana-2026-02-09-v-23-22-18.png)

### **Менеджер проектов**

#### **Создание автодокументации по проекту** 

Добавлена функция, которая формирует **единый файл-отчёт по проекту.** Документ собирается из ключевых частей проекта и даёт "снимок" конфигурации: страницы и их параметры/видимость, визуализации, источники данных, модели данных, ограничения RLS и скрипт загрузки. Удобно для ревью, передачи проекта, аудита и быстрого погружения без ручного обхода настроек.

Пример части отчета:

[![Снимок экрана 2026-02-09 в 23.26.09.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/snimok-ekrana-2026-02-09-v-23-26-09.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/snimok-ekrana-2026-02-09-v-23-26-09.png)

<span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

Документ собирается **по разделам** (в фиксированном порядке), чтобы его можно было читать как техпаспорт проекта

- **Страницы проекта** — список страниц, размеры, фон (ссылка), видимость (скрыто/открыто), ограничения на уровне страницы (PLS) и ID. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- **Визуализации проекта** — по каждой странице отдельная таблица с виджетами: тип, название, координаты/слой (Z), размеры, видимость, блокировка, ID, модель данных и итоговый SQL (или отметка про виртуальные дан
- **Источники данных** — список источников, подключённые таблицы, статус задания на обновление (активно/неактивно) и расписание (cron-строка).
- **Модели данных** — связи внутри каждой модели: таблица/поле → тип join → таблица/поле. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

- **Ограничения RLS** — правила, субъект (пользователь/группа), на какие модели распространяется, переменные/значения и статус (активно/неактивно). <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- **Скрипт загрузки** — фиксируется текущая логика загрузки данных проекта. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

<p class="callout info">Доступ к автодокументации открыт только ролям **Админ** и **Разработчик**.</p>

#### **Описание версии проекта**

В версии проекта появилось поле для **короткого описания изменений** — чтобы история была читаемой не только по дате/автору, но и по смыслу. Комментарий отображается в списке версий и помогает быстрее понять, что именно менялось при откате/анализе изменений.

[![Frame 2087.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/frame-2087.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/frame-2087.png)

<span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

<p class="callout warning">Редактировать/создавать комментарий может только **автор изменений** (кнопка доступна только ему). Если автор у версии не указан — возможность оставить комментарий доступна пользователям с правами управления проектом. Текст показывается в строке ограниченно, полный — во всплывающей подсказке. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span></p>

#### **Уведомление об окончании лицензии**

При входе в систему показывается предупреждение, если до окончания лицензии (в т.ч. "на публикации") осталось **меньше 15 дней**. Это снижает риск внезапной остановки работы из-за просроченного ключа и заранее направляет пользователя к правильному действию (продление/обращение к администратору). <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

Дополнительно в карточке/ячейке пользователя отображается роль и количество дней до окончания, а при критическом сроке появляется заметный индикатор с тултипом. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

#### **[![Frame 2088.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/frame-2088.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/frame-2088.png)**

### **Конструктор дашбордов** 

#### **Экспорт проекта в PDF**

Добавлена выгрузка проекта в **единый PDF-файл** (в том числе из нескольких страниц). Система формирует PDF последовательно по страницам проекта, сохраняя **реальные размеры каждой страницы**. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

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

[![Frame 2089.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/frame-2089.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/frame-2089.png)

<p class="callout warning">Опция отправки на почту доступна для пользователя, чей email внесен в сведения об учетной записи. </p>

#### **Режим презентации при просмотре проекта**

Добавлен режим презентации для просмотра дашборда в формате "слайдов" — с полноэкранным отображением и автопереключением страниц.

- **Запуск/остановка:** на верхней панели справа (рядом с профилем/чатом) доступна кнопка **Play** для запуска и **Stop** для завершения режима. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- **Настройка интервала:** при запуске задаётся время между переходами в секундах (по умолчанию **60 сек**). Интервал **один общий** для всего показа — нельзя задавать разное время для разных страниц. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- **Последовательность страниц:** страницы переключаются **строго по порядку в проекте**. Управлять сценарием показа можно только перестановкой страниц в структуре проекта. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- **Логика таймера:** при переходе на другую страницу (включая ручной) отсчёт таймера **начинается заново**, чтобы переключения были предсказуемыми. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- **Доступность:** режим доступен в том числе для роли **Зритель** и при активации переводит просмотр в **полноэкранный** режим.

[![Frame 2090.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/frame-2090.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/frame-2090.png)

#### **Авторефреш страницы** 

Добавлено автообновление данных без перезагрузки UI: по таймеру выполняется запрос данных через стандартный запрос `get_data`. Интервал задаётся в секундах, минимально допустимый — **60 сек** (если указать меньше — значение автоматически поднимается до 60). <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

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

### **Диспетчер данных**

#### **Коннектор к Битрикс** 

Добавлен источник **Bitrix24**, чтобы забирать данные из вашей системы и использовать их в проектах без ручных выгрузок и промежуточных файлов. Поддерживаются основные сущности CRM (**Сделки, Лиды, Контакты, Компании, Коммерческие предложения**), а также данные из **Задач** и список **бизнес-процессов**. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

Подключение работает через вебхук Bitrix24: вы указываете URL подключения, после чего система проверяет доступ, даёт **тестовое подключение** и **предпросмотр результата** — можно увидеть, какие данные вернутся, прежде чем создавать источник.

[![Frame 2091 (1).png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/frame-2091-1.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/frame-2091-1.png)

<span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

<p class="callout info">Важно про ограничения Bitrix24: у API есть лимиты по частоте запросов и по "ресурсоёмкости" отдельных методов. Поэтому загрузка выполняется **пакетами** и с контролем темпа, а при превышении лимита система возвращает понятную ошибку по коду Bitrix (например, `Query_limit_exceeded`)</p>

#### **Многопоточная загрузка**

Добавлен режим многопоточной загрузки для ускорения импорта больших объёмов данных (файлы от **1 млн строк** и крупные таблицы). Система разбивает загрузку на параллельные части и собирает результат в одну таблицу — это сокращает время ожидания и делает регулярные обновления на больших данных практичными. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

Ключевой принцип: чтобы делить данные на потоки безопасно, нужно поле (или набор полей), по которому строки **однозначно разделяются** между потоками. Перед запуском система анализирует таблицы и предлагает подходящие столбцы для разделения (а где это невозможно — помечает как неподходящее). <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

Дальше вы выбираете вариант:

- использовать рекомендованное поле/набор полей,
- либо оставить как есть — тогда загрузка пойдёт в один поток для этой таблицы.

[![Modal (1).png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/modal-1.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/modal-1.png)

#### **Автокомплит в REST API**

В редакторе REST API появился автокомплит для **типовых параметров** в `body`. Это ускоряет сборку запросов и снижает ошибки в названиях ключей — особенно когда запросы собираются вручную. <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

Примеры подсказок, которые теперь подставляются из списка:

<div id="bkmrk-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D1%8B"><div class="flex max-w-full flex-col grow"><div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&]:mt-1" data-message-author-role="assistant" data-message-id="baf0562e-88c3-4c03-b44f-30af18da222e" data-message-model-slug="gpt-5-2-thinking" dir="auto"><div class="flex w-full flex-col gap-1 empty:hidden first:pt-[1px]"><div class="markdown prose dark:prose-invert w-full wrap-break-word light markdown-new-styling">- авторизация и токены: `access_token`, `authorization`, `token`, `refresh_token`, `client_id`, `client_secret` <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- пагинация/лимиты: `limit`, `offset`, `page`, `page_size` <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- фильтры/сортировка: `filter`, `where`, `sort`, `order` <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>
- идентификаторы/метаданные: `id`, `user_id`, `request_id`, `created_at`, `updated_at` <span class="" data-state="closed"><span class="relative inline-flex items-center"><button class="ms-1 flex h-[25px] text-[10px] leading-[13px] rounded-xl corner-superellipse/1.1 items-center justify-center gap-1 px-2 relative text-token-text-secondary! hover:text-token-text-primary! hover:bg-token-bg-secondary dark:bg-token-main-surface-secondary dark:hover:bg-token-bg-secondary bg-[#f4f4f4] "><svg aria-hidden="true" class="h-[16px] w-[16px] object-contain text-token-text-primary! flex-none icon-sm" height="20" width="20" xmlns="http://www.w3.org/2000/svg"></svg></button></span></span>

</div></div></div></div></div>### **Баги и мелкие фичи**

#### **Выбор типа календаря**

<div id="bkmrk-%D0%A1-%D0%B2%D0%B2%D0%BE%D0%B4%D0%BE%D0%BC-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9-%D0%B2%D0%B5%D1%80%D1%81%D0%B8">В настройках календаря добавлена секция **«Тип»** с переключателем **«Компактный / Расширенный»**. Это возвращает возможность использовать компактный вид после внедрения новой версии календаря и позволяет выбрать формат отображения под задачу (компактный календарь vs расширенный календарь).  
</div>[![Frame 2092.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/frame-2092.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/frame-2092.png)

<div id="bkmrk--12"></div><p class="callout info">По умолчанию установлен **«Компактный»**.</p>

#### **Проверка уникальности имени источника**

Добавлена проверка уникальности названия при создании источника. Система заранее проверяет, занято ли имя, и показывает понятный результат проверки:

- если источник с таким именем уже существует и доступен пользователю — отображается сообщение: **«Источник с таким именем уже существует»**;
- если источник существует, но у пользователя нет прав на его просмотр/редактирование — отображается сообщение: **«Источник с таким именем уже существует, но у вас недостаточно прав на его просмотр и редактирование»**.

#### **Редирект скопированного/перемещенного проекта в указанный поток**

После копирования или перемещения система автоматически перенаправляет пользователя в указанный поток.

[![Frame 2093.png](https://book.winsolutions.ru/uploads/images/gallery/2026-02/scaled-1680-/frame-2093.png)](https://book.winsolutions.ru/uploads/images/gallery/2026-02/frame-2093.png)