Выключаются роли из расширений у пользователей

1. rougudz 05.07.22 11:40 Сейчас в теме
Созданы некоторые расширения и в них созданы роли. Если включить у пользователей эти роли то через какое-то время они отключаются автоматически. если у пользователя не полные права это приводит к неработоспособности расширения для него, что не есть гуд.
погуглив проблему нашел решение в общем модуле УправлениеДоступомСлужебный в процедуру ОбновитьРолиПользователей через расширение же добавил &ИзменениеИКонтроль("ОбновитьРолиПользователей")
после
ДополнительныеРолиАдминистратора = Новый Соответствие(СтандартныеРолиРасширений.ДополнительныеРолиАдминистратора);
ДополнительныеРолиАдминистратора.Вставить("ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок", Истина);

добавил
#Вставка
ДополнительныеРолиАдминистратора.Вставить("Расш_КоммДолгОсновнаяРоль", Истина);
#КонецВставки

не помогает.
пробовал в этоже процедуре поменять далее код
Если Администраторы[ТекущийПользователь] <> Неопределено Тогда
            ТекущиеНовыеРоли = НовыеРоли;
            НовыеРоли = ТекущиеНовыеРоли.Скопировать(Новый Массив);
            Для Каждого КлючИЗначение Из ОбязательныеРолиАдминистратора Цикл
                НовыеРоли.Добавить().Роль = КлючИЗначение.Ключ;
            КонецЦикла;
            Для Каждого КлючИЗначение Из ДополнительныеРолиАдминистратора Цикл
                Если ТекущиеНовыеРоли.Найти(КлючИЗначение.Ключ, "Роль") = Неопределено Тогда
                    Продолжить;
                КонецЕсли;
                НовыеРоли.Добавить().Роль = КлючИЗначение.Ключ;
            КонецЦикла;
            
        КонецЕсли;
Показать

поменял на
Если Администраторы[ТекущийПользователь] <> Неопределено Тогда
            ТекущиеНовыеРоли = НовыеРоли;
            НовыеРоли = ТекущиеНовыеРоли.Скопировать(Новый Массив);
            Для Каждого КлючИЗначение Из ОбязательныеРолиАдминистратора Цикл
                НовыеРоли.Добавить().Роль = КлючИЗначение.Ключ;
            КонецЦикла;
            Для Каждого КлючИЗначение Из ДополнительныеРолиАдминистратора Цикл
                Если ТекущиеНовыеРоли.Найти(КлючИЗначение.Ключ, "Роль") = Неопределено Тогда
                    Продолжить;
                КонецЕсли;
                НовыеРоли.Добавить().Роль = КлючИЗначение.Ключ;
            КонецЦикла;
            #Вставка
            //Если для пользователя выбраны "наши" дополнительные роли, то добавляем их в таблицу "НовыеРоли"
            ВыбранныеДополнительныеРоли = Новый Массив;
            Для Каждого Стр Из ТекущиеНовыеРоли Цикл
                Если ВРег(Лев(Стр.Роль, 5)) = "Расш_" Тогда
                    ВыбранныеДополнительныеРоли.Добавить(Стр.Роль);
                КонецЕсли;
            КонецЦикла;
            Для Каждого Стр Из ВыбранныеДополнительныеРоли Цикл
                НовыеРоли.Добавить().Роль = Стр;
            КонецЦикла;
            #КонецВставки
        КонецЕсли;
Показать

что тоже ничего к сожалению не дало.
куда копать дальше непонимаю.
может кто сталкивался с данной проблемой?
править саму конфигурацию очень не хочется, хочется обойтись расширениями..
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. laperuz 47 05.07.22 11:42 Сейчас в теме
Как это визуально выглядит в группе доступа? У роли появляется вопрос в названии?
3. rougudz 05.07.22 11:46 Сейчас в теме
(2)вопрос не очень понял. что есть "группа доступа"? если это закладка Прочие в пользователе где назначаются роли то там нету знаков вопроса нигде.
4. laperuz 47 05.07.22 11:48 Сейчас в теме
(3)Я прошу прощения, а вы через конфигуратор что ли роли назначаете?
5. rougudz 05.07.22 11:48 Сейчас в теме
(4) естественно, в 1с нету этих ролей, они из расширений
6. laperuz 47 05.07.22 11:51 Сейчас в теме
(5)Роли из расширений есть в пользовательском режиме, по крайней мере на актуальных версиях конфигураций. Их не было только на самых первых версиях платформы/БСП, которые поддерживали расширения и роли в расширениях.
Прикрепленные файлы:
7. rougudz 05.07.22 12:00 Сейчас в теме
(6) странно. нашел. привык все через конфигуратор делать. в самой 1с как-то странно это настраивать.
попробую там включить в какой-либо группе доступа. не уверен что прокатит, но попробую. спасибо!
8. RustamZz 05.07.22 12:21 Сейчас в теме
(7) При сохранении профиля в режиме предприятия, перезаписываются права у всех пользователей этого профиля. Соответственно слетают права назначенные в конфигураторе. Создавать пользователей, менять им права через конфигуратор - уже давно не работает в новых конфигурациях.
9. rougudz 05.07.22 13:42 Сейчас в теме
(8)так я никогда профили в режиме предприятия и не сохраняю. но слетает всеравно.
10. RustamZz 05.07.22 13:47 Сейчас в теме
(9) При обновлении конфигурации происходит перезапись профилей. Дальше смысла обсуждать нет - вы уже поняли свою ошибку.
11. rougudz 05.07.22 14:28 Сейчас в теме
(10)
При обновлении конфигурации происходит перезапись профилей. Дальше смысла обсуждать нет - вы уже поняли свою ошибку.

спасибо. на ошибку это конечно не сильно похоже, скорей на баг конфигурации.
но спасибо все равно!
завтра проверю сработало ли.
12. Bob_D 27.02.24 14:06 Сейчас в теме
(11)Удалось в итоге победить? Если да, то как?
13. rougudz 21.03.24 10:57 Сейчас в теме
(12) роли из расширения добавляю в режиме предприятия. и вроде все работает теперь.
14. Bob_D 21.03.24 10:59 Сейчас в теме
(13)
аботает теперь.

Если у пользователя полные права, то нет. и они слетаю при любом изменении. я написал временный обход, но "человечего" решения нет.
15. newlogin1 21.03.24 15:56 Сейчас в теме
(14)
полные права

Ну вы хотябы в код залезли чтоли. Все правильно работает, лишние права при Полных правах не нужны, они только тормозят работу базу и расширения нужно делать так, чтобы новые объекты, добавленные в них, были доступны в полных правах без ограничений. Понятное дело что бывают странные хотелки, когда хотят ограничить только по наличию роли. Тут есть варианты и самый просто по группам пользователей проверять (или по группам прав). Лучше не добавлять пользакам с полными правами новые роли.
16. Bob_D 21.03.24 15:59 Сейчас в теме
(15)
(15)ну вот я тож к этому пришел.
17. webresurs 230 20.03.25 13:21 Сейчас в теме
(16) тут предлагают
ОбщийМодуль.УправлениеДоступомСлужебный процедура ОбновитьРолиПользователей) для исправляющей вставки кода, процедура добавлена в расширение в режиме ИзменениеИКонтроль, добавлена вставка кода для исправления.
отключаются роли из расширения

        Если Администраторы[ТекущийПользователь] <> Неопределено Тогда
            ТекущиеНовыеРоли = НовыеРоли;
            НовыеРоли = ТекущиеНовыеРоли.Скопировать(Новый Массив);
            Для Каждого КлючИЗначение Из ОбязательныеРолиАдминистратора Цикл
                НовыеРоли.Добавить().Роль = КлючИЗначение.Ключ;
            КонецЦикла;
            Для Каждого КлючИЗначение Из ДополнительныеРолиАдминистратора Цикл
                Если ТекущиеНовыеРоли.Найти(КлючИЗначение.Ключ, "Роль") = Неопределено Тогда
                    Продолжить;
                КонецЕсли;
                НовыеРоли.Добавить().Роль = КлючИЗначение.Ключ;
            КонецЦикла;
            #Вставка
            Для Каждого СтрРоль Из ТекущиеНовыеРоли Цикл
                Если ТипЗнч(СтрРоль.РольСсылка) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда
                    ЗаполнитьЗначенияСвойств(НовыеРоли.Добавить(), СтрРоль);
                КонецЕсли;
            КонецЦикла;
            #КонецВставки
        КонецЕсли;

Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот