Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ЭлементыФормы.ТабличныеПоля выравнивание по ширине
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bizisoft
Здравствуйте.
Используемая платформа:
1С:Предприятие 8.2 (8.2.19.83)
Типовое отраслевое решение
"Альфа-Авто: Автосервис+Автозапчасти, украинская версия 4.1"
Разработка: "1С-Рарус" Локализация: "АБИ Украина" (4.1.11.01)

Появилась необходимость разместить три ТабличныхПоля (далее ТП) по горизонтали и установить им равную ширину, соответствующую ширене окна/3.
Схема размещение:
<------------ ширина окна --------------------->
ТП1 - Разделитель1 - ТП2 - Разделитель2 - ТП3
//В процедуре ПриОткрытии (Формы) получаю ширину.
ПИШ = ЭлементыФормы.ПанельИнформации.Ширина;
//присваиваю полученную ширину к ТП.
ЭлементыФормы.ТабличноеПоле1.Ширина = ПИШ/3;
...

Но в результате все это хозяйство корежиться и не поддается никакой закономерности.
Пробовал как с привязками, так и без них (сбрасывал привязки).

В самом начале пробовал без этих расчетов, чисто средствами привязок, но тоже безрезультатно.

Подскажите пожалуйста, как будет правильно это осуществить.
P.S. Если два элемента, то особых проблем какбы не возникало, а вот если более двух элементов, то танцы с бубном не помогли.

Спасибо.
С Уважением, Дмитрий.
logist
ПИШ = ЭлементыФормы.ПанельИнформации.Ширина;

ПИШ у Вас, это заданная в свойствах ширина, либо значение полученное автоматически, с физическими размерами панели на экране не имеет ничего общего.
Вам необходимо получить реальную ширину окна (как это сделать я хз, но думаю надо обращаться к ОС) и работать уже с ней.
Vofka
bizisoft, несколько вариантов на вскидочку:

1) а если взять ширину не панели, а формы:

ПИШ = ЭтаФорма.Ширина - 20; // -20 чтоб был какой-то зазорчик.


2) Или же попробуйте вот это:

ЭлементыФормы.ТабличноеПоле1.Ширина = ПИШ/3;

прописать в обработчике события формы ОбновлениеОтображения().

3) Разместите эти табличные поля на форме сразу, установите им одинаковые привязки и одинаковую ширину. И больше программно ширину не трогайте. Должно вроде нормально работать.
Petre
Эта задача элементарно решается привязками. Просто надо с этими привязками разобраться.
Altair777
Цитата(Petre @ 19.05.14, 9:45) необходимо зарегистрироваться для просмотра ссылки
Эта задача элементарно решается привязками. Просто надо с этими привязками разобраться.


Ключевой момент - параметр "Сохранять пропорции до:"
bizisoft
Еще в субботу оставил попытки установить ширину ТП вручную и попробовал сделать это чисто привязками.
Вроде все получилось. Привязки выставлял только у ТП, Разделители не трогал:
ТП1 
-Левая(отсутствует)
-Правая(Разделитель2-Правая)

ТП2
-Левая(Разделитель2-Правая)
-Правая(Разделитель3-Правая)

ТП3
-Левая(Разделитель3-Правая)
-Правая(Панель-Правая)

У разделителей получается, что привязки автоматом проставились.
Разделитель2
-Левая(Разделитель2-Правая)
-Правая(Панель-Левая)

Разделитель3
-Левая(Разделитель3-Правая)
-Правая(Панель-Левая)

to Petre
А можете подсказать, где можно почитать про эти привязки, а то в книжке "Руководство разработчика" не нашел?

to Vofka
Надо будет попробовать, особенно если ширина элементов нужна не равная.

Всем большое спасибо.
С Уважением, Дмитрий.
Petre
Цитата(bizisoft @ 19.05.14, 10:17) необходимо зарегистрироваться для просмотра ссылки
А можете подсказать, где можно почитать про эти привязки, а то в книжке "Руководство разработчика" не нашел?

Не имею печатной версии книги, но в ИТС онлайн есть "Руководство разработчика. Обычный режим", п. 1.4.2.4. "Вставка элементов управления в форму".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.