Оптимизация прав ролей

09.09.19

База данных - HighLoad оптимизация

Решение вопроса по неоптимальной настройке (избыточной) ролей, влияющей на производительность системы (потребление оперативной памяти). Алгоритм работы следующий: Выгрузка конфигурации в файлы - Обработка (изменение) файлов прав ролей - Загрузка измененных прав в конфигурацию. Проверено на платформе начиная с 8.3.12.

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

Наименование Файл Версия Размер
Оптимизация прав ролей
.epf 13,17Kb
18
.epf 1.1.1 13,17Kb 18 Скачать

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

Заинтересовался потреблением памяти - нашел данную тематику на infostart в статье Влияние настройки роли на потребление памяти. По результатам изучения решил изменить роли у нас на проекте, но столкнулся с задачей - автоматизировать изменение ролей в конфигурации. Не нашел готового механизма. В итоге сделал собственную разработку.

Важно:

  1. Командные строки в алгоритме генерируются по данным базы, в которой запускается обработка
  2. Роли должны быть с возможностью редактирования (в противном случае ошибка будет ошибка "Загрузка невозможна: редактирование объекта метаданных Role.ИмяРоли запрещено!")
    Т.е. необходимо установить статус для изменяемых ролей "Редактируется с сохранением поддержки", если роли на поддержке конечно.
  3. Конфигуратор должен быть закрыт
  4. У пользователя необходимо отключить "Защита от опасных действий"

Алгоритм

  1. Запускаем обработку в режиме предприятия:

     
  2. Указываем каталог (поле 1), куда будем выгружать файлы конфигурации. Строка запуска (поле 2) генерируется автоматически. Необходимо только ввести данные по пользователю и паролю (поля 3 и 4) (не вводить, если авторизация ОС)

     
  3. Нажимаем кнопку выгрузить (кнопка 1). Процесс длительный - пьем кофе. Примечание: может задать вопрос о хранилище, если к нему подключена конфигурация.

     
  4. Когда конфигурация выгружена рекомендую (буду делать так) делать копию каталога (как резерв). Затем приступать к следующему шагу.

     
  5. Переходим на вкладку "Основное" - выбираем каталог-копию файлов (поле 1) и нажимаем кнопку прочитать (кнопка 2). Ждем...
    Примечание: колонки "Добавлять новым объектам", "Устанавливать права для реквизитов", "Независимые права подчиненных объектов" информативные - соответствуют галкам в конфигураторе в роли

  6.  
  7. Загружены роли из файлов, которые указаны в колонке "Путь к файлу". Видим колонку "Размер" (по нему сортировка) - его и будем уменьшать.

     
  8. Выбираем нужные роли для оптимизации и нажимаем кнопку "Обработать" (кнопка 1)

     
  9. Алгоритм обработки прост: мы бежим по файлу XML и удаляем узлы с объектами, которые являются частью основного объекта, но самого объекта в файле нет (т.к. прав на объект нет), а значит и права на зависимые объекты избыточны. Пример: у роли "Роль1" нет прав на справочник "Номенклатура", у реквизитов сняты галки на просмотр и редактирование - следовательно эти реквизиты попадут в файл. Мы же обработкой удалим их из файла.
     
     Отсутствует в файле

     
  10. После выполнения обработки выполняем загрузку из каталога, в котором проводили изменения. Переходим на вкладку "Выгрузка/Загрузка"У нас выделены галками измененные роли (закладка "Основное") - они и буду загружены в конфигурацию. выбираем каталог, где изменяли роди (поле 1) и нажимаем кнопку загрузки (поле 2).

     
  11. После загрузки ролей необходимо зайти в конфигуратор и обновить базу.

     
  12. Результаты:
  • 764 мб. оперативной памяти освобождено.
  • Скорость открытия формы повышена незначительно - все-таки влияет количество ролей.
  • На примере одной роли размер уменьшился с 23 мб. до 956 кб.

 

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

права роли оптимизация производительность

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

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

13000 10400 руб.

02.09.2020    121625    670    389    

711

Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5

Зарплата Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5700 руб.

27.05.2021    32726    204    89    

165

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2969    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3507    11    1    

33

Расширение для разграничения доступа к контрагентам и обработка для группового назначения доступа для Бухгалтерии (RLS) 3.0.143.42

Роли и права Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    5757    7    4    

9

Роли для кладовщика

Логистика, склад и ТМЦ Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

2520 руб.

21.05.2019    1692303    552    192    

133

Универсальная система оповещений в базе или по почте по произвольным условиям, расписанием, ролям и пользователям (Расширение / конфигурация для платформ 8.3.6+, для ЛЮБЫХ баз)

Роли и права Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Данная система разработана как альтернатива стандартной системе напоминаний. Но имеет ряд существенных преимуществ: отображение в базе или с отправкой по почте, свое расписание, возможность фильтрации по ролям и пользователям, формирование своих запросов и макетов, шаблоны писем, работа в фоне. А также может блокировать работу пользователей при заданных условиях. Может работать в составе любой конфигурации. Имеется справка с описанием возможностей. (Обновление от 20.02.2024, версия 2.2, расширение)

18000 руб.

29.11.2019    24688    13    8    

33
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Brawler 454 09.09.19 21:41 Сейчас в теме
Написали бы вы лучше все свои выкладки в саму 1С, пусть задумаются... и возможно решат сей вопрос на уровне платформы.
2. toxilamer 35 09.09.19 21:45 Сейчас в теме
(1) Хотелось бы, чтобы решили. Но еще не проверял в EDT - может там решен данный вопрос.
3. tormozit 7136 16.09.19 09:09 Сейчас в теме
Вопрос "Хранить или не хранить?" - спорный. Представим, что есть документ с большим количеством реквизитов и табличных частей и их реквизитов. Вполне вероятно что для его реквизитов будут настроены собственные разрешения внутри некоторых ролей. Далее кто то временно решил отключить все права на сам документ у всех ролей скажем для предотвращения повреждения данных из-за ошибки в коде или данных. На исправление этой ошибки нужно длительное время. Поэтому отключение права на сам объект в данной ситуации не должно очищать настройки разрешений дочерних объектов метаданных. Они должны просто перестать применяться. И это общий принцип у конфигуратора, насколько я помню, практически во всех ситуациях. Так что текущее поведение является более щадящим к сохранению настроек. На мой взгляд оно является правильным.

Если же разработчику требуется максимально снизить размер конфигурации, то у него должен быть инструмент (например описанный в этой статье) для выборочного удаления таких настроек с указанием ролей и объектов в них. Т.е. разработчик должен сказать инструменту, какие настройки дочерних объектов в ролях уже точно не нужны и какие еще могут пригодиться.
toxilamer; +1 Ответить
8. toxilamer 35 16.09.19 10:44 Сейчас в теме
(3) Спасибо за комментарий.
Попробую переварить и расширить настройки обработки.
4. Cyberhawk 135 16.09.19 09:13 Сейчас в теме
бежим по файлу XML и удаляем узлы с объектами, которые являются частью основного объекта, но самого объекта в файле нет (т.к. прав на объект нет), а значит и права на зависимые объекты избыточны
"Избыточностью" это называть не совсем корректно: если удалить узел с запрещающими правами на реквизиты "чужих" объектов, то этой роли становятся доступны эти самые реквизиты чужих объектов, что может нарушать задуманную автором совершенно других ролей логику просмотра-редактирования реквизитов в УФ-формах.
5. Sashares 34 16.09.19 10:42 Сейчас в теме
(4)
если удалить узел с запрещающими правами на реквизиты

Запрещающие права это что в вашей трактовке? В Платформе нет запрещающих прав.
7. Cyberhawk 135 16.09.19 10:43 Сейчас в теме
(5)
Запрещающие права это что в вашей трактовке?
Справедливое замечание. Подразумевается отсутствие разрешающего флажка.
6. toxilamer 35 16.09.19 10:42 Сейчас в теме
(4) Можете на примере привести сценарий?
Не могу воспроизвести ситуацию. Запрещающих ролей в 1С нет.
Или вы имели ввиду "жестко" прописана в коде проверка на право на реквизит?
9. Cyberhawk 135 16.09.19 11:24 Сейчас в теме
(6)
имели ввиду "жестко" прописана в коде проверка на право на реквизит?
Нет, речь о платформенном механизме ограничения (видимости или возможности редактирования) реквизитов в форме объекта в зависимости от наличия у всех ролей пользователя этого флажка.
Совершенно точно одно: удаление узлов со значениями права на реквизит "false" изменяет логику: при загрузке конфигурации из отредактированных таким образом файлов у роли появятся эти права (так же как и при создании новой роли по умолчанию), т.е. признак снятия флажка становится безвозвратно утерян, что и несет всю опасность.
Над сценарием думать лениво.
10. toxilamer 35 16.09.19 11:29 Сейчас в теме
(9) Спасибо за замечание.
11. vcv 89 22.09.19 08:31 Сейчас в теме
Думаю, полезней была бы функция отчета. Где предположительно лишние права. А обработать все роли в конфигурации по каким-то непонятным критериям - безумству храбрых поём мы песню.
Irwin; athena; +2 Ответить
Оставьте свое сообщение