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