На что именно не хватает прав в 1С 8.3: от текста ошибки до отладчика
Содержание
Чтобы проверить, каких прав доступа не хватает пользователю в 1С, откройте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации) и поставьте отбор по событию «Доступ. Отказ в доступе». В колонке данных платформа пишет, какое право и к какому объекту было запрошено. Если записей нет, следующие шаги — подробный текст ошибки, отчёт о правах пользователя и отладчик.
Типичная ситуация: кладовщик открывает поступление, нажимает «Провести» и получает Нарушение прав доступа!. Администратор добавляет ему ещё одну группу доступа, потом ещё одну, и через неделю у кладовщика почти полные права. Найти точную недостающую роль быстрее и безопаснее, чем раздавать всё подряд. Методы ниже работают в типовых конфигурациях на платформе 8.3 (БП 3.0, ЗУП 3.1, УТ 11), а приёмы с конфигуратором — в любой базе.
Что говорит само сообщение о нехватке прав
Ошибка прав почти всегда выглядит одинаково: окно с текстом Нарушение прав доступа!. Но полезная часть спрятана в подробностях.
- В окне ошибки нажмите ссылку на подробный текст (или кнопку формирования отчёта об ошибке).
- Найдите строки с именем объекта метаданных:
Документ.…,Справочник.…,РегистрНакопления.…. - Найдите строку модуля, на которой сработала проверка: например,
ОбщийМодуль.…МодульСервераилиДокумент.….МодульОбъекта.
Как читать результат:
- 🎯 Указан объект — это прямой ответ. Ищите, какая роль даёт на него нужное право (просмотр, изменение, проведение).
- 🧩 Указан только модуль и строка — права не хватило внутри программного кода. Чаще всего код читает регистр или справочник, о котором пользователь даже не знает. Здесь поможет отладчик.
- 🔒 Ошибка возникает только на части документов — похоже на ограничение на уровне записей (RLS), а не на нехватку роли.
Попросите пользователя не закрывать окно ошибки, а сделать скриншот подробного текста. Повторить ошибку «как было» удаётся не всегда.
Обратите внимание и на момент появления. Ошибка при открытии списка — это право просмотра. При записи — изменения или добавления. При проведении — права на регистры, в которые документ пишет движения.
Какое право отвечает за действие
Платформа различает программные и интерактивные права. Программные нужны коду, интерактивные — кнопкам в форме. Пользователю обычно нужны оба вида.
| Действие пользователя | Право на объект | Что ещё проверить |
|---|---|---|
| Открыть список или документ | «Чтение», «Просмотр» | права на справочники в реквизитах формы |
| Создать новый документ | «Добавление», «Интерактивное добавление» | права на объекты, которые заполняются автоматически |
| Изменить и записать | «Изменение», «Редактирование» | ограничения на уровне записей |
| Провести | «Проведение», «Интерактивное проведение» | права на изменение регистров, куда идут движения |
| Пометить на удаление | «Интерактивная пометка удаления» | — |
Частая ловушка с проведением: на сам документ все права есть, но роль не даёт изменять регистр накопления или сведений, в который документ пишет движения. Ошибка выглядит как нехватка прав на документ, хотя дело в регистре.
Группы доступа пользователя: проверка через «Администрирование»
В типовых конфигурациях на БСП права выдаются не ролями напрямую, а группами доступа. Цепочка такая: профиль содержит набор ролей → группа доступа привязывает профиль к пользователям и задаёт ограничения → пользователь получает сумму ролей всех своих групп.
Где смотреть:
| Что проверить | Путь в БП 3.0, ЗУП 3.1, УТ 11 |
|---|---|
| Пользователь и его группы | Администрирование → Настройки пользователей и прав → Пользователи → карточка → «Права доступа» |
| Состав ролей профиля | Администрирование → Настройки пользователей и прав → Профили групп доступа |
| Участники и ограничения группы | Администрирование → Настройки пользователей и прав → Группы доступа |
Порядок проверки:
- Откройте карточку пользователя и посмотрите, в каких группах доступа он состоит.
- Откройте профиль каждой группы. На вкладке ролей видно, какие роли в него входят.
- Сравните с коллегой, у которого та же операция проходит. Разница в группах часто и есть ответ.
- Если группы одинаковые, смотрите вкладку ограничений в самих группах: у коллеги может быть разрешена другая организация или склад.
Если в базе нет групп доступа
В нетиповых и сильно доработанных конфигурациях без БСП групп доступа нет. Роли назначаются прямо пользователю в конфигураторе: Администрирование → Пользователи → карточка пользователя → вкладка «Прочие». Там видно, какие роли отмечены флажками. Сравните этот список с пользователем, у которого операция проходит, и найдите роль, которой не хватает.
Изменённые роли применяются при следующем входе в программу. Пользователь должен закрыть 1С и открыть её снова, иначе проверка покажет старую картину.
Отчёт о правах доступа пользователя
Смотреть профили по одному долго. В БСП есть отчёт, который сводит права пользователя по объектам в одну таблицу.
Как открыть:
- из карточки пользователя — через меню отчётов в командной панели, отчёт «Права доступа »;
- в свежих версиях БСП есть ещё отчёт «Анализ прав доступа» — найдите его через
☰ → Все функции → Отчеты.
Если пункта «Все функции» в главном меню нет, включите его: ☰ → Сервис → Параметры → флажок «Отображать команду “Все функции”».
Что показывает отчёт:
- 📄 список объектов (документы, справочники, регистры), к которым есть доступ;
- ✏️ разрезы прав: чтение, добавление, изменение, интерактивные действия;
- 🔒 какие ограничения на уровне записей действуют (по организациям, складам, контрагентам);
- 👥 через какую группу доступа пришло каждое право.
Приём: сформируйте отчёт для двух пользователей — того, у кого ошибка, и того, у кого всё работает. Сохраните оба в Excel и сравните строки по нужному объекту. Недостающее право и группа, через которую оно приходит, станут видны сразу.
Журнал регистрации: отказы в доступе
Журнал регистрации фиксирует момент, когда платформа отказала в доступе. Это лучший способ найти ошибку, которую пользователь не смог показать.
- Откройте
Администрирование → Обслуживание → Журнал регистрации. В конфигураторе тот же журнал —Администрирование → Журнал регистрации. - Нажмите «Установить отбор».
- Укажите пользователя и интервал времени, когда случилась ошибка.
- В списке событий отметьте «Доступ. Отказ в доступе».
- Откройте найденную запись и посмотрите поле данных: там указаны право и объект метаданных.
Если таких событий нет, снимите отбор по событию и посмотрите все ошибки пользователя за ту же минуту. Рядом обычно лежит запись с текстом исключения и модулем, где оно случилось.
Журнал хранит записи только при включённом уровне регистрации. Проверьте настройку в конфигураторе: Администрирование → Настройка журнала регистрации. Для разбора прав достаточно уровня «Регистрировать ошибки» или выше.
Проверка прав в конфигураторе и отладчике
Когда журнал и отчёт молчат или ошибка возникает глубоко в коде, переходите к конфигуратору. Здесь три рабочих приёма.
Таблица «Все роли»
В дереве конфигурации щёлкните правой кнопкой по ветке «Роли» и выберите «Все роли». Откроется матрица: строки — объекты метаданных, колонки — роли. Найдите объект из текста ошибки и посмотрите, в каких ролях стоит нужное право. Затем найдите профиль группы доступа, в который входит такая роль.
Функция ПравоДоступа()
Проверить конкретное право конкретного пользователя можно одной строкой. В режиме отладки откройте окно вычисления выражения (Shift+F9) и выполните:
ПравоДоступа("Изменение", Метаданные.Документы.РеализацияТоваровУслуг,
ПользователиИнформационнойБазы.НайтиПоИмени("Иванова"))
Результат Ложь означает, что права нет ни в одной роли пользователя. Вместо «Изменение» подставьте нужное право: «Чтение», «Добавление», «Проведение», «Просмотр». Вместо пользователя третьим параметром можно передать роль: Метаданные.Роли.ИмяРоли.
Имя пользователя в НайтиПоИмени — это имя для входа из списка пользователей конфигуратора, а не ФИО из справочника.
Остановка по ошибке
Этот способ показывает точную строку кода, где не хватило прав.
- В конфигураторе откройте
Сервис → Параметры → Запуск 1С:Предприятияи укажите имя и пароль проблемного пользователя. Удобнее завести тестового пользователя с теми же группами доступа. - Включите
Отладка → Остановка по ошибке. - Запустите отладку (
F5) и повторите действие, на котором была ошибка. - Отладчик остановится на проблемной строке. Посмотрите стек вызовов и текст запроса или обращения к объекту.
В клиент-серверном варианте отладка на сервере должна быть разрешена администратором сервера 1С, иначе остановка сработает только на клиентском коде.
В конфигурациях на БСП не редактируйте роли пользователя напрямую в конфигураторе. При следующем обновлении групп доступа программа пересчитает роли и сотрёт ручные изменения. Права выдавайте через профили и группы.
Ограничение доступа на уровне записей (RLS)
Бывает, что роль у пользователя есть, отчёт о правах показывает доступ к объекту, а ошибка остаётся. Тогда виновато ограничение на уровне записей: пользователю разрешена работа с документами, но только по своей организации, складу или подразделению.
Признаки RLS:
- 🔍 список открывается, но в нём видна только часть документов;
- 🏢 ошибка возникает на документах одной организации или склада, а на других нет;
- 🔗 документ не записывается, потому что в нём выбран контрагент или склад, к которому доступа нет;
- 📊 отчёт или обработка падает с
Нарушение прав доступа!целиком, хотя пользователь видит эти данные в списках.
Как проверить:
- Убедитесь, что RLS включено:
Администрирование → Настройки пользователей и прав, флажок ограничения доступа на уровне записей. - Откройте группы доступа пользователя и вкладку ограничений. Посмотрите виды доступа (организации, склады, контрагенты) и разрешённые значения.
- Сравните значения с реквизитами документа, на котором ошибка. Например, документ по складу «Основной», а в группе разрешён только «Розничный».
- После изменения ограничений дождитесь, пока программа обновит доступ в фоне. На больших базах это занимает время, и права появляются не сразу.
Отдельный случай: внешние отчёты и обработки
Если ошибка возникает только в доработанном отчёте или внешней обработке, проверьте запрос. При включённом RLS запрос без слова РАЗРЕШЕННЫЕ не отфильтровывает чужие записи, а падает с ошибкой прав. Исправление на стороне программиста:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Реализация.Ссылка,
Реализация.Контрагент
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
Пользователю при этом новые права не нужны. Он просто увидит в отчёте только разрешённые ему данные.
Типичные промахи при поиске недостающих прав
- ❌ Выдать «Полные права», чтобы проверить. Ошибка исчезнет, но причина останется неизвестной. А временные полные права часто забывают снять.
- ❌ Добавить пользователя во все группы подряд. Через месяц уже никто не скажет, зачем бухгалтеру по зарплате доступ к складу. Добавляйте одну роль или группу и проверяйте.
- ❌ Менять типовой профиль поставки. Поставляемые профили обновляются вместе с конфигурацией. Скопируйте профиль и правьте копию.
- ❌ Проверять под своим пользователем. У администратора права шире, и ошибка не воспроизводится. Нужен тестовый пользователь с тем же набором групп.
- ❌ Путать нехватку роли и RLS. Добавление роли не поможет, если пользователю не разрешена нужная организация. Сначала смотрите, на каких документах возникает ошибка.