Имя: Пароль:
1C
 
УФ запомнить все настройки интерфеса и панелей убрать/вернуть на место
,
0 Kigo_Kigo
 
20.12.23
08:41
требуется запомнить настройки пользователя, с определенным типом клиента(веб), при старте их запомнить, куда нибудь сохранить, при тонком клиенте надо вернуть все как было, есть каие нибудь примеры? как убрать впринципе знаю, как вернуть в стандарт тоже, но это так не устраивает
1 Кондер
 
20.12.23
09:01
Скопировать все настройки с другого пользователя?
2 Kigo_Kigo
 
20.12.23
10:01
(1) Нет, запомнить текущие, особенно настроенные панели
3 Галахад
 
гуру
20.12.23
10:11
Если знаете, то что мешает выгрузить куда-нибудь сериализировав?
4 Кондер
 
20.12.23
10:20
(2) Я бы делал не так наверное, я бы бы настройку пользователя сохранял бы на другого пользователя и восстанавливал путем копировать все настройки
5 Kigo_Kigo
 
20.12.23
10:24
делаю вот так
Функция Расш1_ВыполнитьНастройкуПанелей(ПолучатьСоставИзХранилища=Ложь, ВосстановитьНастройкуПанелей=Ложь) Экспорт
        //Возврат Ложь;
    Если ТекущийРежимЗапуска() = Неопределено Тогда  // Можно расширить условия на тип запуска и если не "тонкий, веб" то возврат.
        Возврат Ложь;
    КонецЕсли;
    
    УстановитьПривилегированныйРежим(Истина);
        
    Если ПолучатьСоставИзХранилища Тогда
        НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения");
        Если НастройкиИнтерфейса = Неопределено Тогда
            НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
        Иначе    
            НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // Состав не то, что в конфигураторе, а то, что пользователь установил себе.
        КонецЕсли;
    Иначе
        НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
        НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // С помощью пустого объекта настроек получим настройки состава, установленные в конфигураторе.
    КонецЕсли;
    
    Если НЕ ВосстановитьНастройкуПанелей Тогда
     // Очищаем настройки состава.
        
        НастройкиСостава.Верх.Очистить();
        НастройкиСостава.Лево.Очистить();
        НастройкиСостава.Низ.Очистить();
        НастройкиСостава.Право.Очистить();
        
        // Добавлем панели интерфейса
        ГруппаНастройкиСостава = Новый ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения;
        ГруппаНастройкиСостава.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИзбранного"));
        ГруппаНастройкиСостава.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельОткрытых"));
        НастройкиСостава.Верх.Добавить(ГруппаНастройкиСостава);
        
        //// Очищаем избранное
        //Избранное = ХранилищеСистемныхНастроек.Загрузить("Общее/ИзбранноеРаботыПользователя");
        //Если Избранное = Неопределено Тогда
        //    Избранное = Новый ИзбранноеРаботыПользователя;
        //КонецЕсли;
        //Пока Избранное.Количество() Цикл
        //    Избранное.Удалить(0);
        //КонецЦикла;

        //
        //// Добавляем элементы в избранное
        //мНавигационныеСсылки = Новый Массив;
        //мНавигационныеСсылки.Добавить("e1cib/command/Справочник.Контрагенты.Команда.Контрагенты");
        //мНавигационныеСсылки.Добавить("e1cib/command/Справочник.ДоговорыКонтрагентов.Команда.Договоры");
        //
        //Для каждого тНвСсылка Из мНавигационныеСсылки Цикл
        //    Элемент = Новый ЭлементИзбранногоРаботыПользователя;
        //    Элемент.НавигационнаяСсылка = тНвСсылка;
        //    Избранное.Добавить(Элемент);
        //КонецЦикла;
        
       // ХранилищеСистемныхНастроек.Сохранить("Общее/ИзбранноеРаботыПользователя", "", Избранное);
          
    КонецЕсли;
    
    НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава);
      ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса); // Поместим объект настроек текущему пользователю в хранилище.
    
    Возврат Истина;
    
КонецФункции
но почему то не восстонавливает обратно из хранилища, а делает стандартную настройку
6 Галахад
 
гуру
20.12.23
10:42
А где тут пункт "куда-нибудь сохранить"?
7 Kigo_Kigo
 
20.12.23
10:44
(6) ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса);
8 Галахад
 
гуру
20.12.23
10:46
(7) Это же не куда-нибудь, а именно туда откуда пользователь возьмет при входе в программу. Или я не прав?
9 Kigo_Kigo
 
20.12.23
11:00
(8) прав, только что то не берется, может я что то делаю не так?
10 unenu
 
20.12.23
11:08
(5) о узнаю, на инфостаре или тут постил)
11 Галахад
 
гуру
20.12.23
11:09
(9) Ну, насколько я понял ты ложишь в хранилище уже измененную настройку, а нужно оригинал.
12 unenu
 
20.12.23
11:15
(5)
но почему то не восстонавливает обратно из хранилища, а делает стандартную настройку


в методе ХранилищеСистемныхНастроек.Загрузить(...)
более одного параметра. вероятно, если указать ключ и пользователя, то восстановит.
13 Kigo_Kigo
 
20.12.23
11:22
(12) А есть пример, тогда и сохранить надо с ключем и пользователем, никогда с этим не работал
инфа в иненете скупа
14 Kigo_Kigo
 
20.12.23
11:32
Вроде пишут, если пользователя не указывать, то делается все для текущего
15 Kigo_Kigo
 
20.12.23
12:15
Все нашел свой косяк, пока эксперементировал
ПолучатьСоставИзХранилища=Ложь, передавал ложь
16 Kigo_Kigo
 
20.12.23
12:23
+ Надо было переделать режим сохранения
эта строчка не нужна
  ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса); // Поместим объект настроек текущему
она тогда сохраняет настройку без панелей и в тонкий заходит с теми же что и на веб
2 + 2 = 3.9999999999999999999999999999999...