Перейти к содержанию

Диск: бизнес-логика

Обзор

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

Важно: домен disk описывает пользовательские сценарии и права. Низкоуровневое хранение/провайдеры детально лежат в домене files.

Предметная модель

1. Раздел диска

Система показывает пользователю системные разделы:

Раздел Описание
Мои файлы Личные файлы пользователя. Не видны другим, кроме прямых руководителей
Общие файлы Совместное использование. По умолчанию все сотрудники компании могут создавать папки и файлы (признак «Сотрудник компании» — в настройках профиля). Не отображается для не-сотрудников. Подпапки наследуют права родительской по умолчанию
Обмен файлами (с 2.263) Раздел доступен всем зарегистрированным пользователям, но доступ к файлам и папкам — только у владельца и администраторов. Владелец может предоставить доступ как сотрудникам, так и внешним пользователям. Используется для передачи файлов внешним
Файлы автоматизации Папки, привязанные к задачам через смарт-автоматизацию. Видны только сотрудникам компании с правами администратора. Содержит системную подпапку Export configurations для выгрузок конфигурации площадки
Файлы замещаемых Содержимое «Моих файлов» замещаемых сотрудников в подпапках. Отображается при наличии замещения
Файлы подчинённых Содержимое «Моих файлов» подчинённых в подпапках. Отображается у руководителей

2. Папка

Папка — базовый контейнер структуры диска.

  • хранится в FileStorageFolders
  • имеет владельца и иерархию
  • доступ к папке определяется правами пользователя/группы

3. Файл и версия

  • файл: FileStorageFiles
  • версии: FileStorageFileVersions

Пользователь работает с «файлом», но в модели всегда есть версия.

4. Связь с задачей и ДП

  • файл в задаче: FileStorageFileToTaskLinks
  • файл в ДП: FileStorageFileToExtParamLinks
  • связанная папка задачи: FileStorageFolderToTaskLinks

Ключевые бизнес-правила

1. Квота личного раздела

  • контролируется Settings.FileStorageUserPartitionQuota
  • при 0/null раздел «Мои файлы» скрывается

2. Привязка папки к задаче

  • выполняется смарт-действием
  • связанная папка формирует единое место хранения файлов задачи и файловых ДП

3. Наследование доступа

  • права к связанной папке формируются из прав к задаче
  • учитываются роли, группы, подписки, замещение

4. Логирование операций

Операции чтения/изменения файлов могут попадать в журнал FileActionsLog.

Границы домена

Что относится к disk

  • пользовательская навигация по папкам
  • действия с файлами/папками
  • доступность и права на уровне пользовательского UX
  • журнал действий с диском

Что относится к files

  • физическое хранение контента
  • провайдеры (MSSQL/S3)
  • форматы, конвертация, сжатие, внешние редакторы

Ссылки на Диск в комментариях задач

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

  • Нажатие на ссылку, ведущую на папку, открывает эту папку в разделе Диск.
  • Нажатие на ссылку, ведущую на файл, открывает боковую панель предварительного просмотра (если текущий контекст это поддерживает — например, в ленте или в карточке задачи).

Ссылки формируются автоматически, в том числе в ответах AI-ассистента Анфисы при упоминании документов и файлов из Диска.

Интерфейс Диска

Открытие

  • Из карточки задачи: тулбар → «Файлы» → «Диск» (открывается раздел, связанный с задачей).
  • Из меню сервисов в панели навигации (общий Диск).

Виды отображения

В правом верхнем углу — переключатель: Таблица / Список. Выбор сохраняется per-пользователь.

Список: компактный формат с цветными иконками (зелёные — Excel, синие — Word, красные — изображения и PDF, серые — текстовые/архивы/неизвестные, оранжевые — папки), превью-аватарки изображений вместо иконки, имя в одну строку с обрезкой. v2.268+: дата и время отображаются в двух отдельных колонках — «Дата» и «Время» (формат HH:mm). Полное название и дата — в подсказке при наведении. Размеры: иконка 24px, превью 20px, высота строки 40px.

Таблица: расширенный вид с колонками имени, размера, даты и других атрибутов. v2.268+: в колонке даты дополнительно отображается время, если файл загружен или изменён сегодня (через стандартный humanDate pipe); для более ранних дат — только дата.

Сортировка

Сначала папки, затем файлы. Можно отсортировать по алфавиту или по типу — клик по заголовку столбца меняет направление.

Поиск

Поиск по всему доступному дисковому пространству (Мои файлы, Общие, Файлы автоматизации, Файлы подчинённых, Файлы замещаемых). Ищет по названию папок/файлов и по содержимому файлов. Результаты — на отдельном экране «Результат поиска»; выбор вида («Список» / «Таблица») сохраняется.

В результатах общего поиска у каждого объекта Диска отображается путь от корня — последовательность папок. Переход из результата открывает папку напрямую без ручной навигации.

Просмотр файлов

Поведение зависит от размера экрана:

  • LG / XL (большие) — клик по файлу открывает просмотрщик справа. Список сжимается, между ним и просмотрщиком — перетаскиваемый разделитель. По умолчанию ширина просмотрщика — 40% контейнера. До открытия файла панель скрыта. Закрытие: клик на другой элемент / снять выделение / Ctrl+E / Cmd+E.
  • XS / SM / MD (малые) — файл открывается во весь экран в модальном окне (как в задачах и чатах).

Дерево папок и навигация

Разделы «Мои файлы», «Общие файлы», «Обмен файлами» можно раскрыть как дерево папок прямо в навигационной панели (шеврон слева от названия). В дереве — только папки, отсортированы по алфавиту; шеврон скрыт у папок без подпапок. Остальные системные разделы (Файлы автоматизации, замещаемых, подчинённых) — отдельной группой ниже без раскрытия.

Ширина навигационной панели — 336px.

Адрес папки в URL — формируется из имён папок (/disk/PublicFolder/Документы/Проекты), а не из числовых ID. Преимущества: понятная навигация, копирование читаемых ссылок. Кириллица, пробелы и спецсимволы обрабатываются корректно. Старые ID-ссылки автоматически перенаправляются на новый формат.

Не рекомендуется называть папки в корне раздела только цифрами — может конфликтовать со служебными ID. Если такая папка открывается некорректно — переименовать.

Лимит хранилища

По умолчанию объём хранилища одного пользователя — 5 ГБ (настройка Settings.FileStorageUserPartitionQuota). Если значение 0/null, раздел «Мои файлы» скрывается.

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

Индикатор использования (v2.268+): в нижней части левой навигационной панели Диска отображается прогресс-бар с текущим объёмом занятого места. При наведении на блок — тултип: «Хранение учитывает все папки, где вы владелец папки». Данные берутся из GET /app/v1.2/api/filestorage/quota-usage (поля used / allowedTotal, значения в байтах).

Заполненность Цвет полоски Значение
до 80% Нейтральный Норма
80–95% Оранжевый (warning) Приближение к лимиту
выше 95% Красный (danger) Критический уровень

При превышении лимита попытка загрузить файл в папку Диска блокируется с ошибкой в UI.

Контекстное меню (ПКМ)

Аналогично доступно через кнопку «...» рядом с папкой/файлом в навигации.

Действия с папкой:

Пункт Описание
Открыть Перейти в папку
Создать папку Модальное окно с именем
Создать документ → Текстовый документ / Таблица Новый файл .docx / .xlsx с автоименем «Новый документ»/«Новая таблица» (с цифрой при дубликате)
Вложить файл Загрузка с компьютера
Скачать все файлы и папки Архив с содержимым
Права доступа Модальное окно прав (см. ниже). Недоступно в «Мои файлы»
Переименовать Модальное окно нового имени
Поделиться Копирует ссылку формата https://{адрес}/spa/disk/PublicFolder/{FolderID}
Удалить Недоступно в основных разделах

Действия с файлом:

Пункт Описание
Открыть / Редактировать Открыть файл / перейти в редактор
Скачать Сохранить локально
Права доступа Модальное окно прав. Недоступно в «Мои файлы». Не-администраторам доступен только пункт «Поделиться»
Зашифровать Шифрует файл. Расшифровать обратно невозможно
История версий Окно версий
Прикрепить в текущую задачу Вкладывает файл в ленту задачи; помечается специальной иконкой
Прикрепить в ДП Доступно только при переходе на Диск из ДП «Файл»
Поделиться Копирует ссылку на файл
Удалить Удалить файл

Права доступа в «Общие файлы» и «Обмен файлами»

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

Иконки прав на папку:

Иконка Право
Просмотр Видеть содержимое папки
Добавление Создавать файлы и подпапки
Редактирование Изменять папку
Удаление Удалять папку
История Видеть историю

Иконки прав на файл: Просмотр / Замена и редактирование (через Р7) / Удаление / История / Подписи ЭЦП / Создание задачи.

Правила выдачи прав:

  • Пользователь не может сам себе выдать или забрать право — только владелец или администратор.
  • Пользователь может выдавать другим только те права, которыми обладает сам (включая права через группы).
  • Подпапка наследует права родителя при создании, но дальше не синхронизируется автоматически. Опция «Применить для всех вложенных папок» применяет права рекурсивно.
  • Право «Чтение» на родительской папке расширяется на файлы внутри даже без явного указания.

Представление категории «Диск»

В представлении категории Диск задачи отображаются в виде папок, название папки соответствует тексту задачи. При открытии папки показываются вложения задачи.

В папке «Дополнительные параметры» создаются подпапки по названиям ДП; в них файлы сгруппированы по задачам, включая файлы из колонок ДП «Таблица».

Административные настройки файлового хранилища — см. admin.md.

Пользовательские сценарии

  1. Открыть диск и перейти в нужный раздел.
  2. Создать папку, загрузить файл, выдать доступ.
  3. Вставить файл из диска в файловый ДП задачи.
  4. Работать с файлами через связанную папку задачи.
  5. Проверять аудит действий в журнале диска.
  6. Поделиться ссылкой на папку или файл Диска в комментарии к задаче.

Поиск по диску

Поиск по Диску осуществляется через хранимую процедуру SearchDisk, которая поддерживает:

  • Полнотекстовый поиск по названиям папок/файлов и содержимому файлов.
  • Многотерминовый поиск — поиск по нескольким словам с разделителем | (логическое ИЛИ).
  • Фильтрацию результатов по расширению файлов, владельцу и дате изменения.

Поиск выполняется по всему доступному дисковому пространству: «Мои файлы», «Общие файлы», «Файлы автоматизации», «Файлы подчинённых», «Файлы замещаемых».

Результаты отображаются на отдельном экране «Результат поиска» с указанием пути от корня для каждого объекта. Переход из результата открывает папку напрямую без ручной навигации.

Перекрестные зависимости

Домен Зависимость
files базовые file API и провайдеры хранения
tasks права и связка папок с задачами
ext-params сценарии вставки из диска в ДП
smart-actions автоматическое создание/привязка папок
users-and-groups видимость функций диска и ограничения

Связанные документы

  • docs/domains/disk/backend.md
  • docs/domains/disk/database.md
  • docs/domains/disk/data-flow.md
  • docs/domains/files/business.md