Версия для печати темы (https://pro1c.org.ua/index.php?s=f1b29f5b678fd4a961ba87b50e9a30e9&showtopic=67527)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Как можно управлять панелями разделов программно

Автор: mikkia 04.04.24, 14:05

Пытаюсь сделать это через настройки
НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/ПанельРазделов/НастройкиКомандногоИнтерфейса");

но не знаю какие там методы есть. Через НастройкиИнтерфейса может только скрыть панели, а мне нужно конкретно одну панель скрыть от пользователей.

Автор: AnryMc 04.04.24, 14:27

mikkia @ Сегодня, 15:05 * ,

Процедура ПриНачалеРаботыСистемы(Отказ)
    
    // Определить размеры экрана.
    Экраны = ПолучитьИнформациюЭкрановКлиента();
    
    // Для примера допускаем, что экран один.
    // Но если экранов несколько, нужно анализировать их все.
    ВысотаЭкрана = Экраны[0].Высота;
    ШиринаЭкрана = Экраны[0].Ширина;
    
    // Если экран маленький, включить только панель инструментов.
    // Если ...
        НастройкаИнтерфейса.ВыполнитьНастройкуПанелей();
    // КонецЕсли;
    
    ОбновитьИнтерфейс();
    
КонецПроцедуры

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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua