Имя: Пароль:
1C
1C 7.7
v7: formex - можно ли сделать модальное окно изменяемым?
0 Chai Nic
 
16.09.22
11:01
Хочется, чтобы вызываемая модально служебная обработка позволяла максимизацию и изменение размеров окна. Но штатно в 1с модальное окно рисуется с признаком "без рамки ,без кнопок изменения размера". Есть ли в formex такая возможность, чтобы модальное окно можно было растягивать как обычное?
1 Kigo_Kigo
 
16.09.22
11:09
а зачем?
2 Chai Nic
 
16.09.22
11:11
(1) Для удобства. Речь об универсальной обработке, в которой заполняется таблица, заранее неизвестного состава. Поэтому нужно чтобы пользователь мог развернуть окно и заполнить данные без лишнего скролла.
3 Kigo_Kigo
 
16.09.22
11:21
Я не помню, как то делал модальные окна разных размеров для разных разрешений экранов, а как хоть убей не помню
4 АЛьФ
 
02.11.22
12:09
С помощью FormEx можно изменять размеры модального окна. На основе этого функционала можно реализовать и разворачивание во весь экран.
5 Chai Nic
 
02.11.22
13:08
(4) А как? Можно поподробнее?
6 vladmenleo
 
02.11.22
13:27
(5) что-то типа такого
Процедура ПослеОткрытия()
    Перем Ширина,Высота;
    Окна = СоздатьОбъект("Окна");
    Окна.Максимизировать(Форма);
    Если ИмяПользователя() = "Тсд" Тогда
        Окна.МенюОкна(,1,0,0,0);
        Окна.ПоказыватьПанели(0); // 0 - Скрывает панели
        Сп = Окна.ПолучитьМеню();
        Для Ид = 1 По Сп.РазмерСписка() Цикл
            Пред = "";
            Зн = Сп.ПолучитьЗначение(Ид, Пред);
            Окна.ВидимостьМеню(Пред, 0); // 0 - Скрывает меню
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

Процедура ПриИзмененииРазмераОкна(ТипСобытия, НоваяШирина, НоваяВысота)
    Перем Лево,Верх,Ширина,Высота;
    Оступ = 2;
    ИмяТ = "ТзНаФорме";
    афТаблица = РасширениеФормы.ПолучитьАтрибут(ИмяТ);
    афТаблица.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
    афТаблица.УстановитьКоординаты(Оступ, Верх, НоваяШирина - 20, НоваяВысота - 75);
    афТаблица.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
    ВерхКнопок = Верх + Высота + Оступ;
    СписокКнопок = СоздатьОбъект("СписокЗначений");
    СписокКнопок.ДобавитьЗначение("ТекстКоды");
    СписокКнопок.ДобавитьЗначение("ВыбранныеКоды");
    Для Ид = 1 По СписокКнопок.РазмерСписка() Цикл
        ИмяКн = СписокКнопок.ПолучитьЗначение(Ид);
        афТаблица = РасширениеФормы.ПолучитьАтрибут(ИмяКн);
        афТаблица.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
        афТаблица.УстановитьКоординаты(Лево, ВерхКнопок, Ширина, Высота);
    КонецЦикла;
    СписокКнопок.УдалитьВсе();
    СписокКнопок.ДобавитьЗначение("кнНайти");
    СписокКнопок.ДобавитьЗначение("КнПечать");
    ВерхКнопок = ВерхКнопок + Высота + 6;
    Для Ид = 1 По СписокКнопок.РазмерСписка() Цикл
        ИмяКн = СписокКнопок.ПолучитьЗначение(Ид);
        афТаблица = РасширениеФормы.ПолучитьАтрибут(ИмяКн);
        афТаблица.ПолучитьКоординаты(Лево,Верх,Ширина,Высота);
        афТаблица.УстановитьКоординаты(Лево, ВерхКнопок, Ширина, Высота);
    КонецЦикла;
КонецПроцедуры
У меня тут для определенного пользователя при начале работы системы открывается модально окно на весь экран, при закрытии выход из системы
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс