В SeedDMS можно собрать общее хранилище договоров, счетов, инструкций и PDF, разложить документы по дереву папок, назначить владельцев и права, хранить каждую редакцию файла, запускать согласование, искать по реквизитам и извлечённому тексту, а также контролировать сроки, уведомления и действия пользователей. Основные инструменты объединяют карточку документа, метаданные, версии, списки рецензентов и утверждающих, полнотекстовый индекс, журнал событий, WebDAV и планировщик служебных задач.
Работа начинается с папки, в которой пользователь видит дочерние разделы и документы, доступные его учётной записи. В левой части удобно держать раскрытое дерево хранилища, в центральной таблице — сортировать элементы и переходить к карточке, а через меню папки — создавать подразделы, загружать файлы, переносить содержимое, настраивать права и подписываться на изменения. Поэтому повседневные операции напоминают файловый менеджер, но каждое действие учитывает владельца, статус, историю версий и правила доступа.
Для нового документа заполняются сведения, относящиеся ко всей карточке, и отдельные данные первой версии: имя, комментарий, ключевые слова, категории, срок действия, номер редакции, файл и пояснение к нему. После сохранения документ можно открыть, скачать, заблокировать на время правки, пополнить новой версией, связать с другими материалами, добавить вложения, передать другому владельцу или направить на проверку. Такой порядок особенно полезен там, где простой сетевой каталог уже не позволяет понять, какой файл актуален и кто должен принять решение.
Скачать SeedDMS
- Редактирование PDF
- Русский интерфейс
- Просто новичкам
- Нужен PHP-сервер
- Нет правки PDF-страниц
- OCR требует расширения
Как устроена рабочая область SeedDMS
После входа открывается рабочая область с верхней строкой поиска, ссылкой на календарь, административными инструментами для уполномоченных пользователей и меню текущей учётной записи. Ниже располагается контекстная панель: её команды меняются в зависимости от того, открыта папка, карточка документа, версия, список задач или настройка. Это важное правило интерфейса: нужная операция обычно находится не в едином перегруженном меню, а рядом с объектом, к которому она относится.
Представление папки совмещает навигацию и рабочий список. В дереве видна иерархия, центральная область показывает вложенные папки и документы, а столбцы сообщают имя, владельца, состояние, дату, размер или другие включённые поля. Сортировка может опираться на имя, дату либо заданную последовательность. Последовательность полезна для регламентов и комплектов, где пункты должны идти в установленном порядке, но она начнёт влиять на выдачу только после выбора соответствующего способа сортировки.
Строка документа ведёт в подробную карточку. В ней отдельно отображаются общие сведения, текущая версия, вложения, связи, ссылки выдачи и журнал состояния. Такая компоновка сокращает риск скачать не тот вариант: актуальный файл и его статус показаны в одном экране.

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

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

Быстрая загрузка и массовое поступление файлов
Режим быстрой загрузки добавляет в представление папки область, куда можно перетащить один или несколько файлов. Каждый файл создаёт отдельный документ в текущем разделе, имя берётся из имени файла, а подробные метаданные во время передачи не запрашиваются. После завершения появляется переход к редактированию карточки. Такой способ удобен для первичного разбора ежедневного потока, но требует дисциплины: документы без категорий и атрибутов нужно обработать до того, как они затеряются среди новых поступлений.
Начальное состояние для быстрой загрузки следует выбирать с учётом процесса. Немедленное опубликование ускоряет работу с некритичными файлами, но делает неполную карточку видимой тем, у кого есть право чтения. Состояние черновика оставляет время назначить рецензентов, заполнить реквизиты и проверить качество скана. Для бухгалтерских и договорных папок безопаснее сначала принять файл как черновик, затем выпускать его после контроля.
Размер загрузки ограничивается не только настройкой SeedDMS. На него влияют пределы PHP, веб-сервера, прокси и время выполнения запроса. Если небольшой файл проходит, а крупный обрывается, нужно последовательно сверить допустимый размер тела запроса, параметры загрузки и пост-запроса, временный каталог PHP, свободное место и тайм-ауты. Увеличение одного значения не поможет, когда более низкий предел остаётся на другом уровне.
Drop folder и импорт с серверной файловой системы
Для сканеров, сетевых папок и больших партий предусмотрен каталог приёма на сервере. В нём создаются подкаталоги с именами пользователей; тогда форма загрузки предлагает выбрать файл из персональной области вместо передачи через браузер. Локальное поле файла должно оставаться пустым, иначе оно имеет приоритет. После успешного импорта исходник можно автоматически удалить из каталога приёма, но сначала стоит проверить резервирование и поведение при ошибке.
Администратор может импортировать целое дерево каталогов рекурсивно. В форме задаются целевая папка SeedDMS и исходный каталог внутри области приёма. Метод подходит для первичной миграции и потока от МФУ, однако переносить тысячи файлов без теста не следует: сначала проверьте кодировку имён, вложенность, дубликаты, максимальную длину пути, доступ веб-пользователя к файлам и выбранное начальное состояние. Контрольная партия из нескольких папок показывает, как сформируются карточки и где потребуются метаданные.
Папки, порядок и модель хранения
Все пользовательские папки создаются внутри единственного корня. В форме подраздела указываются имя, комментарий и позиция относительно соседних папок; при наличии атрибутов появляются дополнительные поля. Позиция имеет смысл только при сортировке по последовательности. Для структуры с алфавитной сортировкой лучше включать номер в название лишь тогда, когда он является частью утверждённого классификатора, иначе переименование разделов превратится в постоянную ручную работу.
Хорошая иерархия отвечает на вопрос, кто отвечает за документ и в каком процессе он используется. Глубокое повторение года, подразделения, типа и статуса на каждом уровне усложняет навигацию, потому что эти признаки уже можно хранить в атрибутах и категориях. Обычно достаточно двух-трёх устойчивых уровней, а временные признаки лучше выводить поиском. Например, основная ветка может отражать подразделение и вид дела, а год, контрагент и состояние — поля карточки.
Разрешение одинаковых имён подпапок на одном уровне следует включать только при понятной причине. Иначе дерево визуально не различает разделы, а пользователь переносит документ не туда. Если одинаковое название неизбежно, добавьте контекст в атрибут или имя: регион, проект, код подразделения. Для длинных деревьев стоит заранее определить допустимую длину имени и символы, которые корректно работают в резервных копиях и интеграциях.

Карточка PDF и просмотр содержимого
PDF хранится как обычная версия документа с MIME-типом application/pdf. В карточке доступно скачивание, а при включённом просмотре — открытие содержимого в браузере. Рядом могут появляться команды изменения статуса, назначения получателей и ревизоров, добавления в передачу, редактирования комментария и атрибутов. Набор зависит от прав, состояния и расширений, поэтому отсутствие кнопки чаще означает ограничение роли или выключенную функцию, а не потерю файла.
SeedDMS не заменяет редактор страниц PDF: базовая карточка не предназначена для исправления текста, перестановки объектов, ретуши скана или ручного редактирования формы. Задача системы — хранить файл, метаданные, версии и решения. Отдельные расширения могут разделять или уменьшать PDF, наносить водяной знак, читать данные Factur-X либо строить предварительный просмотр, но сложное изменение содержимого выполняется во внешнем редакторе с последующей загрузкой новой версии.
Предварительное изображение создаётся внешней командой и сохраняется в кэше. Для списков и подробной карточки задаётся разная ширина, поэтому миниатюры можно сделать компактными, а детальный просмотр — более информативным. Если вместо обложки показывается типовой значок, проверьте команду преобразования для MIME-типа, права на каталог кэша, наличие утилиты, корректность подстановок входного и выходного файла и тайм-аут внешних процессов.

Полный просмотр и преобразование в PDF
Браузер умеет отображать только часть типов непосредственно. Для остальных SeedDMS может вызвать внешнюю программу, преобразовать файл в PDF, сохранить результат в кэше и показать его на странице документа. Это удобно для офисных форматов, но качество и поддержка зависят от выбранного конвертера. Перед включением для всех пользователей проверьте шрифты, формулы, комментарии, поля, макросы и защищённые документы на типовых примерах.
Кэш предварительного просмотра нужно хранить в каталоге, недоступном напрямую через веб-сервер. Тогда пользователь получает изображение только после проверки прав в приложении. При очистке кэша оригинальные версии не пропадают, но первые открытия потребуют повторного преобразования. Если после замены конвертера виден старый результат, удалите соответствующий кэш штатным способом и пересоздайте превью, а не изменяйте оригинальный файл.
Новые версии, блокировка и проверка изменений
Добавление версии выполняется из карточки документа и напоминает сокращённую форму первой загрузки: поля всей карточки не дублируются, зато указываются файл, номер и комментарий редакции. После сохранения актуальной становится новая версия, прежняя остаётся доступной в истории. Незавершённые рецензии и согласования старой редакции больше не должны восприниматься как задачи для нового файла, потому что решение относится к неизменяемому содержимому конкретной версии.
Блокировка предупреждает параллельную правку. Пользователь, начавший работу, блокирует документ; другой сотрудник видит предупреждение и не должен загружать конкурирующую редакцию. Разблокировать чужой документ может владелец с достаточными правами или администратор. Перед принудительным снятием блокировки нужно выяснить, не хранится ли у коллеги незавершённый файл, иначе следующая загрузка создаст конфликт версий без технической возможности автоматически объединить изменения.
После редактирования файл возвращается как новая версия. Это снижает вероятность работы не с тем исходником, но требует корректно настроенного каталога, прав записи и понятного правила очистки. Персональная папка называется по логину, поэтому переименование учётной записи и ручное перемещение файлов должны выполняться согласованно.
WebDAV и побочные версии
Встроенный WebDAV показывает доступные папки и документы как удалённую файловую систему. Офисное приложение может открыть файл и сохранить результат обратно; такое сохранение обычно создаёт новую версию. Некоторые редакторы записывают файл несколько раз за одну операцию, поэтому история быстро разрастается. Настройка замены версии при совпадении пользователя, имени и типа уменьшает шум, но её следует применять только после теста, поскольку она меняет ожидаемую неизменяемость истории.
Проблемы подключения WebDAV часто связаны с базовым адресом, правилами переписывания, аутентификацией, прокси и особенностями клиента. Сначала проверьте доступ через простой клиент и отдельную тестовую учётную запись, затем подключайте офисные программы. Если дерево видно, но запись не проходит, сравните права на папку в SeedDMS, роль пользователя, блокировку документа и ограничения веб-сервера на методы PUT, MOVE и LOCK.
Права доступа, владельцы и наследование
Для папок и документов используются четыре уровня: отсутствие доступа, чтение, чтение и запись, неограниченный доступ. Право назначается пользователю или группе, а при отсутствии явного правила наследуется от родительской папки. Личное правило имеет приоритет над групповым, а среди применимых правил одного типа выбирается более высокое. Поэтому неожиданный доступ нужно искать сначала в индивидуальной записи, затем в членстве групп и только после этого в наследовании.
Администратор всегда получает неограниченный доступ, владелец — неограниченный доступ к своим объектам, а гостевая роль не поднимается выше чтения. Обычный пользователь без явной записи обычно имеет базовое чтение, если это допускает модель папки. Для закрытого раздела недостаточно убрать одну группу: нужно проверить значение доступа по умолчанию и всю цепочку наследования. Удобнее начинать с минимального права на верхнем уровне и добавлять разрешения конкретным группам.
Удаление документа, версии, вложения или папки, изменение ACL, разблокировка чужого документа, принудительная смена состояния и назначение рецензентов требуют неограниченного доступа. Редактирование метаданных, перемещение и подписка на уведомления обычно требуют чтения и записи. Такое различие полезно для делегирования: сотрудник может поддерживать карточку и добавлять редакции, не получая права удалять историю или менять круг доступа.
Доступ к содержимому в зависимости от состояния
Роль может запрещать чтение содержимого версии в определённом состоянии, даже когда сама карточка видима. Тогда SeedDMS ищет более раннюю доступную версию; если такой нет, скрывает документ целиком. Это позволяет показывать пользователям выпущенную редакцию, пока новая находится в согласовании. Правило не препятствует работе сотруднику с правом записи или назначенной задачей проверки, иначе он не смог бы принять решение по содержимому.
Перед внедрением такой схемы создайте матрицу: роли по строкам, состояния по столбцам, ожидаемый доступ к карточке и файлу в ячейке. Проверьте её тестовыми учётными записями, а не администратором, потому что его неизменяемые полномочия скрывают ошибки. Особое внимание уделите переходу к новой версии: пользователи должны продолжить видеть последнюю выпущенную редакцию, пока черновик не пройдёт процесс.
Роли и ограничения операций
Продвинутые права роли управляют не конкретным документом, а доступностью функций интерфейса. С их помощью можно скрыть административные действия, запретить удаление, ограничить изменение владельца, выключить отдельные команды или определить, какие состояния содержимого доступны. ACL отвечает на вопрос, что пользователь может делать с данным объектом, а роль — какие операции ему вообще разрешены. Ошибка настройки часто возникает, когда проверяют только один из этих уровней.
Для рядовых сотрудников полезна роль с загрузкой, изменением собственных метаданных и участием в назначенных маршрутах, но без массового удаления и изменения ACL. Руководителю может понадобиться утверждение, передача владельца и просмотр журналов. Ответственному за фонд — управление структурой и исправление классификации. Техническому администратору — настройки, пользователи, индексация и проверки, но не обязательно право принимать бизнес-решение вместо утверждающего.
Рецензирование и утверждение
Простой маршрут состоит из рецензирования и утверждения либо только из утверждения. Рецензенты и утверждающие назначаются при добавлении документа или версии. Каждый участник принимает или отклоняет содержимое с комментарием, а состояние пересчитывается по журналу действий. Группа может быть назначена вместо отдельного человека; для завершения шага достаточно решения одного её участника, поэтому группа должна отражать взаимозаменяемую роль, а не коллектив, где обязательны все подписи.
Обязательных рецензентов и утверждающих можно закрепить за пользователем-загрузчиком. Он вправе добавить других участников, но не удалить обязательных. Это удобно для правил вроде все документы отдела закупок проверяет юрист. Перед использованием проверьте, что обязательная учётная запись активна и имеет чтение документа. Иначе материал зависнет, а список участников покажет предупреждение.
Удаление единственного участника из незавершённого этапа может привести к автоматическому завершению, потому что больше некому принимать решение. Поэтому увольнение сотрудника нельзя начинать с удаления учётной записи. Сначала найдите его активные задачи, назначьте замену, передайте владение и только после проверки журналов отключайте или удаляйте профиль. Пустая группа рецензентов создаёт похожую остановку и должна контролироваться отдельно.
Комментарий как часть решения
Комментарий при принятии или отклонении нужен не для вежливой отметки, а для воспроизводимого решения. При отклонении укажите страницу, реквизит или требуемое исправление; при утверждении — основание, если оно не очевидно из самого документа. Однословные ответы усложняют следующую редакцию и аудит. Внутренний журнал сохраняет пользователя, время, состояние и пояснение, поэтому формулировки должны быть понятны человеку, который откроет карточку спустя месяцы.
Расширенные маршруты согласования
Расширенный механизм описывает маршрут состояниями и переходами. У каждого перехода есть действие и список пользователей или групп, которым разрешено его инициировать. Переход может требовать несколько срабатываний, поэтому состояние меняется только после выполнения всех условий. Начальное состояние задаёт точку входа, а конечные состояния связываются с выпуском или отклонением версии. Подмаршрут позволяет временно передать решение отдельному подразделению и затем вернуться в основной процесс.
Участники назначаются при проектировании маршрута, а пользователь при загрузке выбирает готовую схему. Это уменьшает случайные назначения, но повышает требования к администратору: нужно учесть замещения, пустые группы, чтение документа и достижимость конечных состояний. Менеджер маршрутов предупреждает об отсутствии начального состояния, конечных состояний и исполнителей, а также о циклах, но не блокирует сохранение всех ошибочных схем. Перед применением маршрут следует пройти на тестовом документе от начала до каждого возможного результата.
Механизм согласования выбирается для системы целиком. Если переключить его, пока документы находятся в незавершённом процессе другого типа, интерфейс не позволит завершить их обычным способом. Перед изменением найдите все версии в промежуточных состояниях и доведите их до результата. Это ограничение особенно важно на испытательном сервере, где администратор часто меняет настройки, а затем переносит конфигурацию в рабочую среду.
Почему исправление создаёт новый цикл
Маршрут прикреплён к неизменяемой версии и не редактирует файл. Если проверяющий отклоняет документ, автор исправляет исходник во внешней программе, загружает новую версию и запускает новый цикл. Попытка построить бесконечную петлю исправлений внутри одного маршрута противоречит модели версий: после изменения содержимого решение по старому файлу не должно автоматически переходить на новый. Правильный процесс связывает циклы историей одной карточки.
Ревизия и подтверждение получения
Ревизия предназначена для повторной проверки уже выпущенного содержимого в заданную дату. Назначенные пользователи или группы подтверждают актуальность либо отклоняют документ; после успешного завершения он снова получает выпущенное состояние, а при отклонении отмечается как требующий исправления. Для политик, инструкций, сертификатов и шаблонов договоров это надёжнее обычного напоминания, потому что результат фиксируется в карточке.
Подтверждение получения работает иначе: пользователи отмечают ознакомление или отказ с комментарием, но состояние документа от этого не меняется. Прогресс показывается в списке и подробной карточке. Режим подходит для рассылки приказов, инструктажей и обязательных уведомлений. Если требуется юридически значимая подпись, сама отметка получения не заменяет специализированную электронную подпись; она фиксирует действие внутри SeedDMS.
Поиск по карточкам и содержимому
Обычный поиск обращается к данным карточки: имени, комментариям, ключевым словам, категориям, владельцу, состоянию, датам и атрибутам. Он полезен даже без извлечения текста и даёт предсказуемый результат для структурированных реквизитов. Эти механизмы нужно различать при диагностике: документ может находиться по номеру договора в атрибуте, но не по фразе из PDF, если текст ещё не извлечён.
Для каждой группы MIME-типов задаётся внешняя команда, которая получает путь к файлу и должна вывести текст в UTF-8. Правила проверяются сверху вниз, поэтому точные типы размещают перед масками вроде image/* и *. Если требуется поиск по старым редакциям, их можно найти по метаданным и открыть вручную, но полнотекстовая выдача не обязана учитывать их содержимое.
Для PDF с текстовым слоем подходит утилита извлечения текста. Скан без распознанного слоя вернёт пустой или почти пустой результат, поэтому понадобится OCR через Tesseract или другое расширение. Перед массовой индексацией проверьте русский язык, поворот, качество, смешанные алфавиты и документы с ограничением копирования. Ошибочный OCR не повреждает оригинал, но создаёт ложные совпадения, поэтому важные реквизиты лучше хранить также в атрибутах.
Построение и обновление индекса
Индексирование большого хранилища лучше запускать из командной строки или планировщика, а не ожидать результата в одном веб-запросе. Задача должна выполняться от учётной записи, имеющей доступ к конфигурации, содержимому, каталогу индекса и внешним программам. После изменения команд извлечения старый индекс не исправится сам: потребуется повторная обработка документов. Сначала переиндексируйте небольшую выборку и сравните найденный текст.
Если поиск не возвращает новый документ, проверьте четыре звена: версия действительно стала последней, задача индексирования выполнилась, команда распознала MIME-тип и записала текст, индекс доступен процессу поиска. Отладочный режим и журналы полезнее многократной загрузки одного файла. При проблеме только с одним форматом запустите настроенную команду вручную на тестовом файле и убедитесь, что stdout содержит UTF-8 без бинарного мусора.
Категории, ключевые слова и контролируемые справочники
Категория задаёт устойчивый класс документа, а ключевые слова — дополнительные темы и варианты поиска. Категории администратор ведёт централизованно, что позволяет избежать орфографических дублей. Ключевые слова можно подбирать из общих и персональных списков, но они остаются более свободными. Для обязательного реквизита с единственным значением лучше пользовательский атрибут со списком, а не десяток похожих ключевых слов.
Перед массовой загрузкой составьте небольшой словарь и правила выбора. Например, тип документа хранится в категории, подразделение определяется папкой или атрибутом, контрагент — отдельным полем, тема — ключевыми словами. Не повторяйте одно и то же значение во всех механизмах: это увеличивает трудозатраты и порождает расхождения. Исключение оправдано, когда разные механизмы решают разные задачи, например категория управляет отчётом, а ключевое слово помогает свободному поиску.
Связанные документы, вложения и буфер обмена
Связь объединяет самостоятельные карточки без слияния истории. Ею удобно соединить договор и приложения, счёт и акт, инструкцию и форму проверки, исходный запрос и ответ. Публичность связи определяет, кто её видит, но доступ к целевому документу всё равно проверяется отдельно. Связь не должна использоваться как обход ACL: пользователь без прав не получит содержимое только потому, что видит связанное название.
Вложения прикрепляются к документу, а не к конкретной версии, и не проходят версионирование основного файла. Поэтому туда подходят вспомогательные материалы, которые не являются редакциями: миниатюра, дополнительная схема, сопроводительный файл. Если вложение само требует истории, согласования или реквизитов, правильнее создать отдельную карточку и связать её с основной.
Буфер обмена собирает папки и документы для группового перемещения или скачивания. Он особенно полезен, когда элементы находятся в разных участках списка или целевой раздел не виден одновременно. Перед массовой операцией просмотрите состав буфера и права на каждый объект: часть элементов может не переместиться из-за блокировки или недостаточного доступа, а смешанный результат труднее заметить.
Уведомления и контроль изменений
Пользователь может подписаться на документ или папку и получать сообщения об изменениях. Для папки уведомление охватывает события внутри неё в соответствии с настройками. Рецензенты и утверждающие могут оповещаться автоматически, а расширенный маршрут — отправлять сообщение участникам следующего перехода. Чтобы почта не превратилась в шум, подписывайте пользователей на рабочие области, где от них ожидается действие, а не на весь корень.
Доставка выполняется через SMTP либо почтовую функцию PHP. При заданном сервере используются параметры SMTP; пустой сервер передаёт отправку среде PHP. Для защищённого соединения учитываются порт и режим TLS или STARTTLS. Важен адрес отправителя и Return-Path: многие серверы отвергают письмо, если домен не разрешён для учётной записи. Проверяйте не только успешное выполнение в SeedDMS, но и журнал почтового сервера, папку спама и сообщения о недоставке.
Если уведомление о задаче не приходит, сначала откройте список задач в интерфейсе. Наличие задачи означает, что маршрут создан, а проблема относится к подписке или почте. Отсутствие задачи указывает на назначение участника, доступ к содержимому, состояние версии или пустую группу. Такое разделение экономит время: настройки SMTP не исправят ошибочный маршрут, а переназначение рецензента не поможет при блокировке почтовым сервером.
Планировщик и автоматические проверки
Планировщик хранит список задач, их параметры, расписание и состояние активности. В типовой установке доступны проверки просроченных документов, обновление полнотекстового индекса, контроль контрольных сумм, создание предварительных изображений и календарные действия. Сам интерфейс не запускает задачи по времени без внешнего вызова: системный cron или аналогичный механизм должен регулярно обращаться к консольному планировщику.
Для планировщика создаётся отдельный пользователь командной строки. Он не предназначен для входа в обычную рабочую область и получает необходимые права на служебные операции. Расписание задаётся выражением cron; активную задачу можно временно выключить, не удаляя её параметры. При первом запуске выбирайте частоту с запасом и измеряйте длительность: если обработка занимает дольше интервала, процессы могут накладываться.
Журнал запуска должен отвечать на три вопроса: стартовала ли задача, какие объекты обработала и чем завершилась. При отсутствии результата запустите ту же команду вручную от того же системного пользователя. Разница между ручным и автоматическим запуском обычно указывает на окружение: рабочий каталог, PATH, переменные, права, версию PHP или доступ к конфигурации. Не добавляйте все пути в глобальную среду; укажите необходимые значения явно в скрипте запуска.

Выбор частоты
Индексирование имеет смысл запускать чаще в рабочее время, если документы должны быстро появляться в поиске, и реже ночью для полного обхода. Проверку сроков обычно достаточно выполнять раз в сутки. Превью можно создавать вскоре после поступления файла, но при массовом импорте лучше обработать очередь после завершения передачи. Контрольные суммы дают максимальную пользу при регулярном сравнении с журналом изменений и резервными копиями, а не при случайном запуске.
Проверка контрольных сумм и целостности
SeedDMS может вычислять и проверять контрольные суммы файлов версий. Несовпадение означает, что содержимое на диске изменилось вне штатной операции, файл повреждён или данные восстановлены неправильно. Такая проверка не заменяет резервную копию и не исправляет файл, но быстро показывает расхождение между базой и хранилищем. После сигнала нужно остановить автоматическую очистку, сохранить журналы и сравнить объект с резервной копией.
Отдельная проверка объектов ищет нарушения согласованности: запись без файла, лишний файл, неверную связь или другую проблему структуры. Перед массовым исправлением выгрузите список и разберите причины. Удаление неизвестных файлов вручную опасно, потому что они могут принадлежать версии, которую интерфейс временно не показывает из-за прав или состояния. Восстановление должно учитывать и базу данных, и каталог содержимого из одной точки времени.
Журналы, статистика и аудит
Журнал фиксирует действия пользователей и служебные события. Фильтрация по пользователю, объекту, дате и операции помогает восстановить цепочку: кто загрузил версию, изменил метаданные, перенёс карточку, назначил права или принял решение. Для расследования важно сохранять время сервера и часовой пояс согласованными, иначе записи почты, прокси и SeedDMS будет трудно сопоставить.
Статистика показывает количество папок, документов, файлов и занимаемый объём. Она помогает увидеть рост, но не отвечает, какие данные можно удалить. Прежние версии могут занимать значительную часть хранилища и одновременно быть обязательной историей. Политику хранения нужно определять по типу документа и требованиям организации, а очистку выполнять через предусмотренные инструменты, чтобы база и файловая система оставались согласованными.
Пользователи, группы и передача ответственности
Учётная запись содержит логин, имя, электронную почту, роль, состояние, квоту и членство групп. Группа упрощает ACL и назначение задач, но её назначение должно быть однозначным: отдел, проект или функциональная роль. Смешение разных принципов в одной группе приводит к лишнему доступу. Менеджер группы может управлять некоторыми связанными настройками и уведомлениями, если это разрешено.
Отключение пользователя безопаснее немедленного удаления: вход прекращается, но история действий и назначения остаются доступными для анализа. Перед изменением проверьте документы во владении, блокировки, обязательные назначения, активные маршруты, персональные папки приёма и рабочую область выдачи. Затем передайте владение и задачи заменяющему сотруднику. Только после завершения процесса решайте, допустимо ли удаление профиля.
Квота ограничивает общий объём файлов пользователя; нулевое значение может означать отсутствие лимита, а индивидуальная квота переопределяет общую. При превышении загрузка останавливается или появляется предупреждение. Увеличение квоты без анализа откладывает проблему: проверьте дубли, ошибочные многократные версии, крупные вложения и неочищенные тестовые документы. Квота не освобождает администратора от контроля свободного места всего раздела.
Резервное копирование и восстановление
Полная резервная копия должна включать базу данных, каталог содержимого, конфигурацию, расширения и при необходимости кэш индекса или превью. Главный принцип — согласованная точка времени: база не должна ссылаться на версии, которые ещё не попали в копию, и наоборот. Для активной системы используйте короткое окно обслуживания, снимок файловой системы либо процедуру, которая гарантирует согласование снимков.
Экспорт отдельных папок и создание резервных пакетов полезны для переноса или дополнительной копии, но не всегда заменяют полное восстановление системы. Внутренние идентификаторы, права, маршруты и журналы хранятся в базе. Перед аварией нужно не только создавать резервные пакеты, но и регулярно развертывать их на тестовом сервере, входить под обычной учётной записью, открывать несколько версий, проверять поиск и сравнивать контрольные суммы.
Имя резервного пакета и путь должны укладываться в ограничения файловой системы и инструментов упаковки. Ошибки на больших папках часто связаны с временем выполнения, памятью, свободным местом или длиной имени. Для крупного хранилища надёжнее использовать системное резервирование с журналом и инкрементами, а встроенные выгрузки оставить для точечных задач пользователя.
Форматы файлов и внешние обработчики
Хранилище принимает документы разных типов и не ограничивается PDF. Однако чтение содержимого, создание миниатюры и преобразование зависят от настроенных внешних команд или расширений. Поэтому формулировка формат поддерживается должна уточнять действие: файл можно сохранить и скачать, но поиск по тексту или просмотр может быть недоступен. Эта разница особенно заметна для упакованных файлов, электронных книг, мультимедиа, чертежей и защищённых офисных файлов.
Команда извлечения получает входной файл и должна вывести UTF-8, команда превью — создать PNG заданной ширины, команда PDF-просмотра — сформировать PDF. Для каждого правила можно использовать точный MIME-тип или маску. Общая маска в начале перехватит специальные форматы и вызовет неподходящий обработчик, поэтому порядок правил является частью настройки. После изменений проверьте PDF, изображение, таблицу, презентацию и типичный редкий формат.
Интеграции с Tika и Tesseract расширяют извлечение текста, Collabora и OnlyOffice помогают редактировать офисные документы, антивирус проверяет поступающие файлы, а преобразователи создают PDF и изображения. Возможности появляются после установки и настройки соответствующего расширения и его зависимостей. Перед обновлением внешнего инструмента сохраните рабочую команду и тестовый набор: новая версия конвертера может изменить имя параметра, шрифты или результат распознавания.
Расширения и интеграции
Механизм расширений добавляет пункты меню, обработчики событий, команды, поля и интеграции, не меняя основной код вручную. Это упрощает обновление, но не отменяет совместимость: расширение должно соответствовать интерфейсам установленной системы и версии PHP. На рабочем сервере следует хранить перечень расширений, происхождение, версию, параметры, права каталогов и тестовый сценарий. Без такого реестра неисправность после обновления трудно локализовать.
Практические модули включают хранение писем, импорт из почтовых ящиков и внешних каналов, выдачу временных ссылок, загрузку внешними пользователями, скачивание папок, корзину, водяные знаки PDF, распознавание данных счетов, разбиение и уменьшение PDF, уведомления через корпоративные каналы, обмен с Paperless-ngx и режим совместимости с его клиентскими приложениями. Наличие модуля не означает, что функция включена по умолчанию; требуются установка, разрешения и проверка безопасности.
Временные ссылки удобны для передачи без создания учётной записи, но меняют модель риска. Ограничьте срок, область и возможность загрузки, не помещайте секрет в общедоступный журнал, а после завершения передачи отзывайте ссылку. Для внешней загрузки выделите отдельную папку с минимальными правами и состоянием черновика, чтобы получатель не публиковал файл сразу в утверждённом разделе.
REST API и автоматизация
REST API позволяет внешней системе создавать папки и документы, читать метаданные и выполнять поддерживаемые операции. Интеграцию следует строить через отдельную техническую учётную запись с минимальными правами и журналируемым назначением. Скрипт должен сохранять идентификатор созданного объекта, проверять код ответа, повторять только безопасные операции и не считать сетевой тайм-аут доказательством, что документ не был создан.
Для пакетного импорта полезно заранее вычислять собственный устойчивый ключ и хранить его в атрибуте. Перед созданием скрипт ищет карточку по этому ключу; при совпадении добавляет версию или обновляет метаданные по правилам, а не создаёт дубль. Имя файла не подходит как единственный ключ: сканеры повторяют названия, а пользователи переименовывают вложения.
Командные PHP-скрипты на основе ядра дают больше контроля на том же сервере, но работают в окружении операционной системы. Для них важны абсолютные пути, права, версия PHP, обработка исключений и журнал. Не запускайте импорт от суперпользователя только ради доступа: лучше выдать сервисной учётной записи точные права на каталог приёма и конфигурацию.
Развёртывание и основные зависимости
Для работы требуется веб-сервер с PHP, поддерживаемая база MySQL, SQLite или PostgreSQL и доступ процесса к каталогам содержимого, кэша и конфигурации. Quickstart-пакет содержит согласованный набор компонентов и пример структуры, но пути, базу, права и адрес сайта всё равно нужно настроить. SQLite удобна для небольшого теста, а многопользовательскую рабочую нагрузку разумно проверять на серверной СУБД с регулярным резервированием.
Каталог с оригиналами и конфигурацией лучше размещать вне публикуемого корня. Веб-серверу дают чтение и запись только там, где это необходимо, а пользователям операционной системы — по принципу минимальных прав. После распаковки проверьте владельца, группу, маску новых файлов и запрет прямой выдачи содержимого. Правильный HTTP-ответ страницы входа ещё не доказывает, что закрытый файл нельзя получить в обход приложения.
Начальную настройку следует выполнять на отдельном адресе, закрытом от внешних пользователей. Создайте базу, задайте каталоги, проверьте вход, смените стандартные реквизиты администратора, отключите ненужный гостевой доступ, настройте язык и почту, затем загрузите тестовый PDF. Только после проверки прав, версии, поиска, превью и резервного копирования переносите реальные документы.
PHP, модули и лимиты
Нужны драйвер PDO для выбранной базы, обработка многобайтовых строк и графическая библиотека для функций, связанных с изображениями. Дополнительные модули и утилиты зависят от поиска, превью, аутентификации и расширений. При белом экране или ошибке класса сначала сравните фактический набор модулей в веб-среде и командной строке: они могут использовать разные файлы конфигурации PHP.
Лимиты загрузки, памяти и времени должны соответствовать самым большим рабочим файлам и операциям индексации. Не ставьте произвольно огромные значения на публичном интерфейсе: они увеличивают последствия ошибочного или злоумышленного запроса. Для массового импорта используйте серверную папку и фоновую обработку, а обычной форме оставьте разумный предел.
Безопасность рабочей конфигурации
Доступ к системе должен идти по HTTPS, особенно если используются пароли и внешние ссылки. За обратным прокси корректно передавайте исходную схему и адрес, иначе ссылки в уведомлениях и перенаправления могут строиться неправильно. Файлы конфигурации не должны возвращаться как текст при ошибочной настройке PHP; это проверяют отдельным запросом к запрещённому пути и правилами веб-сервера.
Ключ конфигурации участвует в защите форм от подделки запросов и должен быть уникальным. Пароли администратора, базы и SMTP не следует хранить в общей документации или резервной копии без защиты. Отладочный режим выключают после диагностики, потому что подробные сообщения могут раскрывать пути, запросы и внутренние параметры. Журналы также требуют ACL и срока хранения.
Внешняя аутентификация сокращает число отдельных паролей, но не отменяет локальное сопоставление ролей и групп. Перед включением LDAP, OpenID Connect или прокси-аутентификации сохраните аварийный административный вход и протестируйте выход, блокировку, изменение адреса и удаление пользователя. Ошибка сопоставления группы не должна автоматически давать расширенные права.
Обновление без потери документов
Перед заменой файлов сохраните согласованную копию базы, содержимого и конфигурации, запишите установленные расширения и остановите задания планировщика. Обновление сначала выполняют на копии с тем же объёмом данных и внешними обработчиками. После запуска проверяют вход, дерево, случайные документы разных состояний, загрузку новой версии, поиск, WebDAV, почту и cron. Только затем повторяют процедуру в рабочей среде.
Нельзя копировать новую программу поверх старой без понимания структуры и символических ссылок: могут остаться удалённые файлы, несовместимые библиотеки или прежние права. Надёжнее развернуть чистый каталог, перенести документированные настройки и переключить веб-сервер после проверки. Каталог оригиналов при этом не должен перемещаться без резервной копии и сверки путей.
Расширения обновляются отдельно. Если после обновления страница падает, временно отключите необязательные модули и возвращайте их по одному, проверяя журналы. Ошибку ядра и ошибку расширения легче различить на минимальной конфигурации. Откат должен возвращать одновременно код, схему базы и конфигурацию из совместимого снимка; откат только файлов может оставить базу в новом состоянии.
Типовые ошибки и способы устранения
Файл загружается, но карточка не открывается
Проверьте журнал PHP и веб-сервера, свободное место, права на каталог содержимого и запись версии в базе. Если файл физически появился, не повторяйте загрузку много раз: сначала найдите документ по имени, дате и владельцу. Белая страница после сохранения часто означает фатальную ошибку уже после создания записи, поэтому повтор создаст дубль, а не исправит причину.
Нет миниатюры или полного просмотра
Убедитесь, что MIME-тип определён правильно, команда превью настроена для него, исполняемый файл доступен пользователю веб-сервера и каталог кэша разрешает запись. Запустите команду вручную с тем же файлом и проверьте выходной PNG или PDF. Если ручной результат есть, сравните PATH и ограничения внешних процессов в веб-среде; если нет, исправляйте конвертер, а не SeedDMS.
Поиск находит имя, но не текст PDF
Это означает, что поиск по базе работает, а полнотекстовая цепочка не завершена. Проверьте наличие текстового слоя командой извлечения, язык OCR для скана, время последнего индексирования и права на каталог индекса. После изменения обработчика удалите устаревшую запись индекса штатно и переиндексируйте документ. Копирование текста из PDF в браузере — быстрый способ понять, есть ли слой, но не гарантирует корректную кодировку.
Пользователь не видит кнопку
Команда может быть скрыта продвинутым правом роли, хотя у пользователя есть запись в ACL, либо требовать неограниченного доступа вместо чтения и записи. Повторите проверку под тестовым пользователем с теми же группами; администратор всегда видит больше и не подходит для воспроизведения.
Документ завис в согласовании
Откройте список рецензентов или переходов и найдите неактивную учётную запись, пустую группу, отсутствующее право чтения или незавершённое обязательное действие. Не меняйте глобальный механизм маршрута ради одного документа. В простом процессе уполномоченный владелец корректирует участников, в расширенном — администратор проверяет состояние и при необходимости возвращает маршрут к началу с учётом потери журнала переходов.
Планировщик не выполняется
Запустите консольную команду вручную от системного пользователя cron. Проверьте путь к PHP, рабочий каталог, конфигурацию, права на лог и отсутствие второго процесса. Если ручной запуск успешен, добавьте в cron абсолютные пути и перенаправление вывода. Пустой почтовый отчёт cron не доказывает успех, когда вывод отключён; используйте собственный журнал задачи.
Каталог приёма пуст в форме
Имя подкаталога должно точно совпадать с логином, веб-процесс должен иметь права чтения, а путь drop folder — указывать на существующий каталог. Файл из области приёма используется только при пустом поле локальной загрузки. Проверьте также расширение, символы имени и правила контейнера или SELinux, если системные права выглядят правильными, но процесс всё равно получает отказ.
Письма не доходят
Отправьте тест, просмотрите журнал приложения и SMTP, проверьте сервер, порт, шифрование, логин, пароль, адрес отправителя и Return-Path. Если сообщение принято сервером, дальнейшая проблема находится в доставке, фильтрах или DNS почтового домена. Если соединение не устанавливается, проверьте исходящий порт и сертификат. Не отключайте TLS как постоянное решение только ради прохождения теста.
Практический процесс для договоров
Создайте папки по подразделениям или видам договоров, атрибуты контрагент, номер, дата начала, дата окончания и ответственный, а также категории проект, подписан, приложение. Новый проект загружается как черновик, получает юридического рецензента и утверждающего владельца бюджета. Замечания фиксируются в решении, исправление загружается новой версией, а подписанный PDF завершает отдельный цикл выпуска.
Срок окончания служит для поиска и ревизии. За несколько недель до даты планировщик и уведомления помогают инициировать проверку продления. Приложения хранятся отдельными карточками, если у них собственные редакции, и связываются с договором. Скан подписи не должен заменять контроль доступа: папка подписанных экземпляров получает более узкий ACL, чем проекты.
Практический процесс для счетов и актов
Входящие файлы поступают из почтового ящика, каталога сканера или быстрой загрузки в папку разбора. Атрибуты фиксируют поставщика, номер, дату, сумму, валюту и заказ, а категория отличает счёт, акт и корректировку. После проверки реквизитов документ перемещается в рабочий раздел и направляется ответственному. OCR помогает искать содержание, но ключевые финансовые поля должны быть введены или извлечены контролируемым расширением и проверены человеком.
Дубли определяются не только по имени: поставщик может повторно прислать тот же PDF с другим названием. Сопоставляйте номер, дату, сумму и контрольную сумму файла. При исправлении поставщиком создавайте новую версию той же карточки, если речь о том же документе; кредит-ноту или отдельный корректировочный документ храните самостоятельной карточкой и связывайте с исходным счётом.
Практический процесс для инструкций и регламентов
Папки отражают область деятельности, атрибуты — владельца процесса, дату ввода, период пересмотра и применимые подразделения. Рабочая версия проходит рецензию специалистов и утверждение ответственного лица. После выпуска роль обычного сотрудника видит только утверждённое содержимое, а новый черновик остаётся доступен редакторам. Ревизия запускает повторную проверку в заданную дату без создания нового файла, если содержание остаётся актуальным.
Подтверждение получения позволяет отслеживать ознакомление сотрудников с важной инструкцией. Для изменения текста создаётся новая версия и новый процесс, потому что подтверждение старой редакции нельзя переносить на новую. В комментарии версии перечисляют изменённые разделы, чтобы рецензент сосредоточился на них, но всё равно проверяют документ целиком, если изменение затрагивает взаимосвязанные требования.
Практический процесс для хранилища сканов
Сканер сохраняет PDF в персональный или общий каталог приёма. Оператор импортирует небольшими партиями, проверяет ориентацию, читаемость, число страниц и соответствие имени, затем заполняет тип, дату, автора и номер дела. OCR запускается после контроля изображения; иначе распознавание плохого скана создаст большой индекс с ошибками. Оригинальный PDF сохраняется неизменным, а исправленный скан загружается новой версией с объяснением причины.
Для многостраничных дел следует решить, что является единицей карточки: отдельный документ, пакет за период или дело целиком. Слишком крупные файлы неудобны для просмотра и ревизии, слишком мелкие создают тысячи карточек. Выбор должен опираться на права, сроки хранения, поиск и вероятность отдельного изменения. Связи и общая папка позволяют объединить самостоятельные карточки без слияния в один гигантский PDF.
Производительность на большом хранилище
Основную нагрузку создают списки с большим числом элементов, преобразование превью, OCR, полнотекстовый индекс и резервное копирование. Не складывайте всё в одну папку: разумные подразделы уменьшают объём выдачи и упрощают ACL. Ограничьте число строк на странице, используйте поиск и не генерируйте тяжёлый полный просмотр для типов, которые пользователи редко открывают.
Внешние команды должны иметь тайм-аут, чтобы повреждённый или специально сложный файл не занял процесс бесконечно. При массовом импорте разделяйте передачу, создание превью и индексацию по времени. Следите за очередью косвенно через журналы и длительность задач. Если полный обход перестал помещаться в окно, индексируйте чаще небольшими порциями или масштабируйте обработчики, не запуская несколько процессов над одним объектом без блокировки.
База данных нуждается в обычном обслуживании, резервировании и мониторинге медленных запросов. Каталог содержимого — в достаточном числе файловых дескрипторов, свободных inode и пространства. Настройка Content Offset Directory и максимального числа подкаталогов помогает обходить ограничения файловой системы; менять её на заполненном хранилище без плана миграции нельзя.
Организация внедрения
Начните не с копирования всего сетевого диска, а с одного процесса, где особенно важны версии и согласование. Опишите типы документов, владельцев, группы, состояния, обязательные поля, сроки и действия при отклонении. Создайте тестовые учётные записи каждой роли и пройдите полный цикл от поступления до поиска и восстановления. Только после этого переносите следующую категорию.
Обучение должно строиться вокруг реальных действий: найти документ, понять актуальную версию, загрузить исправление, оставить решение, подписаться на папку и восстановить случайно закрытую задачу. Пользователю не нужен перечень всех административных настроек. Администратору, напротив, нужен регламент по резервированию, задачам cron, расширениям, журналам и восстановлению доступа.
Для качества данных назначьте ответственного за справочники и периодическую проверку. Отчёт по карточкам без категории, владельца, срока или обязательного атрибута выявляет накопившийся долг. Исправление лучше делать небольшими регулярными партиями. Массовая обязательность полей после нескольких лет свободной загрузки может заблокировать обычные операции, пока старые карточки не будут дополнены.
Сравнение SeedDMS с аналогами
| Программа | Лучше подходит для | Главное ограничение |
|---|---|---|
| SeedDMS | Командного хранилища с папками, версиями, ACL и согласованием | OCR и превью зависят от внешних обработчиков |
| PDF Commander | Индивидуальной правки, сборки и преобразования PDF | Нет центрального многопользовательского хранилища |
| Paperless-ngx | Автоматического OCR и классификации входящих сканов | Организация строится вокруг тегов и реквизитов, а не формального дерева согласования |
| Mayan EDMS | Крупного хранилища с OCR, метаданными, версиями и автоматизацией | Развёртывание и администрирование заметно сложнее для небольшой команды |
| OpenKM Community Edition | Корпоративного репозитория с поиском, версиями и рабочими процессами | Стек и настройка тяжелее простого PHP-хранилища |
| OpenDocMan | Небольшой базы файлов с простыми правами и утверждением | Меньше возможностей полнотекстовой обработки и расширения процессов |
SeedDMS стоит выбирать, когда важны привычная иерархия папок, точные ACL, история редакций и настраиваемое согласование без перехода к тяжёлой корпоративной платформе. Paperless-ngx удобнее для потока сканов, где главная задача — OCR и автоматическая раскладка; Mayan EDMS — для сложной автоматизации и очень большого хранилища; OpenKM — для более широкого корпоративного контура; OpenDocMan — для минимального набора DMS. PDF Commander рациональнее, когда одному пользователю нужно изменить сам PDF, а не вести коллективный жизненный цикл документа.
Чек-лист рабочей настройки
- Создать тестовую структуру папок и проверить наследование прав обычными учётными записями.
- Определить, какие реквизиты хранятся в категории, ключевых словах и пользовательских атрибутах.
- Загрузить PDF с текстом, скан, офисный файл и крупный документ; проверить скачивание и версионирование.
- Настроить извлечение текста, превью и при необходимости OCR, затем вручную проверить результат команд.
- Пройти простой и расширенный маршрут, включая отклонение, замену участника и новую версию.
- Настроить SMTP и убедиться, что уведомление принято сервером и доставлено адресату.
- Запустить планировщик от сервисной учётной записи и проверить журнал каждой задачи.
- Сделать согласованную резервную копию и восстановить её на отдельном стенде.
- Зафиксировать список расширений, внешних утилит, путей, прав и ответственных за обслуживание.
- Только после контрольного цикла переносить рабочие документы небольшими проверяемыми партиями.
Что важно помнить в ежедневной работе
Доступ определяется сочетанием роли, ACL, владельца и наследования. Поиск по реквизитам и поиск по содержимому используют разные данные. Согласование относится к неизменяемой версии, поэтому исправление всегда оформляется новой редакцией. Эти четыре правила объясняют большинство ситуаций, которые поначалу кажутся ошибкой интерфейса.
Раз в месяц полезно выбирать несколько карточек из разных разделов и проверять их как обычный пользователь: открывается ли выпущенная версия, понятен ли комментарий изменения, совпадает ли срок с документом, находятся ли реквизиты поиском, доставляются ли уведомления и не осталось ли заблокированных файлов без владельца работы. Такой выборочный контроль обнаруживает ошибки раньше, чем они затронут всё хранилище. Отдельно просматривают журнал планировщика, свободное место, состояние индекса и дату последнего успешного восстановления резервной копии; сам факт создания файла копии ещё не подтверждает, что из него можно вернуть рабочую структуру, права и версии.
SeedDMS приносит максимальную пользу, когда команда заранее договорилась о структуре, именовании, обязательных полях и порядке решений. Система сохраняет версии, контролирует права, напоминает о задачах и фиксирует журнал, но не определяет вместо организации, какой документ считать договором, кто отвечает за срок и что означает утверждение. Чёткий регламент превращает эти инструменты в воспроизводимый процесс, а регулярная проверка резервных копий и автоматических задач сохраняет его надёжность.