Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)

Публикация № 1222978 18.10.21

Администрирование ИТ-инфраструктуры - Информационная безопасность - Роли и права

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

Немного про проблемы, которые мы хотели решить этой подсистемой

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

  1. Нельзя прочитать RLS, т.е. внедренец ставя ограничение на роль – вообще без понятия о том, что там эта роль реально ограничивает и по каким правилам. Например, есть некая роль:

Глядя на нее в конфигураторе - можно прочитать текст ограничения, и понять, как оно сработает.

  1. Роли, при наличии БСП, хоть и являются «универсальными», однако, они все равно не перекрывают все потребности. А особую сложность в понимании несут роли, которые дают доступ к разным объектам. Т.е. надо четко уметь отделить некое право, и посмотреть – какие роли его дают. В идеале – одна роль, дает одно право.
  2. В конфигурациях бывают баги, а бывают тонкости, про которые далеко не все знают, например, одна роль на чтение может иметь РЛС на некий справочник, а совсем левая роль на изменение (от другой подсистемы), может к этому справочнику давать безусловное чтение. Баг это, или фича, не важно, но такое есть, и хорошо бы такое отлавливать.
  3. Отдельное счастье – отладка RLS, что сейчас в принципе невозможно, так как язык RLS – он не тот же самый язык 1С (BSL), и просто написать – не всегда получится.
  4. Любое изменение роли – требует лезть в конфигуратор. Любое добавление – роли, надо идти в конфигуратор, надо тестировать под пользователем, открывать все параметры сеансов, смотреть что где, в общем трешь.
  5. И когда выходит обновление конфы – надо перепроверять, не обновились ли шаблоны, и если они обновились, то тогда надо вот в те новые 10 ролей идти, и перекидывать шаблоны, обновлять каждую роль.
  6. История изменения ролей. Кто, когда, зачем и на кой черт попросил что-то поправить. Т.е. т.к. роли добавляет программист, то он берет все входные данные и группирует их, а потом идет делает новые роли, или модификацию предыдущих, и вот потом разобраться – зачем была та или иная модификация, или же – какая модификация была на какую-то там дату – это не реально, разве что в задачниках, но и там надо каждый чих отслеживать, и как-то группировать, чтобы найти.
  7. Ну и мой самый любимый прикол – это когда тебе попадается в руки УТ10, УТП и им подобные, где уже никто ничего не понимает, что творится в ролях, никакого анализа адекватного нету, и пользователей просто создают «по аналогии», так как там изначально всего десяток ролей.
  8. И куча всякого другого…

Принятое решение

Итого, была поставлена задача по написанию принципиально нового подхода к разработке ролей:

  1. Это будет внешняя подсистема, отсутствие которой никак не скажется на конфигурацию. Т.е. модульность.
  2. Подсистема должна быть универсальной, и не привязываться, практически ни к каким модулям конфигурации или ее объектам.
  3. Основные функции системы – анализ ролей, отладка правил, создание новых ролей, хранение истории изменения ролей и т.д.

И такая подсистема была создана.

Вся суть работы с подсистемой - описывается в пару шагов:

1. Подключение расширения к конфигурации

2. Загрузка ролей из XML

3. Создание новых ролей

4. Авто генерация нового расширения с новыми ролями

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

Как это все выглядит?

1. Подключается новое расширение, возьмем для примера УТ11:

  1. Параметры, пока оставим их, но суть в том, что можно создавать свои параметры сеанса.
  2. Пользователи – это просто сам справочник пользователей, из основной конфигурации.
  3. Профили доступа – этот справочник, по сути, аналогичен типовым из БСП, там просто есть таблица с ролями, и это позволяет комбинировать роли для конкретного пользователя, например.
  4. Роли доступа — это справочник самих ролей, вот прям ролей, которые есть в конфигурации.
  5. Шаблоны – это шаблоны ролей. У 1С в конфигурации нет единого объекта шаблонов ролей, а на каждую роль – идет свое, однако, в нашем случае – это единый общий справочник.
  6. Отчет, который позволяет проанализировать роли.
  7. Загрузка данных ролей из XML.
  8. Конвертация шаблонов в код BSL.
  9. Генерация и подключения расширения с новыми ролями.
  10. Используется для обычных форм, это просто обработка с теми же 3 кнопками, что и выше.

2. Идем в опцию загрузки ролей "Загрузка данных ролей из XML" , и загружаем роли:

При открытии - программа определит текущее подключение и заполнит настройки:

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

При загрузке, если что-то пойдет не так, то программа покажет лог. Status отличный от нуля - значит произошла ошибка.

Если есть ранее выгруженная конфигурация в XML файлы (это можно сделать  зайдя в конфигуратор, и выбрав меню "Конфигурация - Выгрузить конфигурацию в файлы", или же есть конфигурация в исходниках формата EDT, то можно выбрать третий пункт - "XML файлы конфигурации" и указать путь к верхней папке, т.е. внутри этот папки должна быть папка Roles, по сути, только она и нужна, остальные папки не сканируются.

 
 Команда выгрузки конфигурации в XML
 
 Определение уникальности роли 
 
  Особенности галочки "Устанавливать права для новых объектов"

3. Теперь можно провести анализ ролей. Давайте откроем какую-то роль, и посмотрим - что там?

 

Изначально, открывается отчет, который позволяет просто сделать быстрый беглый анализ того, что дает, или запрещает эта роль. Т.е. тут четко видно - какие права доступа дают, какие RLS при этом действуют и т.д.

 
 Остальные закладки дают дополнительную информацию по роли

И, самое главное - матрица ролей:

Это то место, где можно проводить точечный анализ роли, или, создать новую роль, или же - модифицировать ранее созданную.

По умолчанию - выводятся только те объекты, к которым дан доступ, однако, если надо добавить объекты, то в этом случае - можно выбрать опцию "Все объекты" и нажать кнопочку "Обновить права", тогда матрица перестроится.

И вот тут у нас есть много всего рассказать людям, про проблемы, с которыми мы столкнулись, как решали, и какие решить не смогли.

 
 Вводная по особенностям

 В основном, все проблемы крутятся в данном случае вокруг того, что для 1С тут слишком много данных выводится, например, в случае УТ11, если показать все объекты, то программа должна будет вывести 35 000 строк объектов, и все это умноженное на 86 колонок, или, другими словами - около 3 000 000 ячеек.

 
Зачем нужен макет на первой вкладке, если он дублирует матрицу?
 
Контекст и БезКонтекста
 
Условное оформление на 80+ ячеек
 
 Всякие иконки 🌹🎉🎶🤦‍ ...
 
 Оптимизация работы с областями табличных документов
 
 Не забываем про индексирование колонок в таблице значений, ускоряемся на порядок

 

4. Справочник профилей

На самом деле - это справочник, в котором просто собираются разные роли, по типу такого же справочника в типовых, на БСП. Однако, этот справочник более ничего не делает. Он позволяет только делать анализ.

Если конфигурация написана на БСП, то в этом случае - можно скопировать профили из текущей конфигурации сюда, для этого есть специальная кнопка:

И давайте откроем любой профиль:

Тут видно, что есть галочки разных вариантов, простая галочка - говорит что доступ к этому праву этого объекта дает ТОЛЬКО ОДНА роль. Что по-хорошему и должно быть.

В случае галочки в черном квадрате - это значит, что несколько ролей дают доступ, причем как видите - ниже пишется сам RLS, который ограничивает чтение. Однако, обратите внимание на то, что роль перечеркнута - это значит, что одна из ролей которая дает доступ к этому объекту по этому праву - не имеет RLS, т.е. в этом профиле - не будет действовать ограничение по этому регистру на чтение.

Так же - справа подсвечиваются зеленым цветом те роли, которые, собственно, и дают это самое право.

 
 Еще несколько особенностей этого отчета

5. Отчет по правам доступа

Однако, очень часто возникают задачи - узнать, какие роли дают право доступа к конкретному объекту, и с какими ограничениями.

Например, прилетела задача - нам надо сделать пользователю роль, где он сможет читать возвраты клиентов с отбором по подразделению. Возникает вопрос - а есть ли вообще такая роль?

Значит идем, и формируем отчет:

Указывает часть пути к объекту, который нас интересует, это может быть любая часть из примера строки:

InformationRegister.ОчередьСообщенийИСМП.StandardAttribute.Active

Т.е. идет поиск по вхождению, и есть стоит отдельное право на разрешение или запрет чтения реквизита, то и по реквизитам тоже поиск может делать.

Далее можем указать подтип объекта, это имеет смысл делать если нас интересуют права на реквизиты, табличные части и т.д.

После этого можем указать тип объекта - документ, справочник и т.д.

И в завершение можем указать само право. Что мы и сделаем, так как вывелось сильно много информации.

Тогда отчет будет выглядеть вот так:

Тут сразу видно - какие роли дают доступ к документу, в каких профилях они находятся, и какие RLS их ограничивают.

Т.е. сразу понятно - что к чему.

И мы сразу видим, что роль, которая нас интересует - это роли ДобавлениеИзменениеВозвратовТоваровОтКлиентов или ЧтениеВозвратовТоваровОтКлиентов.

 
 Вывод картинок в отчете

6. Анализ и дебаг RLS

Все было бы скучно, если бы мы ограничились только просмотром, а что если нам поставили задачу, и сказали - сделайте ограничение, чтобы некий пользователь мог видеть только заказы, вне статуса Закрыт. Т.е. все не закрытые заказы. Это на самом деле становится не редкой задачей, в связи с мобильным клиентом, когда надо максимум всего скрыть в угоду производительности.

И тут у нас два пути - первый, если мы говорим про БСП, то все сделать стандартами ограничения БСП, где прописать параметр ограничения, сделать запуск обновления и кучу всяких других действий, а можем пойти просто - скопировать роль, и просто дописать в ней условие.

По такому же принципу как и ранее - мы находим нужную нам роль, это будет роль - ДобавлениеИзменениеЗаказовКлиентов.

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

Идем в матрицу ролей, находим нужное место и видим RLS:

Нам надо дописать условие, и если мы четко знаем как это сделать - то можем это написать прям тут. Однако, я не помню где и как это прописывать. Допустим, я хочу задать вот такой вот код:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Документ.ЗаказКлиента","Чтение","",
"Организации","Организация",
"Склады","Склад",
"ГруппыПартнеров","Партнер",
"Подразделения","Подразделение", 
"НЕ Статус = ПредопределенноеЗначение("Перечисление.СтатусыЗаказовКлиентов.Закрыт")","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли

Итого - дописали вот такую строку:

НЕ Статус = ПредопределенноеЗначение("Перечисление.СтатусыЗаказовКлиентов.Закрыт")

Однако, как проверить - правильно ли я написал?

Для этого - открываем этот RLS по кнопочке "Открыть", прям в этом поле и вижу вот такую картинку:

Тут все просто:

1. Имя текущей таблицы - по умолчанию, это имя текущего объекта

2. Имя доступа - берется из матрицы, обычно это Чтение, Изменение, Удаление, Добавление.

3. Поговорим позже. Отвечает за ситуацию, когда вы используете в RLS параметры сеанса, но они должны быть не теми, которые сейчас.

4. Сам текст RLS

5. Шаблоны, которые привязаны к текущей роли

6. После  нажатия кнопки "Конвертировать в запрос" - вы получаете результирующий код запроса. И обратите внимание - 1С внизу мне вывело текст ошибки, это значит, что можно уже не перезаходить в базу под кем-то, ибо работать все равно не будет.

7 - 10 - используются для формирования запроса. Обычно в 7 пишут что типо:

Т ГДЕ

А в 8:

Выбрать Т.Ссылка Из Документ.ЗаказКлиента Как Т ГДЕ

Т.е. мы формируем валидный запрос.

11. Выводится результат запроса.

 

Исправляем ошибку:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Документ.ЗаказКлиента","Чтение","",
"Организации","Организация",
"Склады","Склад",
"ГруппыПартнеров","Партнер",
"Подразделения","Подразделение", 
"","НЕ Статус = ПредопределенноеЗначение(Перечисление.СтатусыЗаказовКлиентов.Закрыт)", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли

Т.е. перенесем во второй параметр условие, и уберем кавычки, так как в запросе они не нужны.

Теперь программа вернет "нормальный" текст запроса:

Пробую выполнить, и получаю ошибку, естественно. Т.е. система не позволит допустить даже такие ошибки. Исправляю ошибку, меняю "ПредопределенноеЗначение", на просто "Значение", нажимаю "Конструктор запросов" и выравниваю запрос, и сразу могу его выполнить.

Однако, если его выполнить, то БСП вернет пустой список, так как у пользователя Администратор - нет никаких настроек в БСП.

Для исправления этой ситуации - переходим на вкладку Параметры сеанса, и установлю параметр АвторизованныйПользователь в значение тестируемого пользователя, в моем случае это - Гладилина Вера Михайловна, менеджер. Далее, необходимо поставить галочку "Использовать параметры сессий из таблицы" и теперь можно выполнить запрос:

 
 Дебаг и конвертация RLS в BSL

 

7. Создание новых ролей в конфигурации

Окей, роль мы создали, надо теперь ее проверить в действии, но у нас же в конфигурации роли такой нету.

Для начала - нам надо немного обновить эту роль, а именно - всем объектам входящих в нее дать право на просмотр/редактирование стандартных реквизитов, по умолчанию - расширение их не ставит.

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

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

 
 Что происходит в этот момент

В этот момент в систему добавляется новое расширение, которое содержит в себе указанную ранее роль.

Далее дело за малым, идем в профили, убираем старую роль и даем новую и все, можем теперь зайти под этим пользователем и убедиться, что все сработало на ура :)

8. Свои параметры сеансов

А что, если надо дать этот запрет ТОЛЬКО в том случае, когда мы заходим мод мобильным клиентом, например, а если под стационарным, то все должно быть видно.

В этом случае - нам надо создать свой параметр сеанса, и поставить отбор по нему.

Тогда создаем новый параметр:

Ставим галочку "Использовать код", и прописываем код установки этого параметра:

SessionParameters.AccRoles_isMobileClient = ОбщегоНазначения.ЭтоМобильныйКлиент();

Тут есть один нюанс - имя параметра имеет префикс "AccRoles_" и надо не забывать его прописывать.

Функция "ОбщегоНазначения.ЭтоМобильныйКлиент()" возвращает мобильный клиент это или нет. По-другому тут получить не выйдет, так как сервер один и тот же у стационарной и у мобильного клиента, а установка параметров - это серверный вызов. Поэтому просто дергаем функцию из стандартной библиотеки.

Потом идем в роль, и дописываем условие:

#Если &ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Документ.ЗаказКлиента","Чтение","",
"Организации","Организация",
"Склады","Склад",
"ГруппыПартнеров","Партнер",
"Подразделения","Подразделение", 
"","НЕ Статус = Значение(Перечисление.СтатусыЗаказовКлиентов.Закрыт) 
     OR Not &AccRoles_isMobileClient", 
"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )
#КонецЕсли

После этого - обновляем расширение и заходим под тем пользователем, и все. Теперь вод тонким клиентом видны все заказы, а под мобильным - только не закрытые.

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

Таким образом - эта система позволяет настроить почти любую сложность роли, и создавать свои параметры сеансов.

 

9. Обычные формы и расширение...

Мы уже говорили о том, что это расширение прекрасно работает и с обычными формами? Условие только одно - совместимость на 8.3.14.

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

Давайте возьмем типовую УТ10 и накатим на нее все тоже самое.

 
 Для начала - поднимем совместимость

Теперь подключаем расширение, если не нужен английский язык, то удаляем его, если не нужен русский - то удаляем его. В случае ERP - там уже есть английский, поэтому надо просто переименовать с English, на Английский:

И не забываем пользователям дать права, по умолчанию - две роли, для Админа, и для всех остальных пользователей, и у пользователя, у которого обновляем расширение, снимаем защиту от опасных действий, либо отключаем профилями безопасности:

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

Открываем ее, нажимаем "Загрузить роли из XML". Закрываем конфигуратор, если он был открыт. Выбираем тип подключения к базе, и заполняем данные, или указываем просто путь к папке, куда заранее были выгружены файлы XML конфигурации.

Жмем "Загрузить роли" и видим, что система подгрузила 18 ролей:

И теперь можем открыть любую роль:

Ну а дальше уже - можно создавать роли, копировать и модифицировать, ставить ограничения и кучу всего другого.

 

FAQ

Не большой FAQ для разработчиков и тех, кому интересно.

 
 Почему используется выгрузка DumpConfigToFiles вместо DumpConfigFiles с параметром Right?
 
 Как происходит генерация расширения с учётом кучи свойств?
 
 Проблемы с русским и английским скриптом
 
 
 Загрузка ролей из другой версии выгрузки 1С

 

Преимущества:

1. Не зависит от конфигурации

2. Работает с конфигурациями на базе БСП и без них

3. Работает с английскими и русскими конфигурациями

4. Работает с обычными и управляемыми формами

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

6. Не влияет на обновления, а если пришли существенные изменения в механизме ролей - позволяет их отладить и перегенерировать роли.

Кому этот продукт может быть нужен?

1. Разработчикам для анализа прав доступа, особенно в  те моменты, когда принимают новых клиентов на обслуживание

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

3. Владельцам бизнеса, с точки зрения того, что теперь права можно модифицировать не выгоняя пользователей из базы. Иметь четкую историю того - какие права и когда менялись, и даже - кем и что именно менялось

4. Безопасникам - так как они смогут анализировать реальные права доступа

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

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

Скачать файлы

Наименование Файл Версия Размер
Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы):

.cfe 532,87Kb
62
.cfe 1.0.8.241 532,87Kb 62 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1380 18.10.21 15:07 Сейчас в теме
Дима, замечательная публикация.
Огромное спасибо за технические подробности и описание борьбы с проблемами.

Мы внутри Инфостарта также используем работу с исходниками (выгрузка, чтение, корректировка, загрузка в 1С) для корректировки ролей в наших внутренних инструментах
2. DitriX 1997 18.10.21 15:08 Сейчас в теме
(1) всегда пожалуйста, ждем ваших пулов :)
3. artbear 1380 18.10.21 15:08 Сейчас в теме
(2) Опечатку "sonar cube" исправь на SonarQube
4. DitriX 1997 18.10.21 15:10 Сейчас в теме
(3) ага, спс, чето видать редактор поменял на автомате :) Буду у компа - пофиксю
5. logarifm 1101 18.10.21 19:40 Сейчас в теме
Долго ждал выхода... Сразу "+".
Как только будет время все прочитаю и оценю.
8. DitriX 1997 19.10.21 10:55 Сейчас в теме
6. rpgshnik 2723 19.10.21 04:11 Сейчас в теме
Однозначно лайк! Как меня пугают всегда эти три буквы "Р", "Л" и "С" где роли понакопировали с типовых :) Скачкой тоже поддержу!
9. DitriX 1997 19.10.21 10:57 Сейчас в теме
(6)да. Та даже типовые теперь легко читать. А то там тоже косякоф дофига.типо есть рлс с отбром подразделения на чтение. Но нет на добавление и изменение - т.е. Добавить документ можно. А прочитать нельзя. И он просто исчезает :)
rpgshnik; +1 Ответить
7. &rew 31 19.10.21 10:14 Сейчас в теме
Просто, держите мои стартмани.
rpgshnik; +1 Ответить
10. DitriX 1997 19.10.21 10:57 Сейчас в теме
(7)не хватает пикчи Фрая :)
11. Dach 322 19.10.21 12:36 Сейчас в теме
(0) Если на справочник есть несколько ролей, имеющих РЛС на чтение - отчет по анализу их покажет? Как он покажет, если эти РЛС одинаковые и как - если разные?
12. DitriX 1997 19.10.21 12:40 Сейчас в теме
(11) там два отчета. Первый - это скд, где вверху может быть объект, а ниже - роли и их рлс.
Второй - это по профилям. Т.е. вы выбираете профиль конкретный, и он показывает к каким обхектам какие роли дают доступ, в ом числе и рлс.
Отчеты никак РЛС не сравнивают, а выводят все что есть.
Но если надо, то можно в отчете СКД немного подшаманить и сделать вывод только РАЗЛИЧНЫЕ.

Едиственное что отчет вычисляет - это максимум. Т.е. если есть роли где идет органичение по РЛС и есть роль где нет РЛС, а безусловная доступность, то в верхнем уровне отчет покажет что там безусловный доступ, но в расшифровкке будут видны РЛС
13. Dach 322 19.10.21 13:01 Сейчас в теме
(12)
Едиственное что отчет вычисляет - это максимум. Т.е. если есть роли где идет органичение по РЛС и есть роль где нет РЛС, а безусловная доступность, то в верхнем уровне отчет покажет что там безусловный доступ, но в расшифровкке будут видны РЛС


Вот это очень удобно! А нельзя отчет заюзать отдельно от подсистемы целиком? Если можно - может быть выложите его отдельно прям в этой же публикации?
14. DitriX 1997 19.10.21 13:02 Сейчас в теме
(13) не, не выйдет, он завзан на метаданные расширения. Так что увы, никак. А без парсинга - вы не сможете увидеть сами РЛС.
Т.е. получится что-то типо стандартного отчета БСП по правам.
15. &rew 31 19.10.21 13:28 Сейчас в теме
Подключил, смотрю. Есть у меня отчет в расширении. В анализе доступов я его пока не вижу. Суть проблемы в чем. Есть отчет, встроенный в расширение. Есть ограничение доступа на уровне записей. Когда отчет сохраняю как внешний РЛС отрабатывает безупречно, когда формирую встроенный (в расширение) - данные выводит с группировкой Объект не найден. Думаю дай ка попробую посмотреть системой доступа...
16. DitriX 1997 19.10.21 13:31 Сейчас в теме
(15) не понял, если честно :( Можно поподробнее?
17. &rew 31 19.10.21 13:38 Сейчас в теме
(16)Есть конфа КА2. Есть расширение (другое, не это))) с нужным отчетом. У этого расширения есть "Основная роль" (хотя это может и не важно). В этом (моём) расширении есть отчет. И все в нем чин чинарем, ВЫБРАТЬ РАЗРЕШЕННЫЕ где нужно установлено. Так вот, когда я формирую отчет встроенный, он (отчет) видит суммы по подразделениям, по которым настроено ограничение РЛС (сами подразделения при этом - <Объект не найден>). Но, когда я сохраняю этот отчет как внешний и запускаю, то он отрабатывает как и задумано было, т.е. выводит только разрешенные подразделения, без всяких "битых" ссылок. Вот я и хотел попробовать такую задачку с помощью этого инструмента раскурить.
18. DitriX 1997 19.10.21 13:43 Сейчас в теме
(17) главный вопрос какой - роль которая ограничивает права, она где? в том же расширении? или в ядре?
Тут просто вопрос в чем - если отчет видит данные, значит у него есть доступ к регистру, однако, так как он видит битые ссылки, значит у него нет доступа к самому справочнику.
Покурите в эту сторону. Т.е. убедитесь, что вы там не дали роль, которая имеет полный доступ к самому регистру.
19. &rew 31 19.10.21 13:47 Сейчас в теме
(18)Эх, если бы так, то я бы и внешним отчетом получил аналогичный результат. Получается в расширении у него на Чтение доступ есть, а на просмотр - нет, но как только мы его выгружаем во вне, то он "хоба" и прочесть уже не может (собственно и не должен). Но это не к инструменту вопрос а к задаче.
20. Yashazz 4107 19.10.21 13:54 Сейчас в теме
Если не секрет: эта подсистема делалась для какого-то коммерческого проекта? Силами скольких людей? За какое время?
21. DitriX 1997 19.10.21 14:02 Сейчас в теме
(20) да, у нас есть свое решение, которые мы разрабатываем на волне того, что устали от типовых, и начали пилить свой велосипед.
И там у нас нет ролей в конфигурации вообще, так как роли - это отдельный геммор и у каждого клиента они свои.
Поэтому мы разработали эту подсистему, чтобы можно было просто на лету генерировать роли под клиента.

Ну а потом решили поделиться с сообществом, так как решение получилось универсальным. А мы топим за модульность :)
Конкретно это расширение писал я, заняло у меня около месяца.

Если интересно про ядро почитать, то можно познакомиться с ним тут https://github.com/IRPTeam/IRP.
22. Mozgolom1988 20.10.21 15:13 Сейчас в теме
Ошибка при загрузке...
Прикрепленные файлы:
23. DitriX 1997 20.10.21 15:28 Сейчас в теме
(22) да, не думал что кто то на такое попадет.
Когда создается роль, то в табличную часть пишется ее парсинг.
Сейчас вы попали на какуюто роль, где количество прав более 100 000.
Это похоже на ну очень мега кривую роль, и такое можно добиться толко если роли поставить галочку - использовать для новый объектов, а потом снять все галочки.
Поэтому боюсь, что эту роль вы этой системой не загрузите, так как упретесь в пределы именно ограничения самой платформы 1С.
Что делать?
Если вы явно знаете что это за роль - просто удалите папку этой роли из xml, если не знаете, то просто идите методом половин, т.е. удалите половину всех папок с ролями, загрузите, если прошло, то удалите все папки, и скопируйте еще половину из иоставшихся, и т.д.
Пока не нарветесь на роль.

А когда вычислите что это за роль - то попытайтесь понять, все с ней в порядке?
24. DitriX 1997 20.10.21 15:30 Сейчас в теме
(22)дежите меня вкурсе про ваши успехи, у вас походу очень интересный случай. Можете мне в теграм написать, чтобы онлайн связь была @DitriXNew
25. Mozgolom1988 20.10.21 16:14 Сейчас в теме
(24)

Я завтра при записи думаю вытащить ее название и посмотрю что за роль. Попробую ее удалить и повторить загрузку. Отпишусь по результату (конфигурация "1С Управление Холдингом")
26. DitriX 1997 20.10.21 19:06 Сейчас в теме
(25) у меня нет доступа к этой конфе, максимум тестировал на ЕРП
27. Mozgolom1988 21.10.21 09:09 Сейчас в теме
(24)
все получилось, добавил код где запись в Попытку и в исключение вывел имена ролей.
Отдельно у себя посмотрю эти роли (4 штуки были и все добавленные).
28. DitriX 1997 21.10.21 13:04 Сейчас в теме
(27) отлично. Надеюсь что вы отпишите - как такое получилось. На будущее так сказать :)
29. ids79 6835 29.10.21 18:25 Сейчас в теме
Хороша разработка. Даже если и не применять, можно использовать много чего полезного для себя. Например отладка RLS
Оставьте свое сообщение

См. также

Анализ ролей и прав доступа Промо

Роли и права v8 v8::Права 1cv8.cf Абонемент ($m)

Отчет для анализа ролей и прав с использованием СКД. Формируется в разрезе объектов, ролей, пользователей и прав (чтение, просмотр и т.д.). Позволяет быстро узнать, какие пользователи или роли имеют конкретные права на объекты.

4 стартмани

09.01.2015    36787    21    kser87    7    

Выгрузка/загрузка ролей профиля групп доступа для БП и ЗУП

Перенос данных из 1C8 в 1C8 Роли и права v8 БП3.0 ЗУП3.x Россия Абонемент ($m)

Выгрузка ролей профиля групп доступа из одной базы в другую.

1 стартмани

26.11.2021    406    0    sportik    0    

Поиск прав и ролей (1С 8.3 управляемые формы)

Роли и права v8 v8::УФ v8::Права 1cv8.cf Россия Абонемент ($m)

Внешний отчет для поиска прав и ролей на объекты конфигурации.

1 стартмани

25.11.2021    511    5    dmitriy_saladin    0    

Ограничение пользователя просмотром складских остатков и документом Расходная накладная

Учет ТМЦ Роли и права v8 v8::БУ v8::Права БП3.0 Россия БУ Абонемент ($m)

Расширение, позволяющее ограничить работу кладовщика доступом только к документу Расход материалов и отчетам по складу.

1 стартмани

16.11.2021    504    1    226810    1    

Права доступа ролей Промо

Роли и права v8 v8::Права 1cv8.cf Абонемент ($m)

Отчет по правам доступа ролей, выводит в удобной краткой форме права доступа в разрезе ролей на интересующие нас объекты метаданных или объекты метаданных, к которым есть доступ у интересующей нас роли. Показывает наличие RLS и позволяет сравнить роли. Отображает использование роли в профилях групп доступа/группах доступа.

1 стартмани

05.02.2018    22789    169    Serge R    5    

Устранение проблемы с правами доступа. Документооборот КОРП 2.1

Документооборот и делопроизводство Роли и права v8 ДО Абонемент ($m)

Обработка позволяет открыть доступ для пользователей в конфигурации 1С: Документооборот КОРП 2.1, связанных с отсутствием необходимых записей в регистрах сведений СоставСубъектовПравДоступа и ПользователиВКонтейнерах. Проблема выражается в отсутствии доступа к папкам внутренних документов и непосредственно внутренним документам (см.рисунок).

1 стартмани

01.11.2021    975    6    baturo    0    

Контроль прав доступа. Отчет по RLS

Роли и права v8 v8::Права 1cv8.cf Абонемент ($m)

Позволяет сформировать таблицу по правам доступа в системе в разрезе Профиль доступа/Объект конфигурации/Роль.

1 стартмани

21.10.2021    957    2    qeos    0    

Интеграция 1С: Документооборот 8, (редакция 2.1) с доменом /active directory для автоматического подключения / отключения пользователей

Роли и права v8 ДО Абонемент ($m)

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

2 стартмани

18.10.2021    1061    2    ser6702    0    

Управление пользователями в документообороте

Документооборот и делопроизводство Роли и права v8 ДО Россия Абонемент ($m)

Обработка "Управление пользователями в документообороте" позволяет создавать новых пользователей и обновлять права у текущих пользователей. Возможно назначать права группе пользователей и пакетно создавать пользователей с одинаковыми правами. Облегчает рутинную работу при регулярной работе с правами пользователей.

1 стартмани

13.10.2021    1209    3    Smikle    0    

Запрет кассирам редактировать Отчет о розничных продажах. 1С: Розница

Розничная торговля Роли и права v8 v8::Права Розница Абонемент ($m)

Расширение для 1С: Розница, блокирующие доступ к редактированию документа "Отчет о розничных продажах" пользователям без админских прав.

1 стартмани

12.10.2021    1038    2    tatoshka0403    0    

