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

Файлы

Работа с файлами в 1Форме охватывает весь их жизненный цикл: загрузку, хранение, версии, конвертацию, просмотр и скачивание. Файлы находятся в двух контекстах — на Диске (файловое хранилище с папками) и в задачах (вложения через ДП типа «Файл» и комментарии). Поддерживаются полнотекстовый поиск по содержимому, онлайн-редактирование документов в офисном пакете Р7 и автоматическая конвертация видео. Технические детали хранения (провайдеры, сжатие, конвертация) — в admin.md.

Хранилища файлов

Диск — централизованное файловое хранилище с разделами «Мои файлы», «Общие файлы», «Обмен файлами», «Файлы автоматизации» и др. Пользовательские сценарии работы с Диском, его разделы, права и интерфейс подробно описаны в disk/business.md.

Через смарт-действие «Связать файловую папку с задачей» можно привязать к задаче папку из раздела «Файлы автоматизации». После этого все файлы, вложенные в задачу или ДП, автоматически попадают в эту папку. Возможен и обратный сценарий: файлы загружаются в привязанную папку, а затем вставляются в ДП через пункт «Вставить из диска». Права доступа к папке формируются аналогично правам доступа к задаче (по группам, тегам, смарт-доступу, роли пользователя). При завершении всех связанных задач редактирование папки блокируется.

Файлы хранятся через провайдеры — адаптеры к разным типам хранилищ (база данных или S3-совместимое хранилище). Тип хранилища, сжатие и полнотекстовый поиск настраивает администратор; для пользователя это прозрачно. Подробности — в admin.md.

Сжатие уменьшает объём хранилища, но отключает поиск по содержимому файлов. Чтобы поиск работал и при сжатии, система отдельно извлекает текст из документов (PDF, Word, Excel, PowerPoint и т.п.).

Дополнительный параметр (ДП) типа «Файл» — основной способ прикрепления файлов к задачам. Ключевые настройки:

  • Мультифайл — хранение нескольких файлов в одном ДП (имена нумеруются автоматически: name.pdf, name-1.pdf, name-2.pdf)
  • Имя файла — режимы: не менять, добавить версию (с датой и временем), фиксированное имя, имя по смарт-выражению. Если смарт-выражение возвращает пустоту, имя не меняется
  • Логирование — запись действий (скачивание, просмотр, редактирование, удаление) в журнал Диска
  • Ограничения — запрет удаления, только изображения, максимальный размер, список допустимых расширений
  • Загрузка — разрешение или запрет загрузки из файловой системы и из Диска
  • Защита от скачивания — UI-ограничение для всех пользователей, включая владельца: интерфейс скрывает кнопку «Скачать», остаётся постраничный просмотр. Сервер оригинал по прямому запросу отдаёт; защищённый файл исключается из архива «Скачать все»
  • Файловый провайдер — для конкретного ДП можно выбрать отдельное хранилище
  • Системные копии при акцепте — создание скрытой версии файла при согласовании подписи (чтобы зафиксировать состояние на момент подписания)
  • Работа с Word — сравнение версий, объединение файлов, запрет файлов с вложениями или паролем

Загруженные видеофайлы (MP4, WMV, MOV, AVI) система автоматически конвертирует в единый формат MP4 — чтобы они воспроизводились во встроенном веб-плеере. Конвертация выполняется в фоне; техническая настройка описана в admin.md.

Интеграция с редакторами (Р7 / OnlyOffice)

Документы можно просматривать и редактировать онлайн, прямо в браузере, через офисный пакет Р7 Офис. Подключение и настройку выполняет администратор (см. admin.md).

В сертифицированной сборке 1F Certificate Edition (ФСТЭК) действие «Открыть в онлайн-редакторе» недоступно: подсистема онлайн-редакторов (Р7 / OnlyOffice / Office WebApps) исключена из сборки целиком. Файлы по-прежнему можно открывать в локальных приложениях через «Скачать».

Р7 Офис

Р7 Офис — профессиональный офисный пакет инструментов; его редактор позволяет просматривать и редактировать файлы офисных форматов непосредственно в окне браузера. Поддерживаемые форматы: .docx (полное редактирование), .doc (только чтение), .xlsx, .pptx и их аналоги в форматах OpenDocument.

Для работы интеграции необходимо наличие лицензии Р7 Офис. Если лицензия на Р7 Офис активирована в настройках пользователя, для редактирования файлов формата .docx используется Р7 Офис. При этом в прочих настройках пользователя в поле «Действие с файлами MS Office при клике» нужно активировать опцию «Открыть для просмотра в веб-интерфейсе (WebApps)».

Подробнее о работе с Р7 — на сайте компании.

OnlyOffice

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

Подробнее о работе с OnlyOffice — на сайте компании.

Действие при клике на файл MS Office настраивается на уровне пользователя: скачать, открыть для просмотра в WebApps или по умолчанию (из общих настроек).

Office WebApps (OfficeOnline) — недоступно

Эта функция больше не поддерживается. После миграции на .NET Core интеграция с Office Web Apps Server / Office Online удалена из платформы. Для онлайн-просмотра и редактирования офисных документов в браузере используйте Р7-Офис или OnlyOffice — см. разделы выше. Текст ниже сохранён для пользователей старых стендов, где OWA ещё развёрнут параллельно с платформой.

