Почему пользователи не могут пометить файлы на удаление в 1С:Документооборот и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот
← На главную

В процессе работы с конфигурацией 1С:Документооборот (особенно версий 2.0 и 2.1) администраторы и разработчики часто сталкиваются с ситуацией, когда пользователь, обладая, казалось бы, всеми необходимыми ролями, не может пометить файл на удаление. Система выдает критическую ошибку: У вас нет прав для установки пометки удаления файла. При этом пользователь может быть автором файла или иметь полные права на папку. Разберем детально, почему так происходит и как решить эту проблему, опираясь на внутренние механизмы платформы и программный код конфигурации.

Анализ программной ошибки в модуле объекта

Для начала проанализируем, в какой момент возникает исключение. Как правило, ошибка проявляется при вызове метода УстановитьПометкуУдаления. В типовой конфигурации проверка прав встроена в обработчик ПередЗаписью справочника Файлы. Разберем фрагмент кода, который отвечает за блокировку операции:


Если ИзмененаПометкаУдаления Тогда
    // Проверка права "Пометка на удаление".
    Если Не РаботаСФайламиПереопределяемый.ПометкаУдаленияРазрешена(Ссылка) Тогда
        ВызватьИсключение СтрШаблон(
            НСтр("ru = 'У вас нет прав для установки пометки удаления файла ""%1"".'"), 
            Строка(Ссылка)
        );
    КонецЕсли;
КонецЕсли;

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

Решение 1: Проверка настроек доступности по состоянию

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

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

Для исправления выполним следующие шаги:

  1. Перейдем в раздел Настройка и администрирование — Настройки доступности по состоянию.
  2. Найдем вид документа, к которому прикреплен проблемный файл.
  3. Проверим колонку Редактирование для текущего состояния документа.
  4. Если редактирование запрещено, пользователь не сможет пометить файл на удаление, даже если он является его автором. Нужно либо изменить настройки, либо временно перевести документ в состояние Проект.

Решение 2: Права доступа на папки и наследование

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

Выясним, есть ли у пользователя или его группы доступа право Изменение на папку. Важно понимать, что в 1С:ДО право Добавление позволяет только загрузить файл, но для установки пометки удаления (изменения состояния объекта СправочникОбъект.Файлы) требуется именно право на изменение.

Проанализируем структуру прав в контекстном меню папки:

Решение 3: Обновление дескрипторов доступа

Самая "коварная" техническая причина кроется в механизме дескрипторов. Для ускорения работы RLS (Row Level Security) система 1С:ДО записывает рассчитанные права в специальный регистр сведений ПраваПоДескрипторамДоступа. Если этот регистр содержит неактуальные данные, возникает ситуация: "права в настройках есть, а система не пускает". Для исправления подобных ошибок в регистрах прав подойдёт инструмент для устранения проблем с правами доступа.

Разберем, как восстановить корректную работу дескрипторов:

  1. Проверка регламентных заданий: Убедимся, что задания Обновление дескрипторов доступа и Пересчет прав доступа работают корректно и не зависли. Если в очереди обновления прав скопились миллионы записей, изменения вступят в силу не скоро.
  2. Ручной пересчет: В карточке документа или папки (в зависимости от версии) можно зайти в Права доступа — Дополнительно и нажать кнопку Пересчитать права. Это заставит систему немедленно обновить дескриптор для данного объекта.
  3. Проверка через консоль запросов: Если вы программист, проанализируйте содержимое регистра ПраваПоДескрипторамДоступа по ссылке на файл. Если для вашего пользователя там отсутствует запись с флагом Изменение, система выдаст ошибку, которую мы обсуждаем.

Решение 4: Проверка блокировок процессами

Если файл является предметом активного бизнес-процесса (например, он отправлен на Ознакомление или Исполнение), 1С:ДО может блокировать его удаление для сохранения целостности задачи. Выясним, не запущены ли по файлу активные процессы:

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

Итоги и рекомендации

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

  1. Проверить состояние владельца файла (документа) и настройки доступности.
  2. Убедиться, что на папку файла выданы права на Изменение.
  3. Запустить регламентное задание по обновлению прав или выполнить принудительный пересчет прав для объекта.
  4. Убедиться, что файл не занят другим пользователем для редактирования (не горит "зеленым"), так как это тоже может вызывать ложное сообщение об отсутствии прав в некоторых версиях.

Помните, что в 1С:Документооборот права — это совокупность политик доступа, прав папок, состояний объектов и актуальности дескрипторов в базе данных.

← На главную