В процессе работы с конфигурацией 1С:Документооборот (особенно версий 2.0 и 2.1) администраторы и разработчики часто сталкиваются с ситуацией, когда пользователь, обладая, казалось бы, всеми необходимыми ролями, не может пометить файл на удаление. Система выдает критическую ошибку: У вас нет прав для установки пометки удаления файла. При этом пользователь может быть автором файла или иметь полные права на папку. Разберем детально, почему так происходит и как решить эту проблему, опираясь на внутренние механизмы платформы и программный код конфигурации.
Для начала проанализируем, в какой момент возникает исключение. Как правило, ошибка проявляется при вызове метода УстановитьПометкуУдаления. В типовой конфигурации проверка прав встроена в обработчик ПередЗаписью справочника Файлы. Разберем фрагмент кода, который отвечает за блокировку операции:
Если ИзмененаПометкаУдаления Тогда
// Проверка права "Пометка на удаление".
Если Не РаботаСФайламиПереопределяемый.ПометкаУдаленияРазрешена(Ссылка) Тогда
ВызватьИсключение СтрШаблон(
НСтр("ru = 'У вас нет прав для установки пометки удаления файла ""%1"".'"),
Строка(Ссылка)
);
КонецЕсли;
КонецЕсли;
Здесь мы видим обращение к функции ПометкаУдаленияРазрешена в переопределяемом модуле. Это означает, что стандартных ролей 1С (таких как Интерактивная пометка удаления) в конфигураторе недостаточно. Система 1С:Документооборот использует сложную многоуровневую систему прав доступа (RLS), которая проверяет не только метаданные, но и бизнес-логику: состояние документа, права на папку и наличие дескриптора доступа.
Одной из самых распространенных причин является использование механизма Настройки доступности по состоянию. Если файл присоединен к документу (например, к договору), то его возможность редактирования и удаления напрямую зависит от текущего статуса этого документа. Для проверки этих параметров можно использовать обработку для анализа настроек доступности по состоянию.
Проанализируем ситуацию: документ находится в состоянии Согласован или Зарегистрирован. В настройках программы для этих состояний часто снимается флаг Редактирование. Поскольку пометка на удаление файла считается изменением данных владельца, система блокирует это действие.
Для исправления выполним следующие шаги:
Проект.В 1С:Документооборот файлы физически и логически располагаются в папках справочника ПапкиФайлов. Права на каждый конкретный файл рассчитываются исходя из прав на папку, в которой он лежит. Рассмотрим подробнее, как проверить эти настройки:
Выясним, есть ли у пользователя или его группы доступа право Изменение на папку. Важно понимать, что в 1С:ДО право Добавление позволяет только загрузить файл, но для установки пометки удаления (изменения состояния объекта СправочникОбъект.Файлы) требуется именно право на изменение.
Проанализируем структуру прав в контекстном меню папки:
Самая "коварная" техническая причина кроется в механизме дескрипторов. Для ускорения работы RLS (Row Level Security) система 1С:ДО записывает рассчитанные права в специальный регистр сведений ПраваПоДескрипторамДоступа. Если этот регистр содержит неактуальные данные, возникает ситуация: "права в настройках есть, а система не пускает". Для исправления подобных ошибок в регистрах прав подойдёт инструмент для устранения проблем с правами доступа.
Разберем, как восстановить корректную работу дескрипторов:
Обновление дескрипторов доступа и Пересчет прав доступа работают корректно и не зависли. Если в очереди обновления прав скопились миллионы записей, изменения вступят в силу не скоро.ПраваПоДескрипторамДоступа по ссылке на файл. Если для вашего пользователя там отсутствует запись с флагом Изменение, система выдаст ошибку, которую мы обсуждаем.Если файл является предметом активного бизнес-процесса (например, он отправлен на Ознакомление или Исполнение), 1С:ДО может блокировать его удаление для сохранения целостности задачи. Выясним, не запущены ли по файлу активные процессы:
Посмотрим на список процессов и задач по кнопке Процессы и задачи в карточке файла. Если процесс активен, система через функцию ПометкаУдаленияРазрешена вернет Ложь. В этом случае сначала необходимо завершить или прервать процесс, и только после этого помечать файл на удаление.
Подводя итог, можно сказать, что ошибка У вас нет прав... в 1С:ДО — это почти всегда результат работы программных фильтров, а не просто отсутствие роли в конфигураторе. Рекомендуется следующий алгоритм действий:
Помните, что в 1С:Документооборот права — это совокупность политик доступа, прав папок, состояний объектов и актуальности дескрипторов в базе данных.