1с рольдоступна не работает

Обновлено: 04.07.2024

Проверка прав доступа

Область применения: управляемое приложение, обычное приложение.

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

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

Эти меры позволяют:

  • существенно упростить работу из кода с элементами управления, которые пропадают из коллекции Элементы (код Элементы.ИмяЭлемента.ИмяСвойства становится нерабочим);
  • повысить устойчивость кода к пересмотру состава ролей в конфигурации;
  • организовать контроль использования ролей в конфигурации (в противном случае, выполнять анализ прав доступа по флажкам, назначенных для ролей в различных элементах произвольных форм конфигурации, крайне затруднительно).

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

3. Для проверки прав доступа в коде следует использовать метод ПравоДоступа .
Например, неправильно:

Если РольДоступна("ДобавлениеИзменениеСтранМира") Тогда .
Если РольДоступна("ПросмотрОтчетаПопулярныеСтраны") Тогда .

Если ПравоДоступа("Редактирование", Метаданные.Справочники.СтраныМира) Тогда .
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПопулярныеСтраны) Тогда .

Такой подход позволяет повысить устойчивость кода к пересмотру состава ролей в конфигурации.

4. В тех случаях, где роль не дает никаких прав на объекты метаданных, а служит только для определения того или иного дополнительного права, следует использовать метод РольДоступна . При использовании в конфигурации Библиотеки стандартных подсистем (БСП) следует использовать функцию РолиДоступны общего модуля Пользователи :
Например, без использования БСП:

Если РольДоступна(. ) Или <ЭтоПолноправныйПользователь> Или ПривилегированныйРежим() Тогда .

В этой статье речь пойдет о настройке прав доступа пользователей к объектам системы 1С.

В 1С 8для управления доступа пользователей используется отдельный объект метаданных, который называется Роли.

Далее мы рассмотрим, как использовать и настраивать роли в 1С предприятие 8.3.

Обратите внимание! Эта статья написана в помощь программистам. Настройка прав в пользовательском режиме на примере 1С Бухгалтерия рассмотрена в данной статье.

Роли в метаданных

Ниже мы рассмотрим подробно каждый атрибут метаданных при настройке роли пользователя 1С 8.3.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Общие настройки роли 1С

Если открыть объект метаданных Роль, мы можем увидеть следующую картину:

Настройка ролей

Будем рассматривать только вкладку Права.

Следует обратить внимание на галочки в нижней части:

Настройки прав на всю конфигурацию

Если открыть Роль и кликнуть на корень конфигурации, мы увидим следующие настройки:

Настройка прав на конфигурацию

Подробнее о каждом из прав на всю конфигурацию:

Настройка прав 1С на другие объекты метаданных

Роль менеджера по продажам

Права только для документов:

Только для регистров накопления и бухгалтерии

Только для обработок и отчетов:

Привилегированный режим 1С

Все, что внутри, будет выполняться без проверки прав пользователя.

Доступна ли роль 1С пользователю?

Чтобы узнать, нужно выполнить функцию РольДоступна(), передав туда название роли строкой.
Например:

Нарушение прав доступа

Такую ошибку можно увидеть, если недостаточно прав на чтение/редактирование/удаление данных. Система выдаёт вот такую ошибку:

битая ссылка

Для того чтобы понять, битая ссылка или нет, просто зайдите в базу под пользователем с полными правами.

Для массового поиска таких ошибок подойдет статья как найти битые ссылки в базе 1С.

P.S. Если у Вас все же не получилось разобраться в ролях пользователей, Вы можете заказать услуги 1С программиста.
Видео с примером настройки прав в 1С бухгалтерии 3.0:

Другие статьи по 1С:

    (обновление 1С, резервные копии и т.д); (для пользователей)

Читайте также: