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

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

Настройка прав доступа в «1С:Бухгалтерия предприятия 3.0» (БП 3.0) — одна из самых трудоемких задач для разработчика. Часто мы сталкиваемся с ситуацией, когда создание простой роли в расширении превращается в бесконечную борьбу с ошибками «Нарушение прав доступа» или «Поле не найдено». В этой статье мы подробно разберем, как собрать минимально необходимый пакет ролей, почему не стоит «изобретать велосипед» в расширениях и как исправить специфические ошибки, возникающие при обращении к реквизитам через точку.

Анализируем проблему: Почему «ручное» создание роли в расширении — это тупик?

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

Рассмотрим типичную ситуацию: вы добавили право на документ, но при открытии формы возникает ошибка. Вы добавляете право на справочник Контрагенты, но ошибка повторяется. Теперь системе нужно право на Договоры, затем на Валюты, затем на Цены. Этот процесс может длиться вечно. Более того, при обновлении конфигурации вендор (1С) может добавить в документ новый реквизит или проверку в модуле, и ваша самописная роль в расширении тут же «сломается», так как у нее не будет прав на новый объект.

Решение №1: Использование проверенного набора типовых ролей

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

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

  1. Технологический фундамент:
    • Базовые права БСП — фундамент системы, без которого не инициализируются параметры сеанса.
    • Запуск тонкого клиента (или веб-клиента) — право на запуск самого приложения.
    • Базовые права: Бухгалтерия предприятия — специфические базовые права для БП.
    • Использование обработки общие формы СЭДО ФСС и Базовые права по электронным документам — необходимы для работы современных форм.
  2. Работа с данными (Чтение и Просмотр):
    • Просмотр организаций, Просмотр складов, Просмотр номенклатуры, Просмотр контрагентов.
    • Чтение курсов валют, Чтение договоров, Чтение дополнительных сведений.
  3. Редактирование конкретных объектов:
    • Редактирование счетов покупателям.
    • Добавление изменение договоров.
    • Добавление и изменение адресных сведений (для заполнения реквизитов контрагента).

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

Решение №2: Метод «Профиля групп доступа» — правильная архитектура

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

Разберем по шагам, почему это лучше:

  1. Вы создаете новый профиль в справочнике «Профили групп доступа».
  2. Набираете в него готовые «кубики» — типовые роли, поставляемые вендором (например, «Чтение банковских счетов» + «Добавление и изменение счетов»).
  3. При обновлении конфигурации 1С сама обновляет состав этих ролей.
  4. Если вам нужно ограничить доступ (например, по Контрагентам), вы используете механизм RLS (Ограничение доступа на уровне записей), который уже встроен в типовые роли.

Важный совет: Если вы решили делать жесткие ограничения по контрагентам в БП 3.0, будьте крайне осторожны. Архитектура бухгалтерии сильно завязана на перекрестные ссылки. Ограничение доступа к контрагенту может привести к тому, что пользователь не сможет сформировать оборотно-сальдовую ведомость или закрыть месяц, так как система «не увидит» часть проводок.

Разбор ошибки: «Поле не найдено ... ФизическоеЛицо.Наименование»

Проанализируем ситуацию, когда права вроде бы даны, но система выдает ошибку: ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо.<<?>>Наименование КАК ФизическоеЛицоПредставление.

Выясним причину. В 1С существует тонкое различие между правом Чтение и правом Просмотр:

Когда система пытается вывести представление ответственного лица, она обращается к полю ФизическоеЛицо.Наименование. Если у пользователя есть право на «Чтение» справочника ФизическиеЛица, но нет права «Просмотр» на конкретный реквизит Наименование, возникнет именно такая ошибка.

Чтобы решить эту проблему, выполним следующие действия в вашей роли:

  1. Найдите регистр сведений ОтветственныеЛицаОрганизаций.
  2. Убедитесь, что стоят галочки Чтение и Просмотр.
  3. Перейдите к справочнику ФизическиеЛица.
  4. Установите право Просмотр на уровне всего объекта или убедитесь, что оно включено для реквизита Наименование.

Практические рекомендации по отладке прав

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

1. Журнал регистрации. Зайдите в раздел «Администрирование» — «Обслуживание» — «Журнал регистрации». Настройте фильтр по событию «Отказ в доступе». Часто там прямо указано имя объекта метаданных, которого не хватает пользователю.

2. Остановка по ошибке. Запустите сеанс под проблемным пользователем в режиме отладки. В конфигураторе установите «Отладка — Остановка по ошибке». Когда система выдаст сообщение, вы попадете в код. Посмотрите на строку запроса или метод ПолучитьОбъект() — так вы поймете, к чему обращается программа в данный момент.

3. Отчет «Анализ прав доступа». В последних версиях БСП есть замечательный отчет (раздел «Администрирование» — «Настройки пользователей и прав» — «Сформировать отчет по правам»). Он позволяет сравнить права текущего пользователя с правами Администратора по конкретному документу и увидеть «дыры» в правах.

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

← На главную