Имя: Пароль:
1C
1С v8
Настройка интерфейса в УСО 1.3
,
0 jyupiter
 
11.03.12
10:18
Есть типовое прикладное решение на поддержке
Платформа 1С 8,2
Конфигурация Управление Строительной Организацией 1,3

Нужно: Создать пользователя с очень ограниченными правами, которому доступен всего один (самописный) интерфейс. И который не может с этого интерфейса переключиться на другие. И там узнать лишнее.

Проблема: При запуске 1С:Предприятия система смотрит, назначена ли пользователю роль "Пользователь". И если это не так, то в 1С его не пускает.

А у роли Пользователь есть права на овер9000 интерфейсов, и Меню/Сервис, естественно, подключено.

Как идеологически верно выкрутиться из такой ситуации?
1 jyupiter
 
11.03.12
10:57
неужели всё так плохо?
2 Apokalipsec
 
11.03.12
11:01
уф не предлагать?
3 jyupiter
 
11.03.12
11:03
предлагать хоть что
это если из тупика не выведет, то хотя бы может дать продуктивное направление мыслей

но я не понял, как управляемые формы связаня с проблемой
4 jyupiter
 
12.03.12
03:02
на всякий случай ап

можно ли прилумать что-то более красивое, чем вытаскивание прав на все интерфейсы из роли Пользователь и распихивание их по ролям специалистов?
5 oleg_ma
 
12.03.12
03:46
Как вариант: в конфигурации в общих модулях в модуле "Полные права" в функции ЕстьДоступныеПраваДляЗапускаКонфигурации() добавить создаваемую роль и дальше раздавать права по роли.
6 jyupiter
 
12.03.12
04:16
глобальный поиск не нашёл этой функции во всей конфигурации
в модулях ПолныеПрава и ПолныеПраваДополнительный их точно нет
7 jyupiter
 
12.03.12
04:16
не "их", а "её", конечно
8 jyupiter
 
12.03.12
04:30
зато есть такая процедура
в Модуле обычного приложения
[code]
Процедура ПередНачаломРаботыСистемы(Отказ)
   
   Если НЕ РольДоступна("Пользователь")
       И (НЕ РольДоступна("ПолныеПрава")) Тогда
       
       Предупреждение("Вам не назначена роль ""Пользователь"". Запуск конфигурации невозможен.");
       Отказ = Истина;
       Возврат;
   КонецЕсли;
   
   Отказ = НЕ УправлениеПользователями.ПользовательОпределен();
   
   // ОбновлениеВерсииИБ
   Отказ = Отказ ИЛИ НЕ ОбновлениеИнформационнойБазыКлиент.ВозможноВыполнитьОбновлениеИнформационнойБазы();
   // Конец ОбновлениеВерсииИБ
   
КонецПроцедуры
[/code]
9 oleg_ma
 
12.03.12
06:55
Если НЕ РольДоступна("Пользователь") И (НЕ РольДоступна("ПолныеПрава")) Тогда
М. б., я по ЗУПу смотрел:)
Тогда в этой процедуре добавить НЕ РольДоступна("<имя_роли>"). Имя роли можно определить через роли->свойства.
Можно конечно пер. Отказ=Ложь; и на возврат:)
10 jyupiter
 
12.03.12
09:11
ну это, в общем, очевидное решение, которое и будет, видимо, применено, если ничего не удастся придумать менее травматичного

но очень уж не хочется вносить изменения в объекты типовой конфигурации

из-за поддержки, будущих обновлений и всего такого

вот я и пытаюсь найти решение, которое не увеличивало бы гемора в ближайшем и отдалённом будущем
11 jyupiter
 
14.03.12
07:53
Если вдруг кому будет интересно
Наименее травматичным было выкинуть из интерфейса "Общий" пункт меню "Сервис/Переключить интерфейс" и из него же панель "Интерфейсы" с аналогичной кнопкой.

Так пользователи не натыкаются с первого же взгляда на кнопки переключения интерфейса, получая -99 к способности "Шаловливые ручки"

В интерфейсах кроме "Общего" возможность переключать интерфейсы не предусмотрена
AdBlock убивает бесплатный контент. 1Сергей