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