Как настроить права пользователя только для ввода договоров контрагентов и исправить ошибку входа в 1С?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

Нередко перед администратором или разработчиком встает задача предоставить сотруднику узкие полномочия — например, разрешить только заводить и редактировать элементы справочника ДоговорыКонтрагентов, запретив при этом изменение всех остальных данных (справочников контрагентов, номенклатуры, документов и проводок). При попытке решить такую задачу «в лоб» через создание изолированной роли в конфигураторе многие сталкиваются с системной ошибкой: «Недостаточно прав для входа в программу». Разберем по шагам, почему возникает эта ошибка, и рассмотрим два полноценных варианта решения задачи: правильный типовой метод без снятия конфигурации с поддержки и вариант с доработкой в конфигураторе.

Выясняем причину ошибки «Недостаточно прав для входа в программу»

Проанализируем ситуацию: почему пользователь с назначенной ролью, в которой прописан доступ к конкретному справочнику и системное право Запуск тонкого клиента, все равно не может запустить сеанс?

В современных типовых конфигурациях («Бухгалтерия предприятия 3.0», «ERP», «Управление торговлей») на базе Библиотеки стандартных подсистем (БСП) старт сеанса контролируется программно. При запуске срабатывают обработчики инициализации подсистемы «Пользователи». Система анализирует список назначенных пользователю прав. Если у пользователя отсутствуют обязательные служебные роли, сеанс аварийно прерывается кодом конфигурации с выводом соответствующего предупреждения.

Для успешного прохождения стартовых проверок пользователю обязательно требуется роль «Базовые права БП» (или «Базовые права БСП» в зависимости от версии и конфигурации). Эта роль не предоставляет доступа к бухгалтерским регистрам, проводкам или документам, но дает минимальный системный базис: чтение параметров сеанса, служебных констант, базовых классификаторов и системных общих форм.

Вариант 1. Настройка прав штатными средствами без изменения конфигурации

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

Разберем по шагам создание профиля с ограниченными правами:

  1. Перейдем в раздел «Администрирование» → «Настройки пользователей и прав» → «Профили групп доступа».
  2. Нажмем кнопку создания нового профиля и укажем понятное наименование, например: Оператор договоров.
  3. В табличной части разрешенных действий (ролей) включим только необходимые позиции:
    • Базовые права БП — ключевая роль для успешной авторизации и запуска базовых механизмов конфигурации.
    • Запуск тонкого клиента (и при необходимости Запуск веб-клиента).
    • Добавление и изменение договоров контрагентов — роль, дающая право создавать и перезаписывать элементы справочника ДоговорыКонтрагентов.
    • Чтение контрагентов (или Просмотр контрагентов) — роль, позволяющая выбирать контрагента в карточке договора, но исключающая возможность создать или изменить самого контрагента.
    • Вспомогательные роли чтения классификаторов (например, Чтение валют или Чтение организаций), если соответствующие реквизиты обязательны для заполнения в форме договора.
  4. Сохраним созданный профиль.
  5. Перейдем в справочник «Группы доступа», создадим новую группу с выбранным профилем Оператор договоров и включим в состав участников целевого пользователя.

Обратите внимание на поведение командного интерфейса «Такси»: в 1С действует строгое правило видимости. Если у пользователя нет роли с правом Просмотр на документ, справочник или подсистему, соответствующие разделы и команды автоматически скрываются. Настраивать видимость вручную через колесико «Настройка навигации» или скрывать панели не потребуется — пользователь увидит в интерфейсе только доступный ему справочник договоров.

Вариант 2. Создание роли через Конфигуратор и регистрация в БСП

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

Разберем последовательность действий разработчика:

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

Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт
    
    // Назначение роли для обычных пользователей системы
    НазначениеРолей.ДляПользователей.Добавить("РедактированиеДоговоровКонтрагентов");
    
КонецПроцедуры
  1. После сохранения конфигурации выполним обновление вспомогательных данных БСП. Для этого запустим сеанс «1С:Предприятие» от имени администратора с параметром командной строки: /C ЗапуститьОбновлениеИнформационнойБазы.

Ограничения использования расширений и защита связанных данных

Рассмотрим важные нюансы, о которых следует помнить при реализации задачи:

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

Разграничение данных на уровне записей (RLS): Если необходимо ограничить не просто структуру объектов, но и видимость конкретных строк (например, дать оператору доступ к договорам только определенной организации или запретить просмотр договоров закрытых филиалов), в версии КОРП следует включить функционал RLS. Для этого в меню «Администрирование» → «Настройки пользователей и прав» устанавливаем флаг «Ограничивать доступ на уровне записей» и задаем ограничения по видам доступа непосредственно в созданной группе доступа.

← На главную