Как убрать меню сервис из интерфейса пользователя, не переписывая общего интерфейса
По теме из базы знаний
- Запуск 1С под заданным пользователем как службы (service) Windows
- "Процессы 3.0: CRM, Бизнес-процессы, Управление по целям". Универсальная система управления процессами и показателями для любой конфигурации 1С
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- Мобильный клиент в ритейле. Внедрение и первые результаты использования
- Что такое ОСень? Или как лучшие практики из мира Java прижились в экосистеме OneScript
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну после этой процедуры пользователь в принципе может сам его и восстановить.
Можно сделать по другому: в режиме Конфигуратор создать новый интерфейс копированием текущего и удалить там меню Сервис. Назначить его для пользователя. При этом, при обновлении дополнительный интерфейс никуда не денется. Единственный вопрос, если будут добавляться новые элементы в интерфейс при обновлении - можно будет заново скопировать типовой интерфейс и удалить там меню Сервис. Еще нужно быть осторожнее и контролировать, что у пользователя есть доступ к данному интерфейсу в ролях пользователя.
Можно сделать по другому: в режиме Конфигуратор создать новый интерфейс копированием текущего и удалить там меню Сервис. Назначить его для пользователя. При этом, при обновлении дополнительный интерфейс никуда не денется. Единственный вопрос, если будут добавляться новые элементы в интерфейс при обновлении - можно будет заново скопировать типовой интерфейс и удалить там меню Сервис. Еще нужно быть осторожнее и контролировать, что у пользователя есть доступ к данному интерфейсу в ролях пользователя.
Меню "Сервис" подхватывается авто из общего интерфейса, поэтому в своём интерфейсе тоже будет меню Сервис. Можно пойти другим путём: если назначить только роли "Пользователь" и свою роль, то из меню "Сервис" не будут открываться "лишние" пункты, т.е. при попытке их открыть будет выходить предупреждение "Нарушение прав доступа".
Можно скрыть вообще все панели для этого не надо ничего отключать. В обычном интерфейсе в конфигураторе для каждой формы есть настройки окна, выбираем "Состояние Окна" как "Свободное" (тогда оно не будет вписываться в рамки окна предприятия что скроет все панели), способ отображения окна - максимизированное (развернется на весь экран и закроет все кроме меню пуск), и если прям сильно надо, то втыкаем галку "режим рабочего стола." и скроется и меню пуск. Главное не забыть создать кнопочку "закрыть". =)
ПриНачалеРаботыСистемы
Процедура УстановитьИнтерфейсПоРолям()
Если РольДоступна("ПолныеПрава") Тогда
Возврат;
КонецЕсли;
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Если ПользовательИБ = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПользовательИБ.ОсновнойИнтерфейс = Неопределено Тогда
Возврат;
КонецЕсли;
#Если Клиент Тогда
Для каждого ТекИнтерфейс Из ГлавныйИнтерфейс Цикл
ТекИнтерфейс.Переключаемый = Ложь;
ТекИнтерфейс.Видимость = Ложь;
КонецЦикла;
ИнтерфейсПользователя = ПользовательИБ.ОсновнойИнтерфейс;
мИнтерфейс = ГлавныйИнтерфейс.Найти(ИнтерфейсПользователя.Имя);
мИнтерфейс.Переключаемый = Истина;
мИнтерфейс.Видимость = Истина;
#КонецЕсли
КонецПроцедуры
Показать
(19)
---
чо написал.. под какую конфу - загадочник
Процедура УстановитьИнтерфейсПоРолям()
Если РольДоступна("ПолныеПрава") Тогда
Возврат;
КонецЕсли;
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Если ПользовательИБ = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПользовательИБ.ОсновнойИнтерфейс = Неопределено Тогда
Возврат;
КонецЕсли;
#Если Клиент Тогда
Для каждого ТекИнтерфейс Из ГлавныйИнтерфейс Цикл
ТекИнтерфейс.Переключаемый = Ложь;
ТекИнтерфейс.Видимость = Ложь;
КонецЦикла;
ИнтерфейсПользователя = ПользовательИБ.ОсновнойИнтерфейс;
мИнтерфейс = ГлавныйИнтерфейс.Найти(ИнтерфейсПользователя.Имя);
мИнтерфейс.Переключаемый = Истина;
мИнтерфейс.Видимость = Истина;
#КонецЕсли
КонецПроцедуры
ПоказатьЕсли РольДоступна("ПолныеПрава") Тогда
Возврат;
КонецЕсли;
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
Если ПользовательИБ = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПользовательИБ.ОсновнойИнтерфейс = Неопределено Тогда
Возврат;
КонецЕсли;
#Если Клиент Тогда
Для каждого ТекИнтерфейс Из ГлавныйИнтерфейс Цикл
ТекИнтерфейс.Переключаемый = Ложь;
ТекИнтерфейс.Видимость = Ложь;
КонецЦикла;
ИнтерфейсПользователя = ПользовательИБ.ОсновнойИнтерфейс;
мИнтерфейс = ГлавныйИнтерфейс.Найти(ИнтерфейсПользователя.Имя);
мИнтерфейс.Переключаемый = Истина;
мИнтерфейс.Видимость = Истина;
#КонецЕсли
КонецПроцедуры
---
чо написал.. под какую конфу - загадочник
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот