Зачастую при внедрении и сопровождении 1С:Документооборот возникает специфическая задача по настройке прав. Проанализируем следующую ситуацию: в базе ведется учет по нескольким организациям (например, по пяти). Нам необходимо дать конкретному пользователю право на просмотр абсолютно всех внутренних документов только по одной из этих организаций. При этом пользователь должен видеть эти документы вне зависимости от того, является ли он их автором, согласующим или участником процесса.
На первый взгляд, решение кажется очевидным: нужно просто зайти в политики доступа, разрешить пользователю чтение и редактирование внутренних документов и указать в ограничениях нужную организацию. Однако на практике, зайдя под этим пользователем, мы обнаруживаем проблему: он видит только те документы (даже по разрешенной организации), в которых непосредственно участвует. Остальной массив документов организации от него скрыт.
Давайте подробно разберем, почему так происходит, выясним причину такого поведения системы и рассмотрим эффективные способы решения этой задачи.
Чтобы понять суть проблемы, нам необходимо разобраться с архитектурой прав в 1С:Документооборот. Главная причина, по которой пользователь не видит нужные документы, кроется в механизме Рабочих групп объектов.
Запомним одно жесткое и критически важное правило системы: если в карточке конкретного документа заполнена рабочая группа, то все общие «Политики доступа» для этого документа перестают действовать.
Рабочая группа документа имеет наивысший приоритет (своего рода эксклюзивный доступ). Как только в документ добавляется хотя бы один участник в рабочую группу, система начинает считать, что доступ к этому документу строго конфиденциален. С этого момента документ будут видеть только:
Обычный пользователь, даже если ему выданы широкие права на организацию через общие политики доступа, столкнется с невидимой стеной. Рабочая группа отменяет работу политик доступа для конкретного объекта. Выдавать же роль Чтение внутренних документов без ограничений нецелесообразно, так как в этом случае пользователь увидит документы вообще по всем организациям, что нарушает наше исходное условие.
Как справедливо заметили специалисты, добавлять простого пользователя в локальные администраторы — это "лечить мигрень гильотиной", если делать это необдуманно. Однако система предоставляет нам инструмент тонкой настройки, который идеально подходит для нашего случая.
Мы можем использовать статус Локальные администраторы, но назначить его не на всю базу, а в разрезе конкретной организации. Рассмотрим по шагам, как это работает:
Что это нам даст? Права локального администратора спроектированы так, что они игнорируют ограничения рабочих групп. Пользователь получит "суперправа", но только в рамках указанной организации. Он сможет беспрепятственно видеть все документы этой компании, даже если его нет в их рабочих группах. При этом доступ к документам оставшихся четырех организаций по-прежнему будет регулироваться стандартными правилами, и лишнего он не увидит. Это самый безопасный и штатный путь решения.
Если назначение административных ролей (пусть и локальных) по политикам безопасности вашей компании недопустимо, проанализируем альтернативный вариант — функционал Делегирования прав.
Предположим, у этой конкретной организации есть директор, руководитель филиала или куратор-делопроизводитель, который по умолчанию имеет доступ ко всем ее внутренним документам (например, он автоматически включается в рабочие группы или имеет соответствующие полномочия).
В этом случае руководитель может настроить делегирование своих прав нашему целевому пользователю. Система позволит сотруднику просматривать тот же объем документов организации, что и руководителю, без необходимости перекраивать глобальную матрицу доступа и ломать логику рабочих групп. Это отлично работает для помощников руководителей или аудиторов.
Посмотрим на структуру хранения документов. Если документооборот на вашем предприятии организован так, что внутренние документы жестко структурированы по папкам, и для каждой организации заведена своя корневая папка (или система папок), мы можем решить задачу на уровне прав папок.
Права папок в 1С:Документооборот — это дополнительный слой безопасности, который может сужать или расширять базовые политики. Вы можете дать пользователю полные права на чтение конкретной папки нужной организации.
Важный нюанс: при использовании этого метода всегда помните золотое правило системы 1С:Документооборот: запрещающие права имеют больший приоритет, чем разрешающие. Если где-то на уровне папки стоит прямой запрет, никакие политики его не перекроют.
Если базовых политик не хватает, обратите внимание на опцию Специальные разрешения в политиках доступа. Включив эту настройку, вы сможете задать более сложную матрицу прав. Например, можно жестко связать профиль групп доступа, конкретную организацию и предоставить право исключительно на чтение. Специальные разрешения обладают наивысшим приоритетом внутри самих политик доступа, хотя, подчеркнем еще раз, они всё равно спасуют перед заполненной рабочей группой документа.
Также стоит отметить особенности, если вы используете новую редакцию 1С:Документооборот 3.0. В ней активно применяется принцип выдачи прав «по касанию». Система обучена автоматически добавлять в рабочую группу документа всех сотрудников, которые с ним как-либо взаимодействуют (создателей, участников согласования, исполнителей задач по документу). Если в настройках конкретного вида документа вы установили жесткий запрет на автоматическое расширение рабочей группы, это может стать неочевидной причиной, почему рядовые сотрудники внезапно перестают видеть документы, с которыми должны работать.
Подводя итог: при проектировании прав в 1С:Документооборот всегда учитывайте конфликт между общими политиками и локальными рабочими группами объектов. Для предоставления сквозного доступа к документам отдельного юридического лица используйте настройку локальных администраторов с ограничением по организации — это самое эффективное и прозрачное решение.