Приложения WebApps позволяют просматривать и редактировать офисные документы непосредственно в окне браузера. Работа с WebApps возможна практически на любом устройстве, которое поддерживает работу с интерфейсом «Первой Формы». Аналогичным образом можно работать с документами Word, Excel, PowerPoint и OneNote.

Чтобы отредактировать документ, нужно нажать кнопку «Изменить в браузере» — файл перейдёт в режим редактирования с помощью веб-приложения.

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

Ограничение по Excel WebApps: если вложенная книга содержит ссылки на иные книги, при работе с Excel WebApps возникает ошибка обращения по ссылке. Поэтому перед редактированием такого файла ссылки необходимо разорвать.

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

Подробнее о работе с Office WebApps — на сайте компании Microsoft.

WebDAV — не поддерживается

Редактирование документов через WebDAV не поддерживается. Кнопки «Редактировать в WebDAV» в ленте сообщений нет: документ открывается в просмотрщике, в онлайн-редакторе Р7 / OnlyOffice или скачивается — в зависимости от формата и настроек.

Работа в редакторе

По умолчанию документ открывается в режиме просмотра. Переключение в редактирование — кнопкой в панели инструментов: документ открывается в новом окне. Ограничения и поведение:

  • Файлы с расширением .doc доступны только для чтения.
  • Если у файла несколько версий, в редакторе всегда открывается последняя актуальная — и в просмотре, и при редактировании.
  • Файл можно скачать на локальный компьютер по иконке загрузки рядом с названием.
  • В OnlyOffice в меню «Вид» доступен выбор темы интерфейса; тема применяется ко всему документу.

Доступны три режима работы:

Режим Что позволяет
Редактирование Свободное изменение содержимого и форматирования
Рецензирование Все правки фиксируются как пометки, могут быть приняты или отклонены позже
Просмотр Запрещено редактирование, доступны навигация, масштабирование, комментирование

В Рецензировании активен блок «Просмотр изменений» — список добавленных, удалённых и отредактированных фрагментов с возможностью переходов между ними.

Многопользовательское редактирование

При одновременном открытии одного файла несколькими пользователями каждый видит:

  • список участников редактирования (аватары из профиля 1Формы — только для онлайн-сессий внутри системы);
  • курсоры и имена коллег в реальном времени;
  • изменения, вносимые другими пользователями, без необходимости перезагружать документ.

Разрешение конфликтов при сохранении:

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

После закрытия сессии редактирования файл сохраняется автоматически — все внесённые изменения фиксируются в системе без дополнительных действий пользователя.

В редакторе Р7 режим совместного редактирования зафиксирован. Файл всегда открывается на редактирование в быстром режиме: правки сохраняются автоматически, а переключателя режима на сохранение только по кнопке в интерфейсе редактора нет. Так открывается и у тех, кто раньше сам выбирал сохранение по кнопке, — этот выбор больше не сохраняется браузером и не влияет на открытие.

Импорт Excel в базу данных

Администратор может импортировать данные из Excel-файла в таблицу рабочей базы 1Формы — через сервисный endpoint POST api/files/import/exceltodb или стандартное смарт-действие «Импортировать лист Excel в таблицу БД» (см. smart-actions/actions-reference-files-data.md). Операция создаёт или обновляет таблицу в базе, поэтому доступна только администраторам: вызов от обычного сотрудника отклоняется без изменений в базе.

Это отдельный сценарий от импорта Excel в ДП «Таблица» (кнопка в самой таблице на форме задачи): тот загружает строки в значение параметра и проверяет колонки по настройкам ДП, доступен обычным пользователям и с импортом в базу не связан.

Допустимые имена таблицы и колонок. Имя таблицы задаётся в запросе, имена колонок берутся из заголовков первой строки Excel. Обычные заголовки работают без ошибок — кириллица, пробелы, дефисы, точки, скобки, запятые, процент, плюс, двоеточие, косая черта (например, «Дата отгрузки», «Кол-во (шт.)», «% выполнения», «№ п/п»). Имя отклоняется с ошибкой, если оно пустое, длиннее 128 символов или содержит служебные символы SQL-разметки — [, ], ", ', \, ;, обратный апостроф, управляющие.

Способы вложить файл в задачу

В задачу можно вложить файл любого типа, разрешённого в системе (допустимые расширения и ограничения на размер задаются в настройках системы; при превышении лимита система выдаёт сообщение об ошибке). Доступно несколько способов добавить файл к карточке задачи:

  • через меню «Файлы» в панели инструментов задачи;
  • при отправке сообщения в ленту;
  • в блоке «Файлы»;
  • в ДП типа «Файл», предназначенный для хранения файлов;
  • из Диска (прикрепление существующего файла);
  • письмом из почтового клиента (см. «Привязка письма к задаче» в mail/business.md).

Загрузка нескольких файлов сразу. При добавлении нескольких файлов за один раз (перетаскиванием, через меню или вставкой из буфера обмена) файлы загружаются независимо друг от друга: если один файл не загрузился (например, превышен размер или недопустимый тип), остальные всё равно загружаются. Ошибки по всем неудавшимся файлам показываются вместе, одним сообщением.

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

Меню «Файлы» в шапке задачи: вложения, Диск, создание файла, печать и экспорт

Блок «Файлы» в карточке задачи

В блоке отображаются последние вложенные файлы. Полный список открывается ссылкой «Посмотреть все» или кнопкой раскрытия.

Блок «Файлы»: вкладки по типам, файлы и панель инструментов

Группировка по вкладкам

Вложения группируются по типу. Вкладка отображается, если в задаче есть файлы соответствующего типа; на счётчике — количество.

Вкладка Что показывает Расширения
Вложения Все файлы без фильтра (кроме файлов из ДП) —
Документы Текстовые документы doc, docx, csv, xls, xlsx, xlsm, xlsb, xltm, xltx, ppt, pptx, odt, ods, odp, pdf, json, txt, git, sql, pgsql, html, xml, mpp, key
Изображения Картинки jpg, jpeg, png, gif, svg, webp, jfif
Видео Видеофайлы avi, mp4, mpg, webm, mov
Аудио Аудиофайлы mp3, wav, ogg
Письма .eml (см. «Привязка письма к задаче» в mail/business.md) eml
«Имя ДП» Файлы из ДП «Файл» с этим именем (не входят в счётчик «Все») —
Ссылки Ссылки из переписки задачи: внутренние ссылки на задачи и внешние адреса, собранные из комментариев —

При большом числе вкладок они автоматически группируются в выпадающий пункт «Ещё». Внутри каждой вкладки файлы группируются по дате добавления (по месяцу). При открытии файла из любой вкладки (например, «Изображения» или «Документы») эта вкладка остается активной в интерфейсе блока. Это позволяет пользователю видеть контекст, из которого был открыт файл, и быстро переключаться между файлами одной группы, даже если просмотрщик отображается в боковой панели или модальном окне (при уменьшенном размере экрана).

Вкладка «Загрузка»

Пока в блоке есть файлы, не завершившие загрузку, рядом с типовыми вкладками показывается вкладка «Загрузка». Она собирает всю очередь добавления — файлы из диалога выбора, перетаскиванием и вставкой из буфера — и по каждому показывает состояние: в очереди, загружается, ошибка, готово. На заголовке вкладки стоит убывающий счётчик: сколько файлов ещё не закончили загрузку.

Вкладка открывается сама, как только началось добавление файлов, — искать её вручную не нужно. Если какая-то загрузка прервалась, счётчик в заголовке выделяется красным и остаётся таким до успешной повторной попытки. Когда очередь пуста, вкладка исчезает, а активной становится соседняя — без скачка фокуса. Загруженный файл уходит с «Загрузки» и появляется во вкладке своего типа или во «Вложения», а счётчик типовой вкладки увеличивается.

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

Вкладка «Ссылки»

Вкладка собирает ссылки, которые участники упоминали в переписке задачи: внутренние ссылки на задачи и внешние адреса. Файлы на неё не попадают — они остаются во вкладке «Вложения». Список идёт по дате комментария, свежие ссылки выше; ссылки на задачи и внешние адреса не разложены по двум блокам, а идут вперемешку в одном порядке переписки. Когда блок вложений развёрнут, ссылки дополнительно группируются по месяцу даты комментария; в свёрнутом блоке это один плоский список без заголовков.

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

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

Переключение представлений

В каждой вкладке блока «Файлы» доступны несколько представлений; переключатель находится в шапке блока. Выбранное представление и активная вкладка запоминаются на уровне пользователя и применяются ко всем блокам вложений в карточках задач (без учёта категории).

Представление Назначение Когда по умолчанию
Плитка Карточки с превью и названием Вкладки «Вложения», «Документы», «Письма», «Имя ДП»
Галерея Увеличенные превью для просмотра медиафайлов Вкладки «Изображения», «Видео», «Аудио»
Таблица Плотный список с колонками: имя, размер, дата, владелец файла Не по умолчанию ни для одной вкладки; включается явно

Табличный вид аналогичен просмотру файлов в папке на Диске.

Поиск по вложениям

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

Отбор выполняется на сервере до постраничной выдачи, поэтому находятся и файлы, ещё не загруженные в список. Поиск не учитывает регистр, служебные символы в запросе экранируются и ищутся как обычный текст.

Панель инструментов блока

В шапке блока «Файлы» доступны кнопки для работы с вложениями:

Кнопка Действие
Прикрепить файл До завершения загрузки в окне отображается надпись о статусе загрузки; незавершённые файлы видны на вкладке «Загрузка»
Вставить из диска Открывает Диск для выбора файла. После смены версии файла на Диске он обновляется и в задаче
Вставить из буфера обмена Добавляет файлы и изображения из буфера обмена (Ctrl+V). Доступно на блоках вложений с поддержкой предзагрузки, в том числе в формах создания задачи (НТФ/МТФ)
Создать файл Создание Word (.docx), Excel (.xlsx) или презентации PowerPoint (.pptx) с автоименем «Новый документ» / «Новая таблица» / «Новая презентация» (с цифрой в скобках при дубликате имени)
Раскрыть Полный список вложений в модальном окне
Скачать всё Архив с файлами из «Все» (без файлов из ДП)
Прикрепить письмо Открывает окно выбора письма: доступны все включённые ящики пользователя и любые их папки. Кнопки нет, если у пользователя нет ни одного включённого ящика
Очистить удалённые Стирает помеченные на удаление файлы
Показывать удалённые Включает отображение удалённых файлов в списке

Выделение нескольких файлов и массовое удаление

Вложения можно выделить — по одному или все сразу — и удалить выбранные одной операцией. Режим доступен в окне со всеми вложениями задачи, которое открывается кнопкой «Раскрыть», и только если в задаче разрешено удаление файлов. В самом блоке карточки, без раскрытия в окно, выделение не включается.

