Имя: Пароль:
1C
1C 7.7
v7: Как изменить размер обработки под выскакивающее окно сообщений?
0 Zhuravlik
 
20.02.13
16:20
Добрый день. Есть обработка с табличным полем, в обработке применяется клас форма.Привязки (растягиваю ТаблПоле по форме). Когда появляется окно сообщений, оно закрывает собой нижнюю часть формы, что неудобно, т.к. не видно нижних строк ТаблПоля. Можно форму как-то подгонять под размер окна сообщений?
1 ЧеловекДуши
 
20.02.13
16:23
Формекс вас спасет...
2 Zhuravlik
 
20.02.13
16:31
Да я тоже так подумал, сижу вот копаю. Не пойму, как получить высоту окна сообщений?
3 Zhuravlik
 
20.02.13
16:39
Апну. Подскажите, как дорыться до окна сообщений?
4 ЧеловекДуши
 
20.02.13
16:41
(2)Предопределенная процедура Изменение размера окна или около этого :)

А далее ты рисуешь, рисуешь и рисуешь программно...
Очень напоминает 8.2 управляемое приложение :)
5 Zhuravlik
 
20.02.13
16:42
+ Окна.ПолучитьПанели() возвращает список, где есть "Окно собщений", т.е. это для конфы Панель. Теперь как ее высоту получить?
6 Zhuravlik
 
20.02.13
16:43
(4) У меня форма размеры не изменяет) Мне нужно по-идее получить высоту окна сообщений, и исходя из этой высоты изменить размер формы.
7 ЧеловекДуши
 
20.02.13
16:43
Вот так, это у меня в документе разворачивает ТЗ на весь размер табличной части из документа:

//Для Формекса
Перем ФормаРасш;

//******************************************************************************
Процедура ПриИзмененииРазмераОкна(ТипСобытия,Ширина,Высота)
   Перем ЛевоМЧ,ВерхМЧ,ШиринаМЧ,ВысотаМЧ;
   Перем ЛевоТЗ,ВерхТЗ,ШиринаТЗ,ВысотаТЗ;
   Перем ВысотаОкна, ШиринаОкна;
   Перем ФормаМногострочнаяЧасть,ФормаТЗТаблЧасть;

   Если ТипЗначенияСтр(ФормаРасш)<>"РасширениеФормы" Тогда
       //Сообщить(ТипЗначенияСтр(ФормаРасш));
       ФормаРасш = 0;
       ФормаРасш = СоздатьОбъект("РасширениеФормы");
   Иначе
       Попытка
           ВысотаОкна = ФормаРасш.Высота;
           ШиринаОкна = ФормаРасш.Ширина;
       Исключение
           Сообщить("Ошибка: "+ОписаниеОшибки());
       КонецПопытки;
   КонецЕсли;
   
   ФормаМногострочнаяЧасть    = ФормаРасш.ПолучитьАтрибут("МногострочнаяЧасть");//МногострочнаяЧасть
   ФормаТЗТаблЧасть        = ФормаРасш.ПолучитьАтрибут("ТЗТаблЧасть");
   
   //Размер Кнопак Поиска
   ФормаМногострочнаяЧасть.ПолучитьКоординаты(ЛевоМЧ,ВерхМЧ,ШиринаМЧ,ВысотаМЧ);
   ФормаТЗТаблЧасть.ПолучитьКоординаты(ЛевоТЗ,ВерхТЗ,ШиринаТЗ,ВысотаТЗ);
   
   ФормаТЗТаблЧасть.УстановитьКоординаты(ЛевоМЧ,ВерхМЧ,ШиринаМЧ,ВысотаМЧ);
   
КонецПроцедуры
8 ЧеловекДуши
 
20.02.13
16:43
(6) Сделай, что бы меняло :)
9 ЧеловекДуши
 
20.02.13
16:44
ПриИзмененииРазмераОкна - предопределенная процедура формекса
10 ЧеловекДуши
 
20.02.13
16:45
+             ВысотаОкна = ФормаРасш.Высота;
           ШиринаОкна = ФормаРасш.Ширина;

Вот твое, что тебе нужно. Это и есть размер самой формы.
11 ЧеловекДуши
 
20.02.13
16:46
+(9)Сори, можешь не делать ,что бы меняло.
В сущности размер окна все ровно изменится :)
12 Zhuravlik
 
20.02.13
16:48
(10) Формы, или видимой части текущего окна пользователя?
Вот это Окна.РазмерОкна("", Ш, В, , 1) - выдает мне разную высоту до и после сообщения, по-ходу то что надо))
13 ЧеловекДуши
 
20.02.13
16:52
(12)Всей текущей формы, где была вызвана функция "ФормаРасш = СоздатьОбъект("РасширениеФормы");"
14 ЧеловекДуши
 
20.02.13
16:53
(12)Рад за тебя :)
15 ЧеловекДуши
 
20.02.13
16:53
+(12)Но мне больше всего нравиться изменять саму форму, а не подгонять окно сообщений :)
16 Zhuravlik
 
20.02.13
16:55
(15) Да, вы правы, мне просто показалось что эта процедура касается только текущей формы. Спасибо большое, теперь получится)
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.