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

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    190053    1057    403    

985

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

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

15000 руб.

10.11.2023    14581    62    33    

80

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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 руб.

06.12.2023    13474    58    8    

86

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

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

5940 руб.

27.05.2021    42172    317    106    

243

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

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

1800 руб.

21.11.2024    6742    34    23    

39

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

Мучаетесь со списком типовых ролей? Не хотите иметь дело с конфигуратором? Не знаете что делают имеющиеся права в базе? Хотите просто и удобно добавлять и настраивать, по одному клику, доступы и поведение при записи/удалении/проведении/открытии списка/фильтрацию данных в списках или формах выбора для пользователя или группы пользователей и для любого объекта? Не хотите переживать, что при обновлении конфигурации все права и роли слетят? (Обновление от 27.03.2023, версия 1.9)

16800 руб.

21.03.2022    16798    28    54    

49

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

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

3000 руб.

23.02.2018    60897    174    264    

163
Отзывы
8. sergey279 179 07.05.25 14:25 Сейчас в теме
Вот тут на картинке для пользователей
и вот тут https://its.1c.ru/db/v8std#content:488:hdoc
для разработчиков
Прикрепленные файлы:
Shmell; hunter39; alk; zveraboi16; Revachol; cleaner_it; m_aster; user1334089; VAAngelov; CSiER; Viktor_Ermakov; shu_vol; Kolunya; rozer; dhurricane; aximo; dsdred; +17 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rpgshnik 3873 07.05.25 09:37 Сейчас в теме
Магия! Спасибо, Дима! Буду знать) а я думаю, почему у меня с правами тоже беда была)) лень было разбираться
VAAngelov; KamranV21; pavlov_dv; Serg O.; dsdred; +5 Ответить
2. dsdred 3922 07.05.25 09:46 Сейчас в теме
(1) Рад, что понравилась статья. Мне надоело, что было лень и вчера разобрался ;)
Viktor_Ermakov; TSAllea; tolyan_ekb; RustIG; rpgshnik; KamranV21; pavlov_dv; Serg O.; +8 Ответить
3. Torin 856 07.05.25 10:06 Сейчас в теме
+ однозначно
rpgshnik; KamranV21; pavlov_dv; dsdred; +4 Ответить
4. artbear 1567 07.05.25 10:37 Сейчас в теме
Отличное расследование и статья замечательная. Большое спасибо!
Viktor_Ermakov; rpgshnik; KamranV21; pavlov_dv; dsdred; +5 Ответить
5. dsdred 3922 07.05.25 10:39 Сейчас в теме
(4) Рад, что статья понравилась ;)
Viktor_Ermakov; +1 Ответить
6. RustIG 1882 07.05.25 12:17 Сейчас в теме
Если СтрЗаканчиваетсяНа(ИмяРоли, "БазовыеПрава") Тогда

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

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

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

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

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

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

П.С. По моим ощущениям, проще сделать наименования не по упомянутым стандартам, а уйти от БСПшных вещей, а то вот в 6 коментарии https://forum.infostart.ru/forum24/topic326491/#message3164940 говорится что в УТ уже начало наименования проверяется. Глядишь потом сделают просто содержит...
19. Viktor_Ermakov 376 08.05.25 09:18 Сейчас в теме
(9) Видимо это исключительная ситуация, а значит в ЖР должна быть запись об этом)
22. dsdred 3922 08.05.25 12:43 Сейчас в теме
(19) в том то и дело. Записи нет. Есть только о нехватке прав.
23. Viktor_Ermakov 376 08.05.25 14:08 Сейчас в теме
(22) Ну тогда это косяк да, стоит написать в телеграмм в еженедельных вопросах. или на багборд.
А сама статья замечательная, интересно написана, спасибо!
12. Гость 07.05.25 17:03
(8) И сверху - вдруг известно - это происходит только лишь при интерактивном добавлении расширений или при загрузке из файла в конфигураторе в пустое расширение тоже? А то "при добавлении" звучит как именно интерактивное событие...
16. RustIG 1882 08.05.25 08:42 Сейчас в теме
(12) при добавлении программно и интерактивно. Одинаково будет
user2040951; +1 Ответить
13. Kolunya 6 07.05.25 18:34 Сейчас в теме
Еще на старте работ с расширениями 1С - разобрали в команде несколько ситуаций с "основными ролями" и приняли решение их не использовать НИКОГДА))
Атомарные роли - наше всё!
А если своих объектов в расширении нет - то и тем более основных ролей никаких дополнительно не надо)

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

Видимо в вашем случае нужны ОбщиеПрава.
m_aster; denmax; dsdred; +3 Ответить
17. RustIG 1882 08.05.25 08:57 Сейчас в теме
(15) спасибо за ссылку. Интересный получился круглый стол. Полезно. По поводу "неожиданно". Только ведь мы водим машину, не глядя в ПДД. Так и с программированием. Интуитивно , не правильно строить алгоритм промышленных конфигураций , используемых по всей стране, на конструкциях вида Если СтрОканчиваетсяНа(ИмяРоли, "Базовые")... Такой нюанс не первый в разработке конфигураций на платформе 1с. Поэтому здешние писатели лояльно к происходящему относятся. Раньше возмущались за невосполнимое потерянное время при расследовании причин ошибок. Сейчас уже страсти тише, все начали понимать, что 1с стала сложнее в стократ. Наш круглый стол похож на ИИ. Только ему под силу знать все ссылки на все статьи, которые написаны и которые еще не написаны. Я полагаю статья получилась интереснее, чем статьи на итс. Я к примеру читать итс сейчас не хочу - нет времени загружать и перегружать голову ненужной информацией. Это веяние нашего времени. Итс уже перегружен статьями. Нет сил все читать и знать. Пора перехрдить на френдли интерфейс программирования, без подобных конструкций СтрОканчиваетсяНа.
20. Viktor_Ermakov 376 08.05.25 09:24 Сейчас в теме
(17) не соглашусь.
ИТС это первый источник в который надо идти и читать, БСП и стандарты уж точно, а не искать ответы на вопросы на текущих источниках.
Если у тебя нет времени читать ИТС, у тебя же и будут проблемы, уйдет еще больше времени на раскопки, т.е. по факту время ты потеряешь, а не сэкономишь.
Но это мое мнение и правило, не говорю что это истина.
VAAngelov; +1 Ответить
24. Brawler 461 08.05.25 21:38 Сейчас в теме
(20) ИТС, - это обрубок неполноценный. Далеко не все там описано. Методики внедрения БСП и БПО тупо с ошибками описаны. То как они там пишут, оно не работает => расследования наше всё...
25. Viktor_Ermakov 376 08.05.25 21:40 Сейчас в теме
(24) Это Ваше мнение, и я с ним категорически не согласен.
Звучит так, как будто Вы все сразу, с первого раза делаете идеально, повезло Вашим заказчикам, Вы редкость!
28. RustIG 1882 11.05.25 03:30 Сейчас в теме
(20) вам на секунду не подумалось , почему два умных человека - автор статьи и автор первого коммента - написали одинаково, что да, какая -то "непонятка" с алгоритмом, и никто не пошел смотреть итс...
Неспроста статья названа "костыль"... Проблема, затронутая в статье , глубже, чем просто 10 строк проверки имен ролей и связанного с этими строками справочника Итс... Ну да ладно, это все лирика... Я лишь хотел сказать, что проблема не в Итс...
21. dsdred 3922 08.05.25 12:39 Сейчас в теме
(15) спасибо. Ссылку уже дали в 8 посте.
Но как я писал лучше избежать привязку к этому поведению. Хочется самому настраивать доступ, а не зависить от автоматики, которая даст права даже тем кому они не нужны.
26. RustIG 1882 11.05.25 03:05 Сейчас в теме
(15) " про имя роли и ее назначение описано в стандартах. "
Только меня коробит, что стандарты уже пишут на имена ролей и их назначения? Ну это тупик уже....
18. MikeSh 57 08.05.25 09:09 Сейчас в теме
Спасибо. Это многое объясняет. Однозначный плюс в карму.
27. RustIG 1882 11.05.25 03:24 Сейчас в теме
(20) сложность форумов заключается в том, что сложно выразить мысль лаконично , точно. Мы с вами не поняли друг друга. Ощущение, что мне нужно спуститься до базового уровня и пояснить. Многие из здешних старожил выросли на Итс, и до сих пор им пользуются в своей профессиональной практике, как инструментом. Это крутой инструмент, это хорошее подспорье для решения вопросов.
Я лишь другое хотел сказать, что статья получилась всеобьемлющей и достаточной, чтобы не искать допинформации на итс. После прочтения статьи, тема не стоит дальнейшего изучения на итс. Даже непонятно, что еще можно на итс для себя почерпнуть , когда вам и так выложили кусок простого кода с ролями.
Да, это тупик, когда в пользовательской форме приходится писать и пояснять алгоритмы. Такой же пример вспомнился связанный с эдо. С проверкой полномочий , клгда достаточно прописать в полномочиях фразу "Все полномочия" - также поступили - написали мелким шрифтом на форме настроек параметров учета эдо. Также написали "стандарт" на итс. Но в итоге я старой школы программист сначала сделал по своему - написал " Все полномочия. Все электронные докуменьы" увидел, что не работает, залез в итс, потом отредактировал Комментарий. Хакнул систему, все заработало. Подсистема проверки полномочий прав эдо держится на Комментарии. Браво, архитектор такой сложной системы Бсп эдо! Ну это тупик. Тупик когнитивного развития программ 1с - давайте на формах 1с писать как правильно работать с 1с...
29. Viktor_Ermakov 376 13.05.25 08:36 Сейчас в теме
(27) Я Вас понял, спасибо.
По ЭДО там не плохие ребята работают сейчас, думаю стоит им написать, возможно это Легаси решение и они его изменят.
30. RustIG 1882 13.05.25 09:05 Сейчас в теме
(29) я и не заметил, что переписываюсь с представителем фирмы "1С". с одной стороны, это хороший знак, что вы стали участвовать, с другой стороны - поживем, увидим.
в 1С работают хорошие ребята - я не сомневаюсь.
многие вопросы здесь и останутся (на ИС имеется в виду), многим некогда даже на ИС писать свое мнение - работают. А писать два раза - первый раз на ИС, второй раз - разработчикам 1С- это когда совсем от безделья маешься. Становишься таким "хорошистом" или "борцом за справедливость".... Ну нет, так это не работает....
Раз поняли суть проблемы, то вам быстрее привлечь внимание ваших родных коллег по цеху, а забесплатно нас просить изменить мир - ну это такое себе занятие .... - у нас же здесь конкурентная гонка за выживание - вы были на нашей стороне когда-нибудь?! тут в саванне сплошь хищники.... :)
31. Viktor_Ermakov 376 13.05.25 09:17 Сейчас в теме
(30) на текущий момент я уже не сотрудник компании 1С. Да и суть дела это не меняет. Если писать только на ИС то врят ли что то изменится, это так так не работает. Есть телеграмм канал где принимают предложения, вот туда надо обращаться и тогда задача будет зарегистрирована и когда то сделается. С ИС баги автоматически не парсятся, и не все сотрудники читают ИС.
32. dsdred 3922 13.05.25 09:22 Сейчас в теме
(31) Скажу так. У меня большой опыт общения с тех суппортом;)

Писал статейку по этому поводу у себя в канале, так как на ИС модерацию непрошла))
Вот статья -> Первый круг ада фирмы 1С.

Самое интересное, ничего не меняется, даже информацию для статьи частично можно добыть только из закрытого форума ))
Оставьте свое сообщение