Ошибка «Нарушение прав доступа!»: ищем недостающее право и выдаём его без лишних полномочий

· 10 мин

Содержание

Сообщение Нарушение прав доступа! в 1С 8.3 означает одно: у текущего пользователя нет права на действие с конкретным объектом. Чтобы исправить ошибку, откройте журнал регистрации с отбором по событию «Отказ в доступе», посмотрите, какое право и к какому объекту запрошено, и добавьте пользователю нужный профиль через Администрирование → Настройки пользователей и прав → Группы доступа.

Самый быстрый «способ» — включить сотруднику полные права — проблему прячет, а не решает. Бухгалтер получает доступ к зарплате, настройкам и удалению объектов. Ниже порядок, при котором человек получает ровно то право, которого не хватило.

Почему 1С выдаёт нарушение прав доступа

Платформа проверяет права при каждом обращении к данным: открытии формы, чтении записи, проведении документа, запуске отчёта. Если проверка не прошла, операция прерывается и появляется сообщение об ошибке. Причины укладываются в несколько групп.

  • 🔒 Нет роли на объект. Пользователю не выдан профиль, где есть право чтения или изменения нужного справочника, документа, регистра.
  • 🧱 Сработало ограничение на уровне записей (RLS). Право на объект есть, но запись относится к организации, складу или подразделению, которые пользователю закрыты.
  • 🔄 Обновили конфигурацию. В новом релизе появились объекты и роли, а профили пользователей их ещё не включают.
  • 🧩 Установили расширение. Новые объекты расширения доступны только тем ролям, где на них выставлены права.
  • 📂 Внешняя обработка или отчёт. Для интерактивного открытия внешних файлов нужно отдельное право.
  • ⚙️ Ошибка в коде доработки. Запрос без слова РАЗРЕШЕННЫЕ или серверная процедура, которая читает закрытые данные без привилегированного режима.

Сообщение одинаковое, а лечение разное. Поэтому сначала диагностика, потом настройка.

Как найти причину нарушения прав доступа в журнале регистрации

Журнал регистрации фиксирует отказы с указанием объекта и права. Это главный инструмент: без него настройка прав превращается в перебор профилей наугад.

Шаги в пользовательском режиме

  1. Войдите под администратором.
  2. Откройте Администрирование → Обслуживание и перейдите по ссылке «Журнал регистрации».
  3. Нажмите «Установить отбор». Укажите пользователя, у которого возникла ошибка, и интервал — последние 15–30 минут.
  4. В списке событий оставьте «Доступ» → «Отказ в доступе».
  5. Откройте найденную запись двойным щелчком. В полях «Данные» и «Комментарий» видно, какое право запрашивалось (Чтение, Изменение, Проведение, Просмотр) и к какому объекту метаданных.

Тот же журнал открывается из Конфигуратора: Администрирование → Журнал регистрации.

Если событий «Отказ в доступе» нет, проверьте уровень журнала в Конфигураторе: Администрирование → Настройка журнала регистрации. При уровне «Не регистрировать» или «Регистрировать ошибки» части событий не будет. Временно включите регистрацию всех событий, повторите ошибку и верните прежний уровень — полный журнал быстро растёт.

Остановка по ошибке в отладчике

Когда журнал указывает на объект, но непонятно, какое действие к нему обращается, подключите отладку. В Конфигураторе включите Отладка → Остановка по ошибке, запустите сеанс под пользователем с проблемой и повторите действие. Отладчик остановится на строке кода, где упала проверка, а стек вызовов покажет, из какой формы и процедуры пришёл вызов.

Этот приём нужен в доработанных базах: ошибка часто сидит в подписке на событие или обработчике проведения, а не в той форме, которую видит пользователь.

Диагностика: выберите симптом

Настройка прав доступа в режиме «Предприятие»

В типовых конфигурациях на библиотеке стандартных подсистем (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) права выдают не ролями напрямую, а через профили и группы доступа. Всё находится в одном месте: Администрирование → Настройки пользователей и прав.

Как устроена схема

ЭлементЧто этоПример
РольНабор прав на объекты, задаётся в Конфигураторе«Добавление и изменение документов ОС»
Профиль группы доступаГотовый набор ролей под должность«Бухгалтер», «Кадровик», «Кладовщик»
Группа доступаПрофиль + список пользователей + ограничения«Бухгалтерия ООО Ромашка»
ПользовательПолучает сумму прав всех своих группИванова И. И.