Поиск ролей и профилей групп доступа для получения доступа к объектам конфигурации ERP (БСП)

Роли и права v8 v8::Права ERP2 Абонемент ($m)

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

1 стартмани

29.09.2021    1198    13    QZet    3    

Создаем и изменяем пользователей быстро и просто

Роли и права v8 УНФ ERP2 БП3.0 УТ11 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет быстро и просто создавать и изменять пользователей. Облегчает рутинную работу при регулярной работе с правами пользователей.

1 стартмани

14.09.2021    1311    6    Smikle    3    

Перестал работать отчет по правам доступа в БП 3.0

Роли и права v8 БП3.0 Россия Абонемент ($m)

Исправление ошибки формирования отчета по правам доступа.

1 стартмани

09.09.2021    1101    0    German_Tagil    0    

Набор прав роли на метаданные

Роли и права v8 v8::Права 1cv8.cf Россия Абонемент ($m)

Выводит объекты метаданных, к которым есть права у роли.

1 стартмани

08.09.2021    1033    5    kiyamov    0    

Запрет на видимость 70 счета для определенных пользователей в ERP 2.4

Роли и права v8 ERP2 Россия БУ Абонемент ($m)

Решение, позволяющее закрыть видимость бухгалтерам к 70 счету.

1 стартмани

10.08.2021    1526    4    НатальяАлекс    0    

Валовая прибыль организаций без себестоимости

Оптовая торговля Роли и права v8 ERP2 УТ11 КА2 УУ Абонемент ($m)

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

1 стартмани

20.07.2021    1660    1    alsan    0    

Аудит прав доступа

Роли и права v8 v8::Права 1cv8.cf Абонемент ($m)

Внешняя обработка, позволяет определить набор прав, установленных на выбранный объект метаданных. Является аналогом механизма "Все роли" в режиме "Конфигуратор".

1 стартмани

27.05.2021    2384    16    KPAMOP    6    

Запрет на изменение форм, панелей навигации, разделов и действий в управляемом интерфейсе

Роли и права v8 Абонемент ($m)

Как настроить права на изменение интерфейса и чем это чревато?

1 стартмани

24.05.2021    2819    1    unknown181538    0    

Проверка прав доступа к реквизитам объекта

Роли и права v8 1cv8.cf Абонемент ($m)

Позволяет получить перечень ролей, которые позволяют получить доступ к реквизиту.

1 стартмани

17.05.2021    1845    6    AntonH851    0    

Генератор ролей

Роли и права v8 1cv8.cf Россия Абонемент ($m)

Обработка генерирует атомарные наборы ролей для каждого объекта метаданных (Справочник, Документ, Отчет, Обработка, Регистр сведений).

1 стартмани

12.05.2021    3091    11    anton.fly7    7    

Обновление ролей профилей

Роли и права v8 v8::Права 1cv8.cf Абонемент ($m)

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

1 стартмани

10.05.2021    2295    2    skyadmin    0    

Роли и права на объекты метаданных

Роли и права v8 v8::Права 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

26.04.2021    2287    11    Pau1_is    0    

Управление видимостью цен в заказах клиентов (УТ11, ERP, КА)

Роли и права v8 v8::Права ERP2 УТ11 КА2 Абонемент ($m)

Есть желание скрыть цены в заказах клиентов от сотрудников? Что делать, если доступ к документу нужен для последующей работы с заказом, а светить цены большому кругу людей нет желания? Как сделать, чтобы менеджер мог видеть цены только в своих заказах?

5 стартмани

26.04.2021    2222    0    milkers    0    

Вспомогательный инструмент для быстрого просмотра объектов метаданных и ролей

Прочие инструменты разработчика Структура метаданных Роли и права v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Просмотр содержимого объектов, движений, регистров, констант и прочего. Анализ роли по объектам доступа и наоборот объекта по ролям доступа. Интуитивно понятный интерфейс, универсальный (под любую, даже самописную базу), под обычные и управляемые приложения.

1 стартмани

22.04.2021    3601    12    user802597    1    

Анализ прав пользователей (обычное и управляемое приложения)

Роли и права v8 v8::УФ v8::Права 1cv8.cf Россия Абонемент ($m)

Отчет позволяет быстро ответить на ряд вопросов: 1) Какие роли дают доступ к объектам и в каком объеме (чтение, запись, просмотр, интерактивный ввод, и т.д. )? 2) Какие роли/роль дает пользователю/пользователям доступ к объектам? Очень актуально для систем с большим количеством ролей (например ERP) Возможности: 1) Сделан на компоновке данных, можно настроить практически любой вариант. 2) 3 режима вывода отчета: Синонимы объекта (для пользователей), Имена объектов (для администраторов пользователей), Комбинированный (Имя+ Синоним). 3) Без БСП.

10 стартмани

20.04.2021    2367    8    ZUM    5    

Ограничение запуска нескольких сеансов 1С: Предприятие под одним пользователем

Роли и права v8 v8::УФ 1cv8.cf Абонемент ($m)

Ограничение запуска нескольких сеансов 1С: Предприятие под одним пользователем. Доработка сделана через расширение. Функционал работает в файловом и клиент-серверном варианте работы конфигурации. Данная разработка позволяет завершать работу пользователя двумя способами: 1. Если заходит один пользователь во второй раз, завершается работа входящего. 2. Если заходит один пользователь во второй раз, завершается работа первого сеанса под ним. Данное расширение работает как с толстым клиентом, так и с тонким.

1 стартмани

17.04.2021    2864    19    darminov    3    

Анализ прав доступа

Роли и права v8 v8::Права 1cv8.cf Абонемент ($m)

Обработка для анализа настроенных прав в системе 1С. Обработка имеет три режима: "Анализ прав на объект", "Анализ использования роли" и "Анализ прав пользователя"

5 стартмани

28.03.2021    2972    10    Svb84    1    

Анализ групп доступа пользователей

Роли и права v8 v8::УФ v8::Права 1cv8.cf Абонемент ($m)

Отчет по группам доступа. Удобен, когда групп много.

1 стартмани

19.03.2021    2483    3    xoisim    0    

RLS по организации для 1С:ERP Управление предприятием 2

Роли и права v8::Права ERP2 Россия Абонемент ($m)

Доработка в виде расширения для 1С:ERP Управление предприятием 2, исправляющего ограничение прав доступа по Организации.

5 стартмани

10.03.2021    3103    2    Mouros    3    

Групповая установка доступа к командам внешних отчетов

Роли и права v8 1cv8.cf Абонемент ($m)

На Инфостарте +100500 обработок для расстановки прав пользователей и не нашлось одной для групповой установки доступа к командам внешних отчетов (не путать с правами на справочник внешние отчеты и обработки). А между тем, именно внешние отчеты и обработки это первый и наиболее действенный способ доработки конфигурации (в умелых руках, разумеется). Закроем этот пробел.

4 стартмани

05.03.2021    2167    3    capitan    2    

Копирование всех вариантов отчетов от одного пользователя другому

Роли и права v8 ERP2 УТ11 КА2 ЗУП3.x Абонемент ($m)

Копирование всех вариантов отчетов от одного пользователя другому для программ УП-2 (ERP), КА-2, УТ-11, ЗУП-3.

1 стартмани

05.03.2021    2510    8    ab_initio    1    

Запрет изменения даты запрета изменения (загрузки) данных в БП 3.0

Роли и права v8 БП3.0 Россия Абонемент ($m)

В расширении для БП 3.0 реализован запрет на изменение даты запрета изменения / загрузки данных. Разрешение может быть предоставлено конкретным пользователям.

1 стартмани

05.03.2021    2437    5    SanchoD    0    

Авторизация в мобильном приложении 1С

Роли и права Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Реализация входа по паролю (личному коду) в мобильном приложении 1С.

10 стартмани

23.02.2021    5404    6    kaiman_fedor_yandex    0    

Перенос прав пользователей

Роли и права v8 v8::Права 1cv8.cf Россия Абонемент ($m)

Обработка для переноса прав (ролей) от пользователя к пользователю внутри базы и между разными базами с автосозданием пользователей.

1 стартмани

19.02.2021    2746    14    sondarium    4    

Групповая настройка прав доступа для БП 3.0

Роли и права v8 v8::Права БП3.0 Россия Абонемент ($m)

Данная обработка позволяет массово изменять права доступа. Удобно использовать, когда необходимо изменить права большому списку пользователей.

1 стартмани

17.02.2021    2629    12    IT_GG    0    

Создание пользователя по образцу (полное копирование настроек пользователя)

Роли и права v8 УТ10 Абонемент ($m)

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

2 стартмани

11.02.2021    3086    0    gersern    0    

Запрет просмотра оборотов по 70 счету

Зарплата Роли и права v8 v8::БУ v8::Права БП3.0 Россия БУ Абонемент ($m)

Расширение, запрещающее выбранным пользователям формировать отчеты по 70 счету для конфигурации БП 3.0.

1 стартмани

01.02.2021    3975    34    o'neill    14    

Вход в 1С под другим пользователем

Роли и права v8 1cv8.cf Абонемент ($m)

Код в расширении служит как пример входа под другим пользователем в 1С. Управляемые формы.

1 стартмани

13.01.2021    2951    3    kvaleksandr    4    

"Перенумерация ПКО и РКО в БП 3" - даем доступ бухгалтеру

Роли и права v8 v8::БУ БП3.0 БУ Абонемент ($m)

Типовая обработка в БП 3 "Перенумерация ПКО и РКО" - предоставляем доступ бухгалтеру.

2 стартмани

12.01.2021    3081    3    VPanin56    6    

Анализ ролей доступа

Роли и права v8 v8::Права ERP2 БП3.0 КА2 Абонемент ($m)

Быстрое определение, каких ролей доступа не хватает и на что влияет выбранная роль.

1 стартмани

06.01.2021    6165    86    yermak    9    

Сервис обмена настройками управляемых форм

Роли и права v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработки (выгрузка/загрузка) для копирования настроек форм пользователя между идентичными конфигурациями.

1 стартмани

29.12.2020    3125    5    33lab    2    

Удобная настройка прав, ролей, профилей и групп доступа

Роли и права v8 1cv8.cf Абонемент ($m)

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

2 стартмани

28.12.2020    3636    40    Leshka_m    0