Как исправить ошибку Для добавления требуются разрешенные Группы доступа физических лиц в 1С:УТ 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе в конфигурации 1С:Управление торговлей (релизы линейки 11.4.6 и смежные версии ERP и КА) пользователи часто сталкиваются с досадной проблемой. При попытке создать или записать новый элемент в справочнике ФизическиеЛица система выдает критическую ошибку: "Для добавления требуются разрешенные Группы доступа физических лиц". Самое неприятное в этой ситуации то, что ошибка возникает даже в тех случаях, когда в настройках программы ограничение доступа на уровне записей (RLS) официально отключено, а пользователю выданы все необходимые роли для редактирования справочника.

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

Проанализируем причину возникновения ошибки

Давайте выясним, почему типовая конфигурация ведет себя подобным образом. Проблема кроется в логике работы подсистемы "Управление доступом", которая входит в состав Библиотеки стандартных подсистем (БСП). Рассмотрим ситуацию с технической точки зрения.

При записи объекта система обращается к общему модулю УправлениеДоступом. В частности, срабатывает функция ГруппыЗначенийДоступаРазрешающиеИзменениеЗначенийДоступа. Проблема заключается в том, что внутри этой функции жестко прописана проверка прав на чтение вспомогательных метаданных. Посмотрим на фрагмент кода, который вызывает затруднения:


Если Не ПравоДоступа("Чтение", Метаданные.НайтиПоТипу(СвойстваГрупп.Тип)) Тогда
    Возврат Новый Массив;
КонецЕсли;

В контексте нашей проблемы СвойстваГрупп.Тип — это справочник ГруппыДоступаФизическихЛиц. Выясняется, что в типовой поставке права на чтение этого справочника по умолчанию есть только у роли ПолныеПрава. Когда обычный пользователь (например, менеджер по персоналу или бухгалтер) пытается создать физлицо, код проверяет, есть ли у него право на чтение справочника групп доступа. Поскольку права нет, функция возвращает пустой массив, и система ошибочно полагает, что прав на создание физического лица у пользователя тоже нет.

Это классический пример "фантомного" RLS: настройки ограничения доступа могут быть выключены в интерфейсе, но программный код всё равно выполняет проверку прав на метаданные объектов, участвующих в системе разграничения прав.

Способ 1. Использование расширения конфигурации (рекомендуемый)

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

  1. Перейдем в режим Конфигуратор.
  2. Создадим новое расширение (Меню "Конфигурация" — "Расширения конфигурации").
  3. В расширение добавим справочник ГруппыДоступаФизическихЛиц.
  4. Создадим в расширении новую роль, назовем ее, например, ЧтениеГруппДоступаФизЛиц_Расширение.
  5. В настройках этой роли для справочника ГруппыДоступаФизическихЛиц установим флажки Чтение и Просмотр.
  6. Обновим конфигурацию базы данных.
  7. В пользовательском режиме (1С:Предприятие) назначим эту роль проблемным пользователям через профили групп доступа.

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

Способ 2. Редактирование прав в основной конфигурации

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

Найдем типовую роль, которая отвечает за работу с физическими лицами (например, ДобавлениеИзменениеФизическихЛиц). Нам необходимо добавить в эту роль право на Чтение справочника ГруппыДоступаФизическихЛиц. Важно помнить, что простого наличия права в роли может быть недостаточно, если в системе включен механизм программной проверки через БСП.

Помимо прав на чтение, необходимо убедиться, что справочник ГруппыДоступаФизическихЛиц не пуст. Рассмотрим подробнее, почему это важно.

Способ 3. Заполнение данных и настройка групп доступа

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

  1. Зайдем под пользователем с полными правами в справочник Группы доступа физических лиц (его можно найти через "Все функции" или "Функции для технического специалиста").
  2. Создадим хотя бы один элемент, назовем его, например, "Общая группа".
  3. После этого нужно убедиться, что у существующих физических лиц заполнено поле Группа доступа. Если записей много, воспользуемся стандартной обработкой "Групповое изменение реквизитов".
  4. В обработке выберем объект Физические лица, найдем реквизит Группа доступа и установим ему значение нашей созданной "Общей группы".

Важный нюанс: Если вы создали хотя бы одну группу доступа, то в настройках профиля пользователя (раздел "НСИ и администрирование" — "Настройки пользователей и прав" — "Группы доступа") нужно зайти в группу доступа пользователя и на закладке "Ограничения доступа" для вида доступа "Физические лица" установить значение "Все разрешены, без исключений".

Способ 4. Официальное обновление системы

Выясним статус данной проблемы у разработчиков 1С. Ошибка была официально зарегистрирована под номером 00-00220328. Она признана багом релиза 11.4.6.

Рассмотрим варианты исправления через обновление:

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

Резюме и рекомендации

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

План действий:

  1. Проверьте версию вашей конфигурации. Если она ниже 11.4.8.74, вы в зоне риска.
  2. Создайте расширение и дайте права на Чтение справочника ГруппыДоступаФизическихЛиц.
  3. Создайте в этом справочнике один элемент "Все физлица".
  4. С помощью группового изменения реквизитов проставьте эту группу во все карточки физлиц.
  5. В профиле групп доступа пользователя убедитесь, что ограничение по физлицам стоит в режиме "Все разрешены".

Соблюдение этих шагов позволит полностью устранить ошибку и обеспечит корректную работу пользователей с персональными данными в системе 1С:Управление торговлей.

← На главную