Права складываются: если человек входит в две группы, у него есть всё, что дают обе. Отнять право через вторую группу нельзя.

Как добавить недостающее право

  1. По журналу регистрации определите объект, например регистр «Расчёты с контрагентами».
  2. Откройте Администрирование → Настройки пользователей и прав → Профили групп доступа. В карточке профиля на вкладке с ролями видно, какие роли он включает.
  3. Подберите поставляемый профиль, который покрывает нужную работу. Если подходит — добавьте пользователя в соответствующую группу доступа.
  4. Если поставляемый профиль даёт слишком много, скопируйте его и в копии оставьте только нужные роли. Поставляемые профили не правьте: при обновлении конфигурации они вернутся к исходному составу.
  5. Сохраните группу доступа. Пользователь должен закрыть программу и войти заново — права в открытом сеансе не обновляются.

Быстрая проверка результата — отчёт «Права доступа», который открывается из карточки пользователя. Он показывает итоговые права по объектам и через какие группы они получены.

Профиль «Администратор» даёт роль «Полные права». Выдавайте его только тем, кто отвечает за базу. Для бухгалтера, который «не может провести документ», это неверный ответ, даже если ошибка пропадает.

Глубокая настройка прав в Конфигураторе

Конфигуратор нужен в трёх случаях: в базе нет подсистемы профилей (самописная или старая конфигурация), нужна новая роль под доработку или права надо выдать на объекты расширения.

Пользователи и роли напрямую

Список пользователей информационной базы — Администрирование → Пользователи. В карточке пользователя на вкладке «Прочие» отмечаются роли. В конфигурациях без БСП это и есть основной способ выдать права.

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

Своя роль под доработку

Если вы добавили в конфигурацию объект, на него нужна роль:

  1. В дереве конфигурации откройте Общие → Роли и создайте роль.
  2. В редакторе роли найдите свой объект и отметьте права: Чтение, Добавление, Изменение, Просмотр, Проведение — по задаче.
  3. Обновите конфигурацию базы данных.
  4. В БСП-конфигурации включите роль в свой профиль группы доступа в режиме «Предприятие».

Типовую конфигурацию при этом лучше не снимать с поддержки: роль и объект удобнее держать в расширении.

Права на объекты расширения

После установки расширения пользователи без полных прав часто получают нарушение прав доступа на его справочники и обработки. Причина в том, что новым объектам права никто не выдал.

Решение — заимствовать в расширение подходящую типовую роль (например, базовую роль пользователей конфигурации) и выставить в ней права на объекты расширения. Тогда все, у кого есть эта роль, получат доступ автоматически. Другой путь — создать в расширении собственную роль и подключить её к профилю.

Код, который ломает права

Две ошибки разработчика дают нарушение прав доступа даже при правильно настроенных профилях:

  • 📝 Запрос без РАЗРЕШЕННЫЕ. Если включено ограничение на уровне записей, запрос, который натыкается на закрытую запись, падает целиком. Со словом РАЗРЕШЕННЫЕ закрытые записи просто не попадают в выборку.
  • 🛡 Служебная логика без привилегированного режима. Если серверная процедура должна читать данные, закрытые для пользователя (например, константу настроек), её выносят в общий модуль с флагом «Привилегированный» или оборачивают в привилегированный режим.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Реализация.Ссылка,
    Реализация.Организация,
    Реализация.СуммаДокумента
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода

Привилегированный режим отключает проверку прав полностью. Используйте его точечно, только на чтение служебных данных и только на сервере. Пользовательские данные через него не отдавайте — иначе вы обходите ограничения, которые бухгалтерия настроила намеренно.

Ограничение доступа на уровне записей (RLS)

RLS отвечает за ситуацию «документ вижу, а соседний по другой организации — нет». Права на объект у пользователя есть, но конкретные записи ему закрыты по значению поля: организации, складу, подразделению, контрагенту.

Как включается

  1. Откройте Администрирование → Настройки пользователей и прав.
  2. Установите флажок «Ограничивать доступ на уровне записей».
  3. В карточке группы доступа на вкладке «Ограничения доступа» выберите вид ограничения и список разрешённых значений, например две организации из пяти.

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

Как RLS приводит к ошибке

Обычно ограничение просто скрывает записи из списков. Ошибка появляется, когда операция обязательно обращается к закрытой записи:

  • документ по разрешённой организации ссылается на склад, которого нет в списке группы;
  • проведение читает остатки по закрытому подразделению;
  • самописный отчёт строит запрос без РАЗРЕШЕННЫЕ;
  • пользователь открывает ссылку на объект, которую ему прислали коллеги.

Проверка простая: временно добавьте пользователя в группу без ограничений по нужному виду и повторите действие. Ошибка исчезла — дело в RLS, и нужно расширить список значений, а не профиль.

Ограничения по разным группам доступа тоже складываются. Если человек состоит в группе «Склад Москва» и в группе без ограничения по складам, он увидит все склады.

Особые случаи нарушения прав доступа в 1С 8.3

Внешние отчёты и обработки

Для открытия файлов .erf и .epf через меню «Файл» нужно отдельное право на интерактивное открытие внешних отчётов и обработок. В БСП-конфигурациях его даёт поставляемый профиль «Открытие внешних отчетов и обработок». Безопаснее подключить файл через справочник дополнительных отчётов и обработок — тогда право на открытие произвольных файлов не нужно.

Синхронизация, веб-сервисы и COM-соединение

Обмен с другой базой, сайтом или банком работает под отдельным пользователем. Если этому пользователю не выдали профиль для синхронизации, обмен падает с нарушением прав, хотя в интерфейсе у сотрудников всё нормально. Ищите в журнале регистрации события именно этого служебного пользователя.

Права «Режим Все функции» и запуск клиента

Меню «Все функции», запуск толстого клиента, внешнее соединение — это отдельные права роли, а не объектов. Если пользователь видит ошибку при запуске программы, а не при работе с данными, проверьте именно эти права. Команда «Все функции» показывается в меню после флажка в Сервис → Параметры, но работает, только если право на этот режим есть в ролях пользователя.

Права операционной системы

Есть ошибки, которые похожи по смыслу, но приходят от Windows, а не от 1С:

  • Файловая база. Пользователю Windows нужны права на чтение и запись в папку базы. Без них программа не может создать служебные файлы и не открывает базу.
  • Клиент-серверная база. Служба сервера 1С работает под отдельной учётной записью. Ей нужен доступ к каталогу кластера и к СУБД. Пароль или права этой учётной записи меняют только с согласования администратора сервера.

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

Частые ошибки при настройке прав

ОшибкаЧем плохоКак правильно
Выдать «Полные права», чтобы ошибка ушлаПользователь может удалять объекты и менять настройкиНайти конкретное право по журналу
Править поставляемый профильИзменения сотрутся при обновленииРаботать с копией профиля
Ставить роли в Конфигураторе в БСП-базеРоли пропадут при записи группы доступаНастраивать через группы доступа
Проверять права, не перезаходя в программуКажется, что настройка не сработалаЗакрыть сеанс и войти заново
Включить RLS днём на большой базеФоновый пересчёт тормозит работуВключать вечером или в выходной

Частые вопросы

Почему у администратора тоже появляется нарушение прав доступа?
Чаще всего администратор работает под учётной записью без роли «Полные права» или открывает объект расширения, на который права не выданы. Проверьте роли пользователя в Конфигураторе и роли расширения.
Как узнать, какие права у пользователя сейчас?
Откройте карточку пользователя и сформируйте отчёт «Права доступа». Он показывает права по объектам и группы, через которые они получены.
Можно ли выдать право только на один документ?
Да. Скопируйте подходящий профиль, оставьте в нём роли под нужный документ и создайте группу доступа с этим профилем. Если нужно ограничить и записи, добавьте ограничение по организации или складу.
Почему после обновления релиза ошибка появилась у всех?
В релизе появились новые объекты и роли. Поставляемые профили обновляются автоматически, а ваши копии — нет. Добавьте новые роли в собственные профили.
Что делать, если в базе не осталось ни одного администратора?
Пароль и роли правятся в Конфигураторе под пользователем с административными правами. Если такого нет, восстановите базу из резервной копии или обратитесь к специалисту, который сопровождает конфигурацию. Удалять пользователей наугад нельзя: можно лишиться и последнего доступа.