ФормаСписка "ДоговорыКонтрагентов". Нужно настроить привязки

Новая тема
Показывать по 10 20 40 сообщений
"ПанельФормы = ЭлементыФормы.Добавить(Тип("Панель"),"Панель1",Истина);
ПанельФормы.Имя = "Панель1";
ПанельФормы.Лево = 8; ПанельФормы.Верх = 313; ПанельФормы.Ширина = 764; ПанельФормы.Высота = 31;
ПанельФормы.Доступность = Истина; ПанельФормы.АвтоКонтекстноеМеню = Истина; ПанельФормы.АвтоПорядокОбхода = Истина; ПанельФормы.АктивизироватьПоУмолчанию = Ложь; ПанельФормы.Видимость = Истина; ПанельФормы.ИзменяетДанные = Ложь; ПанельФормы.ОтображениеЗакладок = ОтображениеЗакладок.Неиспользовать; ПанельФормы.ПервыйВГруппе = Ложь; ПанельФормы.ПорядокОтображения = 5; ПанельФормы.ПрозрачныйФон = Ложь; ПанельФормы.ПропускатьПриВводе = Ложь; ПанельФормы.РазмерКартинки = РазмерКартинки.Растянуть; ПанельФормы.РаспределятьПоСтраницам = Истина; ПанельФормы.РежимПрокручиваемыхСтраниц = Ложь; // //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ЭлементыФормы.Панель1.Страницы.Добавить("Страница1","Страница1"); // //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ПанельФормы.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Форма.Панель,ГраницаЭлементаУправления.Низ); ПанельФормы.УстановитьПривязку(ГраницаЭлементаУправления.Низ,Форма.Панель,ГраницаЭлементаУправления.Низ); ПанельФормы.УстановитьПривязку(ГраницаЭлементаУправления.Лево,Форма.Панель,ГраницаЭлементаУправления.Лево); ПанельФормы.УстановитьПривязку(ГраницаЭлементаУправления.Право, Форма.Панель,ГраницаЭлементаУправления.Лево); ////**************************************************
//ЭлементыФормы.Панель1.ТекущаяСтраница = ЭлементыФормы.Панель1.Страница1); // //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Надпись = ЭлементыФормы.Добавить(Тип("Надпись"),"НадписьЛегенда",Истина,ЭлементыФормы.Панель1); Надпись.Имя = "НадписьЛегенда"; Надпись.Заголовок = "1. Запрещена смена договора в выписке"; Надпись.Лево = 6; Надпись.Верх = 8; Надпись.Ширина = 225; Надпись.Высота = 16; Надпись.Доступность = Ложь; Надпись.АвтоКонтекстноеМеню = Истина; Надпись.АктивизироватьПоУмолчанию = Ложь; Надпись.ВертикальноеПоложение = ВертикальноеПоложение.Центр; Надпись.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; Надпись.ВертикальноеПоложение = ВертикальноеПоложение.Центр; Надпись.Видимость = Истина; Надпись.ВыделятьОтрицательные = Ложь; Надпись.ГиперСсылка = Ложь; Надпись.ИзменяетДанные = Ложь; Надпись.ПервыйВГруппе = Ложь; Надпись.ПоложениеКартинкиНадписи = ПоложениеКартинкиНадписи.Лево; Надпись.ПорядокОтображения = 1; Надпись.ПрозрачныйФон = Ложь; Надпись.ПропускатьПриВводе = Ложь; Надпись.РазмерКартинки = РазмерКартинки.АвтоРазмер; Надпись.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭлементыФормы.НадписьЛегенда,ГраницаЭлементаУправления.Верх); Надпись.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭлементыФормы.НадписьЛегенда,ГраницаЭлементаУправления.Лево);


как-то криво код вставляется"
А зачем ты новую панель создаешь? Почему не на имеющейся выводишь?
Имеющейся нет в формеСписка
Зачем тебе вообще добавлять элементы на какую-либо панель? Пусть буду просто на форме.
"Это потому что на этапе конструирования формы для нее установлена определенная высота и ваши элементы управления в нее не вписываются. Даже не так. Для формы есть такая штука как "краевая выравнивающия линия", ее видно в конфигураторе нарисованную синим пунктиром. Ваши элементы попадают за ее границу, поэтому, как бы вы не двигали форму потом на этапе ее использования, ваши элементы так и остаются за ее пределами.
Варианты решения:

Вариант 1:
Добавить кусок кода:
ЭтаФорма.Высота=ЭтаФорма.Высота+ПанельФормы.Высота+5; //5 - расстояние между элементами формы
Но! Это тоже не решит проблему, так как изменение высоты формы не приведет к изменению позиции нижнего края выравнивающей линии. Ее надо как то передвинуть по новой. Тут у меня проблема, я не настолько свободно владею v8, поэтому навскид не могу найти как это сделать.
Должно быть что то типа такого:
ЭтаФорма.ПереустановитьВыравнивающиеЛинии();
или
ЭтаФорма.ИспользоватьВыравнивающиеЛинии=Ложь;
ЭтаФорма.ИспользоватьВыравнивающиеЛинии=Истина;
или
ЭтаФорма.ВыравнивающиеЛинии["Краевая"].Переустановить();
Но что то не вижу как это решается, может и никак :)

Вариант 2 (я поступил бы так):
В конфигураторе помимо вашего кода делаем такое действие: хватаем за нижнюю границу формы и немного оттягиваем еще вниз (вместе с краевой выравнивающей линией). И в текст вашего алгоритма сверху дописываем:
//Не забудь при обновлении немного увеличить высоту формы диалога!!!

P.S. О панелях. Я тоже всегда стараюсь группировать элементы формы в панели. Это еще пошло с .Net, где есть объект Panel, который является невидимым и служит исключительно для объединения элементов. Плюс в таком подходе такой: можно одним махом сделать все элементы панели недоступными или скрыть какую то страницу, то есть управлять видимостью. Если элементов в панели много, то это гораздо удобнее, чем перебирать их и устанавливать такие свойства каждому элементу по отдельности."
Володь, в этой форме только 3 элемента Список справа, список слева и разделитель между ними - чего их еще группировать. Список справа пристыковывается привязками к низу формы и как ее не увеличивай, он все равно будет растягиваться. Именно поэтому я с привязок и предлагал начать.
> Список справа пристыковывается привязками к низу формы и как ее не увеличивай, он все равно будет растягиваться
но не до нижней границы формы, а до нижней границы минус область под списком если ее сделать в конструкторе формы диалога
Вообще, мне странной и иногда непонятной показалась система привязок, иногда довольно много времени трачу чтобы понять логику работы.
Эту границу можно непосредственно к краю формы подтащить. А чтобы с привязками не париться были придуманы управляемые формы.
Читают тему
(гостей: 1)

Быстрый переход