На что именно не хватает прав в 1С 8.3: от текста ошибки до отладчика

· 10 мин

Содержание

Чтобы проверить, каких прав доступа не хватает пользователю в 1С, откройте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации) и поставьте отбор по событию «Доступ. Отказ в доступе». В колонке данных платформа пишет, какое право и к какому объекту было запрошено. Если записей нет, следующие шаги — подробный текст ошибки, отчёт о правах пользователя и отладчик.

Типичная ситуация: кладовщик открывает поступление, нажимает «Провести» и получает Нарушение прав доступа!. Администратор добавляет ему ещё одну группу доступа, потом ещё одну, и через неделю у кладовщика почти полные права. Найти точную недостающую роль быстрее и безопаснее, чем раздавать всё подряд. Методы ниже работают в типовых конфигурациях на платформе 8.3 (БП 3.0, ЗУП 3.1, УТ 11), а приёмы с конфигуратором — в любой базе.

Что говорит само сообщение о нехватке прав

Ошибка прав почти всегда выглядит одинаково: окно с текстом Нарушение прав доступа!. Но полезная часть спрятана в подробностях.

  1. В окне ошибки нажмите ссылку на подробный текст (или кнопку формирования отчёта об ошибке).
  2. Найдите строки с именем объекта метаданных: Документ.…, Справочник.…, РегистрНакопления.….
  3. Найдите строку модуля, на которой сработала проверка: например, ОбщийМодуль.…МодульСервера или Документ.….МодульОбъекта.

Как читать результат:

  • 🎯 Указан объект — это прямой ответ. Ищите, какая роль даёт на него нужное право (просмотр, изменение, проведение).
  • 🧩 Указан только модуль и строка — права не хватило внутри программного кода. Чаще всего код читает регистр или справочник, о котором пользователь даже не знает. Здесь поможет отладчик.
  • 🔒 Ошибка возникает только на части документов — похоже на ограничение на уровне записей (RLS), а не на нехватку роли.

Попросите пользователя не закрывать окно ошибки, а сделать скриншот подробного текста. Повторить ошибку «как было» удаётся не всегда.

Обратите внимание и на момент появления. Ошибка при открытии списка — это право просмотра. При записи — изменения или добавления. При проведении — права на регистры, в которые документ пишет движения.

Какое право отвечает за действие

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

Действие пользователяПраво на объектЧто ещё проверить
Открыть список или документ«Чтение», «Просмотр»права на справочники в реквизитах формы
Создать новый документ«Добавление», «Интерактивное добавление»права на объекты, которые заполняются автоматически
Изменить и записать«Изменение», «Редактирование»ограничения на уровне записей
Провести«Проведение», «Интерактивное проведение»права на изменение регистров, куда идут движения
Пометить на удаление«Интерактивная пометка удаления»—

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

Группы доступа пользователя: проверка через «Администрирование»

В типовых конфигурациях на БСП права выдаются не ролями напрямую, а группами доступа. Цепочка такая: профиль содержит набор ролей → группа доступа привязывает профиль к пользователям и задаёт ограничения → пользователь получает сумму ролей всех своих групп.

Где смотреть:

Что проверитьПуть в БП 3.0, ЗУП 3.1, УТ 11
Пользователь и его группыАдминистрирование → Настройки пользователей и прав → Пользователи → карточка → «Права доступа»
Состав ролей профиляАдминистрирование → Настройки пользователей и прав → Профили групп доступа
Участники и ограничения группыАдминистрирование → Настройки пользователей и прав → Группы доступа

Порядок проверки:

  1. Откройте карточку пользователя и посмотрите, в каких группах доступа он состоит.
  2. Откройте профиль каждой группы. На вкладке ролей видно, какие роли в него входят.
  3. Сравните с коллегой, у которого та же операция проходит. Разница в группах часто и есть ответ.
  4. Если группы одинаковые, смотрите вкладку ограничений в самих группах: у коллеги может быть разрешена другая организация или склад.

Если в базе нет групп доступа

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

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

Отчёт о правах доступа пользователя

Смотреть профили по одному долго. В БСП есть отчёт, который сводит права пользователя по объектам в одну таблицу.

Как открыть:

  • из карточки пользователя — через меню отчётов в командной панели, отчёт «Права доступа »;
  • в свежих версиях БСП есть ещё отчёт «Анализ прав доступа» — найдите его через ☰ → Все функции → Отчеты.

Если пункта «Все функции» в главном меню нет, включите его: ☰ → Сервис → Параметры → флажок «Отображать команду “Все функции”».

Что показывает отчёт:

  • 📄 список объектов (документы, справочники, регистры), к которым есть доступ;
  • ✏️ разрезы прав: чтение, добавление, изменение, интерактивные действия;
  • 🔒 какие ограничения на уровне записей действуют (по организациям, складам, контрагентам);
  • 👥 через какую группу доступа пришло каждое право.

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

Журнал регистрации: отказы в доступе

Журнал регистрации фиксирует момент, когда платформа отказала в доступе. Это лучший способ найти ошибку, которую пользователь не смог показать.

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

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

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

Проверка прав в конфигураторе и отладчике

Когда журнал и отчёт молчат или ошибка возникает глубоко в коде, переходите к конфигуратору. Здесь три рабочих приёма.

Таблица «Все роли»

В дереве конфигурации щёлкните правой кнопкой по ветке «Роли» и выберите «Все роли». Откроется матрица: строки — объекты метаданных, колонки — роли. Найдите объект из текста ошибки и посмотрите, в каких ролях стоит нужное право. Затем найдите профиль группы доступа, в который входит такая роль.

Функция ПравоДоступа()

Проверить конкретное право конкретного пользователя можно одной строкой. В режиме отладки откройте окно вычисления выражения (Shift+F9) и выполните:

ПравоДоступа("Изменение", Метаданные.Документы.РеализацияТоваровУслуг,
    ПользователиИнформационнойБазы.НайтиПоИмени("Иванова"))

Результат Ложь означает, что права нет ни в одной роли пользователя. Вместо «Изменение» подставьте нужное право: «Чтение», «Добавление», «Проведение», «Просмотр». Вместо пользователя третьим параметром можно передать роль: Метаданные.Роли.ИмяРоли.

Имя пользователя в НайтиПоИмени — это имя для входа из списка пользователей конфигуратора, а не ФИО из справочника.

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

Этот способ показывает точную строку кода, где не хватило прав.

  1. В конфигураторе откройте Сервис → Параметры → Запуск 1С:Предприятия и укажите имя и пароль проблемного пользователя. Удобнее завести тестового пользователя с теми же группами доступа.
  2. Включите Отладка → Остановка по ошибке.
  3. Запустите отладку (F5) и повторите действие, на котором была ошибка.
  4. Отладчик остановится на проблемной строке. Посмотрите стек вызовов и текст запроса или обращения к объекту.

В клиент-серверном варианте отладка на сервере должна быть разрешена администратором сервера 1С, иначе остановка сработает только на клиентском коде.

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

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

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

Признаки RLS:

  • 🔍 список открывается, но в нём видна только часть документов;
  • 🏢 ошибка возникает на документах одной организации или склада, а на других нет;
  • 🔗 документ не записывается, потому что в нём выбран контрагент или склад, к которому доступа нет;
  • 📊 отчёт или обработка падает с Нарушение прав доступа! целиком, хотя пользователь видит эти данные в списках.

Как проверить:

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

Отдельный случай: внешние отчёты и обработки

Если ошибка возникает только в доработанном отчёте или внешней обработке, проверьте запрос. При включённом RLS запрос без слова РАЗРЕШЕННЫЕ не отфильтровывает чужие записи, а падает с ошибкой прав. Исправление на стороне программиста:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Реализация.Ссылка,
    Реализация.Контрагент
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация

Пользователю при этом новые права не нужны. Он просто увидит в отчёте только разрешённые ему данные.

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

Типичные промахи при поиске недостающих прав

  • ❌ Выдать «Полные права», чтобы проверить. Ошибка исчезнет, но причина останется неизвестной. А временные полные права часто забывают снять.
  • ❌ Добавить пользователя во все группы подряд. Через месяц уже никто не скажет, зачем бухгалтеру по зарплате доступ к складу. Добавляйте одну роль или группу и проверяйте.
  • ❌ Менять типовой профиль поставки. Поставляемые профили обновляются вместе с конфигурацией. Скопируйте профиль и правьте копию.
  • ❌ Проверять под своим пользователем. У администратора права шире, и ошибка не воспроизводится. Нужен тестовый пользователь с тем же набором групп.
  • ❌ Путать нехватку роли и RLS. Добавление роли не поможет, если пользователю не разрешена нужная организация. Сначала смотрите, на каких документах возникает ошибка.
Перед тем как выдать новые права
Выполнено: 0 / 6

Частые вопросы о правах в 1С

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