1C-Code → Ошибки 1С → Нарушение прав доступа
Сообщение платформы: Нарушение прав доступа
У пользователя нет права на то, что попытался сделать код. Сообщение короткое и обычно не называет, какого именно права не хватило, — отсюда и трудность.
// код читает справочник, а в роли не отмечено «Чтение» для него
Проверяется в конфигураторе: роль, вкладка прав, нужный объект. Смотреть надо ВСЕ роли пользователя разом: право даётся объединением, но отсутствие права в одной роли не компенсируется другой, если объект не отмечен нигде.
// право на справочник есть, а на эту организацию — нет
Ограничения на уровне записей действуют поверх обычных прав. Симптом узнаваемый: часть данных видна, часть нет, а сообщение одно и то же.
УстановитьПривилегированныйРежим(Истина);
// служебное чтение — и обратно
УстановитьПривилегированныйРежим(Ложь);
Иногда код обязан прочитать служебные данные, на которые прав у человека нет и быть не должно. Для этого есть привилегированный режим — но включать его на всю процедуру нельзя: он снимает проверки целиком, и вместе со служебным чтением пропустит всё остальное.
Включите в конфигураторе проверку прав от имени пользователя и повторите действие: платформа назовёт объект. Если данные видны частично — дело в RLS, смотрите ограничения в ролях. Раздавать «Полные права», чтобы «просто заработало», не стоит: это не починка, а отключение защиты.
Проверить себя на практике. В тренажёре те же ошибки возникают на настоящем интерпретаторе языка 1С: сообщения дословно те же, что у платформы, но исправить их можно сразу в браузере, без установки и без риска для рабочей базы.