Имя: Пароль:
1C
 
УФ переключение меню
0 Kigo_Kigo
 
27.09.23
09:05
Скажите в какую сторону копать или подскажите как сделать (где почитать) на управляемых формах, если это Вебклиент, тогда пользователю надо отрубить ему весь интерфейс и оставить только ввод договоров и контрагентов, то что это ВебФорма я могу узнать из дерективы
#Если ВебФорма тогда
#Инче
#КонецЕсли
как сделать не видимыми все пункты меню и оставить - условно раб стол с сылками на ввод?
1 unenu
 
27.09.23
09:29
выключить видимость всех подсистем и всех панелей.
оставить только панель "избранное" и в нее добавить рабочие команды.

Через "бутер" пользователь сможет включить все, но если он не будет его трогать, то ок.
2 unenu
 
27.09.23
09:54
// Расширение глобального модуля приложения

&После("ПриНачалеРаботыСистемы")
Процедура Расш1_ПриНачалеРаботыСистемы()
    
    Если Расш1_СереврПовторногоИсп.ЧтениеПодразделенийОграничено() Тогда  // В этом методе определяем кому "крыть" интерфейс
        Если сдОбщее_СереврПовторногоИсп.ОтображатьВсеПанелиИнтерфейсаПриЗапуске() Тогда   // Определяем "крыть" интерфейс или вернуть как было.
            ОбновитьИнтерфейс = ОбщегоНазначенияВызовСервера.Расш1_ВыполнитьНастройкуПанелей(Ложь, Истина);
        Иначе
            ОбновитьИнтерфейс = ОбщегоНазначенияВызовСервера.Расш1_ВыполнитьНастройкуПанелей(Ложь, Ложь);
        КонецЕсли;
        Если ОбновитьИнтерфейс Тогда
            ОбновитьИнтерфейс();
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
              
.....              
              
// Расширение модуля основной конфигурации  

Функция Расш1_ВыполнитьНастройкуПанелей(ПолучатьСоставИзХранилища=Ложь, ВосстановитьНастройкуПанелей=Ложь) Экспорт
    
    Если ТекущийРежимЗапуска() = Неопределено Тогда  // Можно расширить условия на тип запуска и если не "тонкий, веб" то возврат.
        Возврат Ложь;
    КонецЕсли;
    
    УстановитьПривилегированныйРежим(Истина);
        
    Если ПолучатьСоставИзХранилища Тогда
        НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения");
        Если НастройкиИнтерфейса = Неопределено Тогда
            НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
        Иначе    
            НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // Состав не то, что в конфигураторе, а то, что пользователь установил себе.
        КонецЕсли;
    Иначе
        НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
        НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // С помощью пустого объекта настроек получим настройки состава, установленные в конфигураторе.
    КонецЕсли;
    
    Если НЕ ВосстановитьНастройкуПанелей Тогда
        
        // Очищаем настройки состава.
        НастройкиСостава.Верх.Очистить();
        НастройкиСостава.Лево.Очистить();
        НастройкиСостава.Низ.Очистить();
        НастройкиСостава.Право.Очистить();
        
        // Добавлем панели интерфейса
        ГруппаНастройкиСостава = Новый ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения;
        ГруппаНастройкиСостава.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИзбранного"));
        ГруппаНастройкиСостава.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельОткрытых"));
        НастройкиСостава.Верх.Добавить(ГруппаНастройкиСостава);
        
        // Очищаем избранное
        Избранное = ХранилищеСистемныхНастроек.Загрузить("Общее/ИзбранноеРаботыПользователя");
        Если Избранное = Неопределено Тогда
            Избранное = Новый ИзбранноеРаботыПользователя;
        КонецЕсли;
        Пока Избранное.Количество() Цикл
            Избранное.Удалить(0);
        КонецЦикла;

        
        // Добавляем элементы в избранное
        мНавигационныеСсылки = Новый Массив;
        мНавигационныеСсылки.Добавить("e1cib/list/Документ.ТабельУчетаРабочегоВремени");
        мНавигационныеСсылки.Добавить("e1cib/list/ЖурналДокументов.Подработки");
        
        Для каждого тНвСсылка Из мНавигационныеСсылки Цикл
            Элемент = Новый ЭлементИзбранногоРаботыПользователя;
            Элемент.НавигационнаяСсылка = тНвСсылка;
            Избранное.Добавить(Элемент);
        КонецЦикла;
        
        ХранилищеСистемныхНастроек.Сохранить("Общее/ИзбранноеРаботыПользователя", "", Избранное);
          
    КонецЕсли;
    
    НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава);
      ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса); // Поместим объект настроек текущему пользователю в хранилище.
    
    Возврат Истина;
    
КонецФункции
3 unenu
 
27.09.23
10:02
там

Если ПолучатьСоставИзХранилища Тогда
        НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения");
        Если НастройкиИнтерфейса = Неопределено Тогда
            НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
        Иначе    
            НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // Состав не то, что в конфигураторе, а то, что пользователь установил себе.
        КонецЕсли;

код исправить на

Если ПолучатьСоставИзХранилища Тогда
        НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения");
        Если НастройкиИнтерфейса = Неопределено Тогда
            НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
            НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав();
        Иначе    
            НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // Состав не то, что в конфигураторе, а то, что пользователь установил себе.
        КонецЕсли;
    Иначе

я эту ветку не использую, посему не видел косяк.
4 Kigo_Kigo
 
27.09.23
11:30
Спс сча буду пробовать
"я эту ветку не использую, посему не видел косяк."
какую?
5 dmt
 
27.09.23
12:25
(1)
выключить видимость всех подсистем

это как?
6 Kigo_Kigo
 
27.09.23
12:28
Спасибо друже, очень выручил, все получилось!!!!
Чуток поправлю, что бы в будущем было понятно
// Расширение глобального модуля приложения

&После("ПриНачалеРаботыСистемы")
Процедура Расш1_ПриНачалеРаботыСистемы()
    
Если НЕ Условие_СкрыватьИнтерфей Тогда
            ОбновитьИнтерфейс = ОбщегоНазначенияВызовСервера.Расш1_ВыполнитьНастройкуПанелей(Ложь, Истина);
        Иначе //Скрыть Интерфейс
            ОбновитьИнтерфейс = ОбщегоНазначенияВызовСервера.Расш1_ВыполнитьНастройкуПанелей(Ложь, Ложь);
        КонецЕсли;
        Если ОбновитьИнтерфейс Тогда
            ОбновитьИнтерфейс();
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
// Расширение модуля основной конфигурации   = добавить функцию в расширении моем случае общие-ОбщегоНазначенияВызовСервера
еще вопросик, как скрыть начальную страницу?
7 DJ Anthon
 
27.09.23
12:52
Вот так ещё понятнее

Если ОбщегоНазначенияВызовСервера.Расш1_ВыполнитьНастройкуПанелей(Ложь, НЕ Условие_СкрыватьИнтерфей) Тогда
  ОбновитьИнтерфейс();
КонецЕсли;
8 Kigo_Kigo
 
28.09.23
10:02
Есть еще такая тема
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто);