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

Укажите владельца, проект или заказ и назначение файла. Не храните всё в общей папке без связей, если документы принадлежат разным клиентам. Для каждой записи нужны дата, автор загрузки и состояние. Менеджер должен находить материал через процесс, с которым он работает, а не по случайному имени файла.
Для условной компании по изготовлению мебели у заказа есть расчёт, эскиз и инструкция. У этих материалов разные моменты публикации. Расчёт может обновляться после выбора комплектации, инструкция появиться после исполнения. Не требуйте от клиента разбираться в общей хронологической ленте всех внутренних файлов.
Разделите версии и замену файла
Опишите, создаёт загрузка новую версию или исправляет черновик до публикации. Опубликованную версию полезно сохранять отдельно от последующих изменений. Если старый файл нужен для истории, покажите его как предыдущий. Не называйте разные документы одним «актуальным» без возможности установить, какой был доступен в конкретный момент.
При согласовании сохраняйте идентификатор версии и результат действия. Если файл обновлён после согласования, определите, требуется ли новое подтверждение. Нельзя переносить согласие на изменённое содержимое незаметно для пользователя. Названия кнопок должны отражать процесс, который бизнес действительно принимает.
Проверяйте доступ при каждом обращении
Право видеть карточку и право скачивать вложение проверяйте на сервере. Догадка о номере файла не должна открывать документ другого клиента. Скрытая ссылка в интерфейсе не является защитой. Учитывайте роли сотрудников, общие проекты и отзыв доступа после завершения отношений.
Для хранения выберите контролируемую выдачу или защищённые ссылки с согласованными условиями. Не делайте файлы публичными ради удобства просмотра. Проверяйте формат, содержимое и размер при загрузке; название и расширение сами по себе недостаточны. Предварительный просмотр также должен соответствовать разрешённым типам и используемой библиотеке.
Сделайте состояния понятными человеку
Клиенту обычно важно, готов ли документ, нужно ли его проверить и что происходит после ответа. Внутренние статусы обработки не обязательно выводить без пояснения. Если файл ещё проверяется, не показывайте его как окончательно опубликованный. При ошибке загрузки оставьте сотруднику понятный способ исправить запись.
| Состояние | Понятное действие |
|---|---|
| Черновик | Сотрудник готовит материал |
| Опубликованная версия | Клиент может открыть разрешённый файл |
| Требуется ответ | Пользователь видит, что нужно согласовать |
| Заменённая версия | История отделена от текущего документа |
Не приравнивайте нажатие кнопки или скачивание к юридически значимой подписи. Если задача требует такого действия, нужен отдельно согласованный процесс и соответствующая реализация. Обычный кабинет может фиксировать события, но их правовое значение нельзя назначить только подписью кнопки.
Примите историю и восстановление
Проверьте загрузку, новую версию, согласование старого файла и попытку открыть чужую запись. Добавьте повреждённый файл, отзыв доступа и восстановление после сбоя. Скачивание отмечайте как техническое событие, а не доказательство, что человек прочитал содержимое.
Определите срок хранения и порядок удаления с владельцем процесса. Сохраните возможность восстановить разрешённые версии из проверенной резервной копии. Команде нужна инструкция, как исправить неверную публикацию и уведомить клиента. Кабинет с документами должен помогать установить факты, а не оставлять несколько одинаковых ссылок без объяснения.
Связанные материалы
Роли в приложении: как описать доступ к данным и действиям
Файлы из формы в CRM: форматы, размер и доступ к вложениям
Резервная копия сайта: как проверить, что её можно восстановить
Документация для проверки
Проверки загрузки файлов: OWASP
Ссылки на документацию проверены 8 октября 2026 года. Названия настроек и возможности сервисов могут меняться; перед внедрением сверяйте факты с актуальной документацией.
Коротко о важном
Можно незаметно заменить уже согласованный файл?
Действие клиента должно быть связано с конкретной версией. После изменения содержимого применяется заранее согласованное правило повторного подтверждения.
Сложный адрес файла защищает документы клиента?
Сам по себе нет. Проверяйте права на сервере и используйте контролируемый способ выдачи, учитывая отзыв доступа и условия защищённых ссылок.
Скачивание документа означает его согласование?
Нет. Скачивание является техническим событием. Согласование и юридически значимые действия требуют отдельного описанного процесса.



