Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: MWW_Ruza от 11 ноября 2026, 23:54

Название: Доступ к панели строки состояния?
Отправлено: MWW_Ruza от 11 ноября 2026, 23:54
Добрый день!
А вот интересно, сюда:
(https://content.foto.my.mail.ru/mail/m_w_w/590/h-636.jpg)
как-то можно джобраться?
Хочется сделать что-то типа такого:
(https://content.foto.my.mail.ru/mail/m_w_w/590/h-637.jpg)
На вскидку не нашел ничего такого, может плохо искал...
Название: Re: Доступ к панели строки состояния?
Отправлено: MWW_Ruza от 12 ноября 2026, 00:00
Хотя, наверное действительно плохо искал...
Вот, похоже это:

ДобавитьПанель(<?>,,,,)
Синтаксис:
ДобавитьПанель(<Наименование>,<Заголовок>,<Ширина>,<Стиль>,<Видимость>)
Назначение:
Метод добавляет панель с заданными параметрами. Панель становится текущей. В случае успеха возвращает код новой панели.
Панели, добавленные в основной части глобального модуля (после функций и процедур), будут расположены перед системными. Все остальные после системных.
Параметры:
<Наименование> - наименование панели, не обязательный, по умолчанию пустая строка;
<Заголовок> - заголовок панели, не обязательный, по умолчанию пустая строка;
<Ширина> - ширина панели, не обязательный, по умолчанию 20;
<Стиль> - стиль панели, не обязательный, по умолчанию 0;
<Видимость> - видимость панели, не обязательный, по умолчанию 0.
Название: Re: Доступ к панели строки состояния?
Отправлено: MWW_Ruza от 12 ноября 2026, 00:48
Да, все ничего... Добавление панели работает.
Так:
Процедура ПриДвойномНажатииЛевойКнопкиВСтрокеСостояния(ИД)
    НайдПан    = Панель.НайтиПоНаименованию("РежОтл");
    Если НайдПан = 0 Тогда
        Если Вопрос("Включить режим сохранения запросов?", 4, 3) = 6 Тогда
            Панель.ДобавитьПанель("РежОтл", "Вкл. реж. сохр. запр.", 120,,1);
        КонецЕсли;
    Иначе
        Если Вопрос("Выключить режим сохранения запросов?", 4, 3) = 6 Тогда
            Панель.УдалитьПанель();   
        КонецЕсли;       
    КонецЕсли;
КонецПроцедуры

Но, УдалитьПанель() крашит 1С... Что я не так делаю?
Название: Re: Доступ к панели строки состояния?
Отправлено: MWW_Ruza от 12 ноября 2026, 01:10
Хм... И Видимость тоже роняет 1С, так:
Процедура ПриДвойномНажатииЛевойКнопкиВСтрокеСостояния(ИД)
Если ПустоеЗначение(КодПан) = 0 Тогда
НайдПан = Панель.НайтиПоКоду(КодПан);   
Иначе
СтатусВозврата(0);
Возврат;
КонецЕсли;
Панель.ВыбратьПанели();
Пока Панель.ПолучитьПанель() = 1 Цикл
Если Панель.Код = КодПан Тогда
Если Панель.Видимость = 0 Тогда
Если Вопрос("Включить режим сохранения запросов?", 4, 3) = 6 Тогда
Панель.Видимость = 1;
КонецЕсли;
Иначе
Если Вопрос("Выключить режим сохранения запросов?", 4, 3) = 6 Тогда
Панель.Видимость = 0;   
КонецЕсли;
КонецЕсли;
Прервать;
КонецЕсли;   
КонецЦикла;
КонецПроцедуры
Название: Re: Доступ к панели строки состояния?
Отправлено: MWW_Ruza от 12 ноября 2026, 01:24
Понятно...
Если при "выключении" панели кликать на ней, то ничего не падает. А если в любом другом месте строки состояния - то краш... Буду думать, как обойти.
Название: Re: Доступ к панели строки состояния?
Отправлено: MWW_Ruza от 12 ноября 2026, 01:45
В общем, вот так работает:
Процедура ПриДвойномНажатииЛевойКнопкиВСтрокеСостояния(Конт, ИДпанели)
Если ПустоеЗначение(КодПан) = 0 Тогда
НайдПан = Панель.НайтиПоКоду(КодПан);   
Иначе
СтатусВозврата(0);
Возврат;
КонецЕсли;
Панель.ВыбратьПанели();
Пока Панель.ПолучитьПанель() = 1 Цикл
Если Панель.Код = КодПан Тогда
Если Панель.Видимость = 0 Тогда
Если Вопрос("Включить режим сохранения запросов?", 4, 3) = 6 Тогда
Панель.Видимость = 1;
КонецЕсли;
Иначе
Если ИДпанели = Панель.Код Тогда
Если Вопрос("Выключить режим сохранения запросов?", 4, 3) = 6 Тогда
Панель.Видимость = 0;   
КонецЕсли;
КонецЕсли;
КонецЕсли;
Прервать;
КонецЕсли;   
КонецЦикла;
КонецПроцедуры
Думаю, так и через Добавление/Удаление панели заработает...
Но, теперь уже завтра.