Костыли порождают костыли: Имена ролей в расширении

07.05.25

Разработка - БСП (Библиотека стандартных подсистем)

Наткнулся на костыль по работе с ролями. Хочу поделиться, как не попасть на это странное поведение БСП.

Есть у меня подсистема, которую я в виде расширения выложил, и она содержит четыре роли:

  • PAPI_Администратор – полные права
  • PAPI_БазовыеПрава – в основном только чтение объектов
  • PAPI_ПодсистемаPAPI – только видимость подсистемы PAPI
  • PAPI_Оператор – возможность просмотра и работы с некоторыми регистрами.

Расширение чаще всего работает с галочкой «Использовать основные роли для всех пользователей»:

 

 

Роль PAPI_БазовыеПрава прописана в основные роли конфигурации:

 

 

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

Вот как на картинках ниже. Бац, и она сама залезла во все профили без административных прав:

 

 

 

 

Подобно плесени, она присутствует в каждом профиле. При этом никто ее не прописывал, ее прописывает туда хитрый код под названием «Костыль» от фирмы 1С. Суть проблемы кроется в двух вещах.

1 Фирма 1С написала код, снимающий галочку «Использовать основные роли для всех пользователей», так как она идет в разрез с заложенным ранее механизмом прав.

 
 С партнерки, сообщение от 14.02.2020 14:07:

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

Доступа к партнерке у меня нет, я нашел это тут -> https://forum.infostart.ru/forum86/topic235640/#message2466730

 

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

2 А вот про вторую вещь надо поговорить подробнее.

Ситуация следующая. Галочка снимается и роль прописывается сама по себе, но что будет, если эта роль не прописалась?

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

Что первое приходит в голову?

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

Правильно. Я бы так и сделал.

А знаете, что произойдет при попытке так сделать?

Выпадет вот такое замечательное окошко:

 

 

Сообщение говорит следующее: 

- Не ерзай, иди за вазелином, отвечай на звонки и письма пользователей, а главное, наслаждайся этим процессом до тех пор, пока стандартная роль добавляется автоматически!

А когда она добавится?

И что делать, если прошли сутки, а она не добавилась?

А главное! Зачем так сделано?

Почему нельзя дать возможность ее добавить самому, своими руками?

 

А теперь барабанная дробь! Костыльный обход костылей!

1 Можно выделить все роли и нажать волшебную кнопку  и вуаля, все роли выбраны, вплоть до нужной нам.

 

 

2 Можно выбрать роль «Базовые права БСП», и роль «PAPI: Базовые права» включилась сама по себе!

 

 

Сохранив, мы видим:

 

 

Скажите мне: - Где это документировано?

Самое интересное - есть еще один способ обойти эту напасть.

 

Переименовать роль!

 

 

Давайте посмотрим в Код!

Сразу бросается в глаза, куда рыть:

 

 

Идем дальше:

 

 

Вот где костыль сидит:

 

 

Если бы моя роль называлась БазовыеПрава_PAPI или PAPI_Базовая или PAPI_ЖелтыеКотики все бы было замечательно.

Проверим гипотезу?

Назову роль PAPI_Базовая, а синоним оставлю прежний:

 

 

 

Записали:

 

 

 

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

  • ОбщиеПрава
  • ПолныеПрава
  • БазовыеПрава
  • БазовыеПраваВнешнихПользователей
  • АдминистраторСистемы

 

Ну и на затравку...

Кто использует InfostartToolkit?

 

 

П.С. Я ни на что не намекаю, просто констатирую факты 😉

 

А вот теперь точно все!

Спасибо за внимание и всем успехов и новых вершин!

Костыли роли наименование ошибка ОбщиеПрава ПолныеПрава БазовыеПрава БазовыеПраваВнешнихПользователей АдминистраторСистемы PAPI БСП баг фича

См. также

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

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

15500 руб.

02.09.2020    187450    1043    403    

978

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

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

15000 руб.

10.11.2023    14112    60    33    

79

SALE! 10%

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

19200 17280 руб.

06.12.2023    13132    57    8    

86

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

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

5940 руб.

27.05.2021    41717    312    106    

240

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    6285    33    23    

35

Ценообразование, анализ цен Роли и права Системный администратор Платформа 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С:УНФ 1.6 и 3.0. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    60688    174    264    

163

SALE! 10%

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

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

19200 17280 руб.

29.11.2019    26352    18    8    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rpgshnik 3862 07.05.25 09:37 Сейчас в теме
Магия! Спасибо, Дима! Буду знать) а я думаю, почему у меня с правами тоже беда была)) лень было разбираться
KamranV21; pavlov_dv; Serg O.; dsdred; +4 Ответить
2. dsdred 3870 07.05.25 09:46 Сейчас в теме
(1) Рад, что понравилась статья. Мне надоело, что было лень и вчера разобрался ;)
TSAllea; tolyan_ekb; RustIG; rpgshnik; KamranV21; pavlov_dv; Serg O.; +7 Ответить
3. Torin 853 07.05.25 10:06 Сейчас в теме
+ однозначно
rpgshnik; KamranV21; pavlov_dv; dsdred; +4 Ответить
4. artbear 1568 07.05.25 10:37 Сейчас в теме
Отличное расследование и статья замечательная. Большое спасибо!
rpgshnik; KamranV21; pavlov_dv; dsdred; +4 Ответить
5. dsdred 3870 07.05.25 10:39 Сейчас в теме
(4) Рад, что статья понравилась ;)
6. RustIG 1881 07.05.25 12:17 Сейчас в теме
Если СтрЗаканчиваетсяНа(ИмяРоли, "БазовыеПрава") Тогда

Дмитрий достоин денежного вознаграждения за расследование.

ПС. в УТ 11.5.20 есть еще проверка на СтрНачинаетсяНа
Прикрепленные файлы:
7. dsdred 3870 07.05.25 12:45 Сейчас в теме
(6) Получается надо убирать эти словосочетания впринципе ))
Кто знает что там в 1С еще взбредет в голову ;))
8. sergey279 179 07.05.25 14:25 Сейчас в теме
Вот тут на картинке для пользователей
и вот тут https://its.1c.ru/db/v8std#content:488:hdoc
для разработчиков
Прикрепленные файлы:
shu_vol; RustIG; Kolunya; rozer; dhurricane; aximo; dsdred; +7 Ответить
9. dsdred 3870 07.05.25 14:29 Сейчас в теме
(8) Спасибо. А есть информация, что делать если они по какойто причине не добавились?
10. sergey279 179 07.05.25 15:18 Сейчас в теме
(9) Сам не знаю, а на ИТС слишком много информации чтоб погружаться без прикладной задачи
Я бы попробовать ОбновлениеВспомогательныхДанных.epf в простом режиме с галочкой "управление доступом"

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

По аналогии навешивания прав в конфигураторе на пользователя, когда у нас БСП работает.
И работает, пока профиль кто то не запишет или обновление не устанавливаем. И когда событие сработало, все наши заведенные не по задумке БСПшников - улетели.
11. dsdred 3870 07.05.25 15:32 Сейчас в теме
(10) я думал в сторону ОбновлениеВспомогательныхДанных.epf, но не уверен в результате и решил посмотреть прямо код.

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

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

П.С. По моим ощущениям, проще сделать наименования не по упомянутым стандартам, а уйти от БСПшных вещей, а то вот в 6 коментарии https://forum.infostart.ru/forum24/topic326491/#message3164940 говорится что в УТ уже начало наименования проверяется. Глядишь потом сделают просто содержит...
12. Гость 07.05.25 17:03
(8) И сверху - вдруг известно - это происходит только лишь при интерактивном добавлении расширений или при загрузке из файла в конфигураторе в пустое расширение тоже? А то "при добавлении" звучит как именно интерактивное событие...
13. Kolunya 6 07.05.25 18:34 Сейчас в теме
Еще на старте работ с расширениями 1С - разобрали в команде несколько ситуаций с "основными ролями" и приняли решение их не использовать НИКОГДА))
Атомарные роли - наше всё!
А если своих объектов в расширении нет - то и тем более основных ролей никаких дополнительно не надо)

Дима, лови плюсик) Спасибо за статью!
14. dsdred 3870 07.05.25 20:32 Сейчас в теме
(13) Николай, спасибо за плюсик ;)
Когда расширения появились, с ролями там была беда. Прямо помню, что приходилось какой-то код выполнять. Но уже всех деталей не скажу. Я расширения с 2015 гонял и по началу это были сплошные копромисы :))
15. partizand 140 07.05.25 21:21 Сейчас в теме
Про имя роли и её назначение описано в стандартах https://its.1c.ru/db/v8std#content:488:hdoc (неожиданно, но в документации БСП на них есть ссылка). А назначает роль ОбновлениеВспомогательныхДанных, или при обновлении версии.

Видимо в вашем случае нужны ОбщиеПрава.
Оставьте свое сообщение