Как настроить и проверить права доступа в 1С:ERP 2.5 и 1С:Комплексная автоматизация 1.1

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

Настройка прав доступа в крупных системах 1С — это всегда сложный процесс, особенно когда приходится разбираться в «наследстве» от предыдущих специалистов. Ситуация осложняется, если в работе находятся одновременно базы на разных архитектурах: современная 1С:ERP 2.5 (на управляемых формах) и более ранняя 1С:КА 1.1 (на обычных формах). В этой статье мы подробно разберем, как «размотать» клубок настроек, найти причины исчезновения целых разделов интерфейса и правильно диагностировать работу механизма RLS (Restriction at Leaf Level).

Различия в архитектуре прав: КА 1.1 против ЕРП 2.5

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

  1. 1С:Комплексная автоматизация 1.1 (Обычные формы): Здесь используется классическая схема. Права определяются ролями, а ограничения на уровне записей (RLS) настраиваются непосредственно в самих ролях через шаблоны ограничений или прямые запросы. Для настройки используются Профили полномочий пользователей и Группы доступа. Если пользователь не видит данные, мы проверяем привязку его учетной записи к группам доступа (например, «Группы доступа к контрагентам»).
  2. 1С:ERP 2.5 (Управляемые формы): Система построена на базе Библиотеки стандартных подсистем (БСП). Здесь мы работаем с Профилями групп доступа и Группами доступа. В ЕРП 2.5 реализован механизм «производительного RLS», который работает через специальные служебные таблицы ключей доступа.

Для начала аудита в любой из этих систем первым делом перейдем в раздел: НСИ и администрирование — Администрирование — Настройки пользователей и прав. Именно здесь сосредоточены основные инструменты управления.

Почему пропадают разделы интерфейса: роль функциональных опций

Рассмотрим распространенную ситуацию: у пользователя (или даже у администратора) в одной базе ЕРП видны разделы «Кадры» и «Зарплата», а в другой — нет. Причина здесь чаще всего кроется не в ролях, а в Функциональных опциях (ФО). Если функциональность отключена в настройках системы, 1С скрывает связанные с ней объекты метаданных из всего интерфейса, независимо от прав доступа.

Проанализируем конкретные настройки, которые могут влиять на видимость разделов:

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

Диагностика RLS: почему данные не попадают в отчеты

Если разделы видны, но отчеты пустые или данные отображаются частично, мы имеем дело с работой RLS. В отличие от ошибки «Нарушение прав доступа», механизм RLS просто тихо исключает строки из выборки запроса. Разберем по шагам, как проверить, виноват ли RLS в вашей проблеме:

Шаг 1. Тестирование на копии базы

Самый быстрый способ подтвердить теорию о влиянии RLS — это временное отключение ограничений. На копии базы данных перейдем в настройки прав и снимем флаг Ограничивать доступ на уровне записей. Если после этого данные в отчетах появились — причина 100% в настройках RLS.

Шаг 2. Анализ ключей доступа в ЕРП 2.5

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

Шаг 3. Использование стандартного отчета по правам

Не нужно «курить» профили вручную. В ЕРП 2.5 есть мощный инструмент. Зайдем в карточку пользователя, нажмем кнопку Права доступа и выберем отчет Права доступа. Рассмотрим его структуру: он показывает в разрезе каждого объекта (справочника, документа), какая именно роль дает право, и какое ограничение наложено по организациям, складам или подразделениям.

Влияние серверной среды: миграция на Linux (CentOS)

Проанализируем ситуацию, упомянутую в обсуждении: переезд с Windows Server на CentOS 7. Это может стать неочевидной причиной проблем с правами и доступностью данных:

Практические советы по «размотке» настроек от предшественника

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

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

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


// Проверка включения функциональной опции в коде
Если ПолучитьФункциональнуюОпцию("ИспользоватьЗаявкиНаРасходованиеДенежныхСредств") Тогда
    Сообщить("Функционал заявок активен, проверяем права доступа к документам.");
Иначе
    Сообщить("Функционал отключен на уровне настроек системы.");
КонецЕсли;

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

← На главную