Почему после обновления БСП до 3.1.5 новые объекты стали недоступны пользователям по умолчанию?

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

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

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

Разберем основную причину: Настройка ролей в конфигураторе

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

Если этот флаг установлен, то при создании любого нового объекта метаданных платформа автоматически выдает этой роли права на чтение, просмотр или редактирование нового объекта. Однако компания 1С в последних стандартах разработки настоятельно рекомендует снимать эту галочку для всех ролей, кроме полных прав. При обновлении на БСП 3.1.5 многие типовые роли были пересмотрены, и этот флаг был снят. Выясним, как это проверить:

  1. Откройте конфигуратор и перейдите в ветку Общие -> Роли.
  2. Найдите роль Пользователь или её аналог в вашей конфигурации.
  3. В окне свойств роли обратите внимание на дерево метаданных. Если права на ваш новый объект отсутствуют, значит, автоматическое добавление прав отключено.
  4. Проанализируем ситуацию: если ранее вы полагались на этот механизм, то теперь вам придется либо вернуть галочку (что не рекомендуется для типовых решений), либо явно прописать права.

Влияние режима совместимости платформы

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

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


// Проверка доступа к объекту в коде
Если Не ПравоДоступа("Чтение", Метаданные.Документы.НовыйДокумент) Тогда
    Сообщить("Доступ к документу запрещен программно или на уровне метаданных");
КонецЕсли;

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

Механизм «Производительного RLS» и ключи доступа

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

В современной БСП расчет прав происходит не в момент обращения к базе (как в старом RLS), а предварительно. Результаты расчетов записываются в специальные таблицы — Ключи доступа. Проанализируем цепочку работы этой подсистемы:

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


// Запуск обновления идентификаторов объектов метаданных
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(Истина, Ложь, Ложь);

// Запуск расчета ключей доступа
УправлениеДоступомСлужебный.ОбновитьДоступПриИзмененииМетаданных();

Инструкция по исправлению доступа в БСП 3.1.5

Если вы обнаружили, что новые объекты недоступны, выполните следующие шаги вместе с нами:

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

Программный аудит ограничений

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

— Какая роль дает право на чтение.
— Какое ограничение RLS (если оно включено) блокирует запись.
— Есть ли ошибки в расчете ключей доступа для конкретного пользователя и объекта.

Если проблема сохраняется, проанализируем состояние константы ОграничиватьДоступНаУровнеЗаписей. В некоторых случаях, даже при значении Ложь, БСП может вызывать процедуры проверки доступа, которые опираются на актуальность кэша метаданных.

Резюме

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

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

← На главную