Выделение. У каждого файла появляется флажок: в представлениях «Плитка» и «Галерея» — на карточке файла, в представлении «Таблица» — в строке. Удалённые файлы флажка не получают и в выборку не попадают. В панели инструментов окна есть кнопка выделения всех файлов: пока выделены не все, она подписана «Выделить все», когда выделены все — «Снять выделение».

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

Файлы удаляются последовательно, по одному, а вместо кнопки удаления показывается ход операции — «Удаление файлов: N из M»; пока идёт удаление, выделение и запуск повторной операции недоступны. Если часть файлов удалить не удалось, они остаются в задаче, а система выводит сообщение «Не удалось удалить файлы:» с их перечнем.

Контекстное меню файла

Правый клик по файлу в блоке:

Пункт Описание
Просмотр Открыть файл (как клик по нему)
Скачать Сохранить локально. Заблокировано, если нет прав (в т.ч. при перевоплощении)
Переименовать Изменить имя файла, не загружая его заново. Пункт показывается, если есть право изменять файлы в задаче, статус задачи не запрещает правку файлов и файл не зашифрован
Открыть в папке диска Перейти к папке Диска (только для файлов, вложенных из Диска — отмечены специальной иконкой)
Открыть в новой вкладке Просмотр файла в новой вкладке браузера
Закрепить Закрепляет файл в верхней части блока (иконка-звёздочка)
История версий Окно истории версий: для каждой версии — её номер, вложившие файл пользователи, дата вложения и размер файла. Последняя версия выделена цветом и расположена в верхней строке таблицы
Скопировать ссылку Копирует прямую ссылку на файл
Поделиться в сообщении Отправляет файл в сообщение выбранной задачи или чата: файл встаёт вложением в поле ввода открывшейся ленты — тем же файлом, без копии и новой версии
Удалить Удалить файл из задачи

Переименовать файл можно везде, где он показан в задаче: в блоке «Файлы», в ДП «Файл» и «Мультифайл», в том числе в табличном представлении, а также у аудио- и видеовложений. Вводится имя без расширения — расширение сохраняется. Право на переименование — это право изменять файлы, а не удалять их: в категории с запрещённым удалением переименование остаётся доступным. У интерактивных отчётов (вложения *.dash.html) пункта нет: имя файла служит признаком, по которому отчёт распознаётся.

Если файл с новым именем в задаче уже есть, открывается тот же диалог выбора, что и на Диске: переименовать по-другому, заменить существующий файл или оставить оба. Сравнение имён идёт внутри своей группы вложений — по тем же правилам, что и при загрузке.

Если документ открыт на редактирование в редакторе Р7 в другой вкладке этого же браузера, переименовать его нельзя — ни в задаче, ни на Диске, ни из просмотрщика: вместо формы появляется окно «Нельзя переименовать документ» с пояснением «Документ редактируется в другой вкладке. Закройте его для переименования.». Открытие документа на другом устройстве, в другом браузере или другим пользователем переименованию не мешает.

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

Что проверяет сервер при удалении версии. Доступная кнопка — не единственное условие: перед удалением сервер смотрит на саму версию. Версию, по которой есть запись подписи ЭЦП, удалить нельзя — приходит отказ, и версия остаётся на месте; проверка выполняется до удаления файла из хранилища, поэтому ничего не теряется. Единственную версию удалить тоже нельзя — вместо этого удаляют файл целиком. Неподписанная версия при наличии других версий удаляется обычным порядком.

Вложения в комментариях и ДП при удалении версии. Вложение комментария и файл в ДП привязаны к конкретной версии файла, и её удаление привязку не рвёт. Если удаляется версия, на которую смотрит вложение живого комментария или файл в ДП — вручную из истории версий или автоматически, когда число версий превысило разрешённое, — вложение остаётся на месте и показывает оставшуюся версию файла. Содержимое удаляемой версии уходит из хранилища только тогда, когда на тот же объект не ссылается больше никто: ни другая версия файла, ни preupload-запись, ни файл в ДП, ни значение по умолчанию, ни сохранённые правки.

Версию можно сравнить с текущей: на строке любой неактуальной версии есть кнопка «Сравнить с текущей версией». Она открывает документ в редакторе в отдельной вкладке и показывает различия между выбранной и актуальной версией в режиме рецензирования. Документ при этом открывается только для просмотра, а окно истории версий закрывается. Сравнение доступно для файлов формата doc, docx и rtf при наличии более одной версии; для остальных форматов и на строке текущей версии кнопка не отображается. Нет её и в окне «История изменения» дополнительного параметра, где собрана история файлов по всему параметру, а не по одному файлу.

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

При удалении текущей версии файла, привязанного к ДП-параметру, в окне подтверждения выводится предупреждение «Удаление текущей версии удалит файл из ДП».

Окно «История версий файла»: версии, кто и когда вложил, размер

Прикреплённые файлы отображаются в ленте задачи по-разному:

  • Изображения, аудио, видео — превью как для вложений в комментарий.
  • Остальные типы — служебное сообщение «Вложен файл Название файла» с кликабельной ссылкой.

Если вложить файл с именем, совпадающим с уже существующим вложением задачи, он записывается как новая версия этого файла, а предыдущая версия отображается в ленте зачёркнутой — как неактуальная. Это системное поведение отображения версий: оно не связано с настройками категории и не отключается.

У каждой версии своя дата загрузки, и просмотр миниатюры и скачивание отдают именно её — не дату предыдущей версии. Поэтому загруженная только что версия сразу открывается в просмотрщике и скачивается без ожидания обновления кеша.

Совпадение проверяется по имени файла — содержимое не сравнивается. Два разных файла с одинаковым именем становятся версиями одного файла; один и тот же файл, вложенный под разными именами, — двумя разными файлами.

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

Группа Что в неё входит
Вложения задачи Файлы, вложенные в задачу, и файлы из комментариев — файл из комментария и есть вложение задачи, поэтому он виден на вкладке «Вложения»
ДП «Файл» / «Мультифайл» Файлы этого ДП в этой задаче — у каждого ДП своя группа
Столбец ДП «Таблица» с типом «Файл» Файлы этой ячейки таблицы — своя группа у каждой ячейки

Между группами имена не пересекаются. Поэтому файл, вложенный в комментарий, не заменяет одноимённый файл в ДП и не создаёт ему новую версию — в задаче окажутся два файла с одинаковым именем, но с разными идентификаторами, правами и историями версий. То же верно для одноимённых файлов в разных ДП одной задачи.

Права на ДП при вложении файла в задачу или в комментарий не проверяются: ДП в этой операции не участвует. Поэтому файл в ДП, доступном только на чтение, вложением из комментария не перезаписывается.

Запрет перетаскивания (drag) файлов, картинок и аватарок. Файловые вложения (в блоке «Файлы» и в ленте), медиа-превью в ленте, аватар задачи и общий компонент аватара (используется не только в задачах) блокируют браузерное перетаскивание элемента курсором мыши. Это защищает от случайного «захвата» файла или картинки, которое могло привести к непреднамеренному повторному вложению с тем же именем — а значит, к созданию новой версии файла (см. выше про поведение при совпадении имени).

Просмотрщик файлов

Большинство файлов можно открыть и посмотреть прямо в системе, не скачивая.

Просмотрщик файлов с панелью инструментов (поворот, масштаб, информация)

Поддерживаемые форматы

Прямо в просмотрщике открываются файлы следующих типов:

Тип Расширения
Изображения jpg, jpeg, png, gif, webp, svg, jfif
Видео mp4, webm, ogg, mov
Аудио mp3, ogg, aac
PDF pdf
Офисные doc, docx, xls, xlsx, csv, ppt, pptx, ods, mpp, vsd, vsdx, pub и др.
Текст и код txt, md, json, xml, html, sql, js, ts, cs, py, java, css, yaml, sh, log и др.
Письма msg (Outlook), eml

Остальные форматы при клике скачиваются.

В Firefox и Safari не поддерживается воспроизведение .webm.

Файл может открываться двумя способами в зависимости от размера экрана и режима просмотра задачи:

  • Боковая панель справа (на больших экранах) — для задач, чатов и Диска. Сохраняет видимым основной контент. Из боковой панели можно перейти в полноэкранный режим.
  • Полноэкранное модальное окно — на небольших экранах, а также если для задачи выбран режим просмотра «снизу».

Помимо размера экрана, система выбирает режим в зависимости от формата файла и его пропорций:

Тип файла Режим открытия
Видео Полный экран
Презентации (PPTX) Полный экран
Excel (XLSX, CSV — если расширение распознаётся как Excel) Полный экран
Горизонтальные и квадратные изображения (width/height > 0.7) Полный экран
Изображения, у которых отсутствуют сохранённые размеры (extInfo.width/height не переданы) Полный экран
Word (DOCX) Сбоку
Вертикальные изображения (width/height ≤ 0.7) Сбоку
PDF Сбоку (чаще A4-сканы)
Текстовые файлы, txt, прочие форматы Сбоку

Порог 0.7 соответствует соотношению 1/1.43 — граница книжного формата A4 (вертикальные изображения открываются сбоку как раньше).

Исключение — страница «Информация» чата. Файл из блока «Файлы» открывается там боковой панелью справа независимо от настройки «просмотр задач»: режимы «снизу» и «во всплывающем окне» на него не действуют. Полноэкранный показ остаётся для узкого экрана и для форматов из таблицы выше.

Оформление просмотрщика

Просмотрщик использует единое системное оформление и в боковой панели, и в полноэкранном модальном окне:

  • Шапка оформляется в системных цветах интерфейса: фон шапки, цвет имени файла и цвет кнопок зависят от текущей темы приложения.
  • Шапка отделена от содержимого отдельным разделителем, поэтому панель просмотра визуально отделена от содержимого файла.
  • Область просмотра использует системный фон интерфейса (светлый в светлой теме, тёмный — в тёмной).
  • Модальное окно подчиняется теме приложения: затемняющий фон заменён на системный нейтральный фон интерфейса.

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

Панель инструментов просмотрщика

В шапке просмотрщика доступны действия с открытым файлом:

Кнопка Действие
Повернуть На 90° по часовой стрелке. Каждое нажатие
По размеру экрана Вписывает изображение в область просмотра целиком, без обрезки. В этом режиме кнопка приглушена; первый зум — кнопками, колесом или щипком — выходит из режима к масштабу 100% и центрирует изображение, дальше масштаб меняется обычным шагом
Увеличить / Уменьшить масштаб Изменение масштаба (также колесом мыши)
Информация Модальное окно: пункты зависят от типа (для видео — продолжительность, для изображений — разрешение и т.п.)
Кодировка Список кодировок: UTF-8, WINDOWS-1251, UTF-16, KOI8-R. Текущая кодировка определяется автоматически, при необходимости её можно выбрать вручную. Ручной выбор имеет приоритет и сохраняется при переходе в редактирование
Редактировать Для текстовых и кодовых файлов, в том числе JSON, Markdown и HTML: переводит файл из просмотра в правку без перезагрузки просмотрщика — см. «Просмотр и редактирование» ниже
Сохранить В режиме редактирования; активна только после первой правки
Отмена В режиме редактирования: отбрасывает несохранённые правки и возвращает к просмотру
Поиск Поиск по содержимому файла (для текстовых и кодовых файлов); то же действие, что Ctrl/Cmd+F, с подсветкой вхождений. Недоступен для Markdown в режиме просмотра и для HTML в режиме предпросмотра — у HTML для поиска переключитесь в режим кода; в режиме редактирования доступен для любого текстового файла
Открыть в новой вкладке Открыть файл в новой вкладке. Контекст (чат, задача, список соседних вложений) при этом не передаётся — пользователь видит только этот файл без переключения на соседние
Скопировать ссылку Копирует прямую полную ссылку на текущую открытую версию файла (не на открытый в просмотрщике файл); просмотрщик при этом не закрывается. Ссылка идентична ссылке для действия «Открыть в новой вкладке» и тоже ведёт в просмотрщик; контекст по ней не передаётся
Скачать Сохранить локально. Заблокировано без прав, в т.ч. при перевоплощении
Скачать всё ZIP-архив всех файлов. Не включает файлы с опцией «Защитить файл от загрузки»
Просмотр версий Окно истории версий с пометкой последней цветом
Переименовать Пункт меню «Ещё». Открывает форму нового имени — см. «Переименование из просмотрщика» ниже

Изображение открывается в режиме «по размеру экрана», если его ширина больше 1200 px и высота больше 600 px одновременно; остальные изображения открываются в масштабе 100%. При повороте изображения и изменении размера окна масштаб режима пересчитывается.

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

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

Пункт показывается, когда просмотрщик знает, где лежит файл: он открыт из задачи, из файлового ДП или из папки Диска. Его нет у файла, открытого без сведений о папке-родителе — например, после перехода к соседнему файлу на Диске стрелками, — у файлов из ячеек ДП «Таблица», в режиме «только просмотр», у предзагруженного файла и при просмотре вложений письма и встречи. Зашифрованный файл переименовать нельзя: пункт доступен, но операция отклоняется с ошибкой. Права для показа пункта просмотрщик не запрашивает — их проверяет сервер при сохранении нового имени: нужно право изменять файлы в задаче или в папке Диска, где лежит файл, а у файлов задачи и её ДП статус задачи не должен запрещать правку файлов; иначе операция отклоняется с ошибкой.

Порядок соседних файлов

Если файл открыт из контекста с несколькими вложениями (лента комментариев задачи, блок файлов в карточке или таблица папки Диска), в просмотрщике активны кнопки перехода к соседним файлам, а в подписи отображается порядковый номер вида «N из M». Список формируется детерминированно: по дате загрузки от новых к старым, при совпадении даты — по убыванию идентификатора файла. Порядковый номер не меняется при повторном открытии. Файлы из ленты комментариев и из дополнительных параметров (ДП) образуют отдельные списки и в один не смешиваются.

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

Если открыта неактуальная версия файла, в просмотрщике появляется баннер «Вы смотрите старую версию файла» с ссылками для перехода в историю версий или к актуальной версии.

Просмотрщиком можно управлять с клавиатуры:

Сочетание Действие
Cmd+E (Mac) / Ctrl+E (Win) Закрыть превью справа
Esc Закрыть превью во весь экран

Cmd/Ctrl+E работает из любого места с открытым превью (грид, канбан, лента, Диск). Если открыты и превью, и карточка задачи — первое нажатие закрывает превью, второе — карточку. При наведении на крестик закрытия отображается подсказка с горячей клавишей.

Поведение зависит от фокуса:

  • В поле комментария — выделяется текст комментария.
  • В области просмотра файла — выделяется текст файла.
  • На странице задачи (вне полей ввода) — выделяется весь текст страницы.

Переключить на предыдущий соседний файл можно клавишами ← или ↑, на следующий — → или ↓ (когда в контексте доступна навигация по соседним вложениям). Стрелки переключают файлы только когда фокус не в поле ввода: если в просмотрщике открыт поиск по документу (Ctrl+F / Cmd+F), стрелки действуют внутри поля поиска и файлы не переключают. При открытом поверх просмотрщика модальном окне стрелки соседние файлы не переключают.

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

Текстовые файлы и код

При открытии текстовых и кодовых файлов (.txt, .json, .xml, .js, .ts, .cs, .py, .sql, .yaml и др.) просмотрщик подсвечивает синтаксис. Язык подсветки определяется автоматически по расширению файла; в панели инструментов просмотрщика доступен выпадающий список, которым язык можно выбрать вручную — ручной выбор имеет приоритет и не сбрасывается автоопределением.

Содержимое в формате JSON автоматически форматируется с отступами (в том числе если у файла нет расширения .json — распознаётся по содержимому). Если текст не является корректным JSON, он показывается как есть, без изменений.

Просмотр и редактирование. Текстовые и кодовые файлы, в том числе JSON, Markdown и HTML, открываются в режиме просмотра. Кнопка «Редактировать» переводит файл в правку без перезагрузки просмотрщика; у Markdown и HTML вместо отрисованного вида при этом показывается исходный текст. «Сохранить» становится активной только после первой правки; после сохранения просмотрщик возвращается в режим просмотра и коротко показывает сообщение «Файл сохранен». «Отмена» без подтверждения отбрасывает несохранённые правки и возвращает прежний текст.

Кнопки «Редактировать» нет, если у пользователя нет права на изменение файла, если открыта не последняя версия файла — тогда предлагается перейти к последней, — и если файл открыт по пути на Диске.

Если сохранить не удалось, появляется сообщение с причиной — «Нет прав на изменение файла», «Нет связи с сервером. Изменения не сохранены» или «Не удалось сохранить файл. Изменения не применены», — и файл перечитывается с сервера: несохранённые правки в окне не остаются.

Кодировка текстового файла

Просмотрщик определяет кодировку txt/json-файла по его байтам и сохраняет правку в той же кодировке, поэтому файл в WINDOWS-1251 не превращается в UTF-8 после сохранения.

Поддерживаются четыре кодировки. Порядок определения такой:

Кодировка Как определяется
UTF-8 метка BOM или строгая проверка байтов — декодирование с запретом подмены символов
UTF-16 метка BOM
WINDOWS-1251 файл не UTF-8 и не UTF-16 — выбор по частоте русских букв в первых 64 КБ
KOI8-R то же, по тому же признаку; при близких показателях приоритет у WINDOWS-1251

Определённая кодировка показывается в списке кодировок на панели инструментов; метка BOM, если она была в файле, сохраняется. Выбор кодировки вручную имеет приоритет: выбранная вручную кодировка сохраняется и при переходе в редактирование, и при сохранении файла. Открытие файла сразу в редактировании определяет кодировку тем же способом.

Файл сохраняется в той кодировке, в которой открыт. Если в тексте есть символ, которого в выбранной кодировке нет, — при сохранении файл целиком переводится в UTF-8: текст не искажается, меняется только кодировка.

Markdown-файлы

Для .md доступны дополнительные настройки. Кнопка настроек появляется в панели инструментов только для Markdown-файлов.

При просмотре Markdown-файла общая оболочка просмотрщика (шапка, кнопки, разделители, внешнее оформление панели или окна) подчиняется теме приложения. Параметры отображения самого Markdown-содержимого при этом дополнительно зависят от выбранной темы отображения Markdown.

Тема оформления: Как в приложении / Светлая / Тёмная.

Ширина контента: По умолчанию (макс. 800px, центрирован) / Растянуть на всю ширину.

Настройки сохраняются в браузере и синхронизируются между всеми режимами открытия (правая панель, полноэкранная модалка, отдельная страница).

Поддерживаемые элементы Markdown: абзац (с жирным, курсивом, жирным курсивом), заголовки H1–H4, ссылки (в тёмной теме подчёркнуты всегда, в светлой — при наведении), горизонтальный разделитель ---, цитаты >, маркированные и нумерованные списки, таблицы (с разделителями и шапкой), код в строке (моноширинный с фоном), блок кода с подсветкой синтаксиса, встроенные изображения.

Языки подсветки в блоках кода. Подсвечиваются блоки с языками JavaScript, TypeScript, CSS, Bash, JSON, SQL, разметка (HTML, XML, SVG), C, C#, ASP.NET. Язык указывается латиницей сразу после открывающих тройных обратных кавычек; без указания языка или для языка не из списка блок остаётся обычным моноширинным текстом.

Подсветка может появиться не сразу. Грамматики языков загружаются отдельно от содержимого файла, поэтому при открытии документа блок кода иногда показывается обычным моноширинным текстом и через мгновение оформляется. Обновлять страницу или переоткрывать файл не нужно.

HTML внутри Markdown. Теги не отрисовываются, а показываются исходным текстом — ровно так, как написаны в файле; сама markdown-разметка при этом работает как обычно. Поэтому незакрытый или неверный тег не влияет на показ остального документа: файл виден целиком. Исключение — HTML-комментарии <!-- ... -->: они не показываются вовсе, как служебные пометки не для читателя.

Mermaid-диаграммы. Блок кода с тегом ```mermaid отрисовывается в диаграмму прямо в просмотрщике (а не показывается как исходный код). Поддерживаются стандартные типы Mermaid — блок-схемы (flowchart/graph), диаграммы последовательности (sequenceDiagram), состояний (stateDiagram-v2), ER-связей и др. В одном файле может быть несколько диаграмм. Рендеринг идёт в безопасном режиме (securityLevel: strict) — для полу-доверённых .md с Диска.

Навигация по ссылкам:

  • Относительные на другие .md — открывают целевой файл в том же окне.
  • С якорем (файл.md#раздел) — прокручивает к разделу.
  • На папки — открывают папку на Диске.
  • Абсолютные http(s) — открываются в новой вкладке.
  • Поддерживается навигация между папками (../../folder/file.md).
  • При переходе появляется кнопка «Назад» для возврата.
  • При отсутствии файла/папки — уведомление об ошибке.

HTML-файлы

Файлы .html/.htm с версии 2.268.425 по умолчанию открываются в режиме live-preview — отрендеренная страница в изолированной песочнице, а не исходный код. В шапке просмотрщика доступна кнопка переключения между превью и кодом.

Корректно отображаются только самодостаточные HTML-файлы — без внешних зависимостей (CDN, подключаемые скрипты и стили из других файлов): всё содержимое должно быть в одном файле. Если файл ссылается на внешние ресурсы, они не подгрузятся — переключитесь на просмотр кода, чтобы увидеть исходный текст.

Поведение распространяется на все HTML-файлы независимо от источника — вложения в задаче, в комментариях, файлы с Диска.

Отдача с сервера. Файлы, содержимое которых браузер может выполнить как скрипт (html, htm, xhtml, svg, svgz), отдаются и скачиваются с заголовком Content-Disposition: attachment — inline-отдача в origin приложения не выполняется (иначе файл исполнялся бы как stored XSS). Проверяется не только расширение, но и итоговый Content-Type: иначе расширения вроде .xht или .shtml, резолвящиеся в исполняемый Mime, обходили бы список. Правило действует одинаково при скачивании через файловый контур, на player-пути и через WebDav.

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

Печать и экспорт карточки задачи

В меню «Файлы» в тулбаре карточки доступен пункт «Печать и экспорт». Открывается окно с шаблонами:

  • Клик на шаблон → скачивание сформированного файла Word (.docx).
  • Кнопка «Печать» — экспорт карточки задачи через стандартный диалог печати операционной системы. В PDF-документ попадает только содержимое карточки задачи, без боковой панели и панели инструментов.
  • Для администраторов: кнопка «Закрыть окно и перейти в интерфейс управления шаблонами» — переход к настройкам печатных форм в админ-режиме.

Печатные формы настраиваются администратором в категории.

Для сертифицированной сборки (ФСТЭК): формирование печатного документа Word по шаблону из окна «Печать и экспорт» недоступно — модуль работы с документами исключён из сборки. Печать карточки через стандартный диалог печати операционной системы, включая сохранение в PDF средствами браузера, работает как обычно.

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

Конвертация в PDF, экспорт в Excel и журнал действий

Документы можно преобразовывать между форматами (например, .docx → .pdf). Какой конвертер используется по умолчанию, выбирает администратор (см. admin.md).

Для защищённых форм DOCX (w:edit="forms") с версии 2.268.352 у администратора есть переключатель на альтернативную библиотеку Aspose через CustomSettings DefaultRevisionLib=Aspose и/или DefaultConvertLib=Aspose. По умолчанию используется DevExpress, но на защищённых формах он ломает документ — типичный симптом «пустой лист в PDF» после цепочки «принять правки → конвертировать .doc в .docx». Параметры разделены: DefaultRevisionLib управляет приёмом/отклонением правок, DefaultConvertLib — конвертацией Word-документов между форматами (DOCX / EPUB / ODT). Подробнее — в admin.md § «CustomSettings — глобальные ключи файлов».

Для сертифицированной сборки (ФСТЭК): конвертация документов между форматами (DOCX→PDF, XLS→PDF и т.п.) недоступна — соответствующие библиотеки (DevExpress, SautinSoft, Aspose) исключены из сборки. Загрузка, просмотр и скачивание оригиналов файлов продолжают работать. Скачивание Word-файла с наложением защиты недоступно — система отвечает сообщением об этом, а тот же файл без запроса защиты скачивается как обычно; удаление комментариев в документе при подписании тоже недоступно, и шаг маршрута с такой настройкой завершается сообщением об этом. Выгрузка списка задач в Excel в сертифицированной сборке не формируется — доступна выгрузка в CSV.

При экспорте списка задач в Excel значение ДП «Файл» выводится как кликабельная ссылка для скачивания. Для мультифайлов выводятся отдельные ссылки на каждый файл. Если при переходе по ссылке пользователь не авторизован, он попадает на страницу входа, после чего скачивание продолжается.

Файлы, вложенные в задачу не через ДП, в Excel не экспортируются. Обходной путь — создать скрытый ДП со ссылкой на файл через смарт-автоматизацию.

Все операции с Диском фиксируются в системном журнале: загрузка, удаление, создание и удаление папок, изменение прав доступа, переименование. Для ДП «Файл» и колонок типа «Файл» в ДП «Таблица» логирование включается отдельной настройкой «Логировать действия с файлами». Журнал поддерживает фильтрацию, сортировку, экспорт в CSV/Excel.

Связи с другими доменами

Работа с файлами связана с несколькими смежными доменами:

Домен Связь
Задачи Файлы вкладываются в задачи через ДП «Файл» и комментарии. Привязка папки Диска к задаче через смарт-действие
Категории Хранилище и настройки хранения файлов задаются на уровне категории
Права доступа Права на папки Диска наследуются из прав на задачи и категории
Подписи Создание системных копий файлов при согласовании подписи
Смарт-автоматизация Привязка папок, конвертация видео, формирование имён файлов через смарт-выражения
Уведомления Типы уведомлений «Вложение файла» и «Другие действия с файлами»
Дополнительные параметры ДП «Файл» с настройками мультифайла, хранилища, защиты
Интеграции Р7 Офис для онлайн-редактирования, микросервис конвертации видео
Отчёты Экспорт задач с файлами в Excel; вывод изображений из ДП в отчётах (недоступен при сжатии)