Имя: Пароль:
1C
 
Размещение кнопок - есть ли красивое решение?
0 DrLekter
 
27.02.20
17:01
Делаю подбор кнопками в управляемой форме. Для этого создаю программно кнопки, но встаёт вопрос, как их красиво разместить. Сейчас я создаю горизонтальные группы, в которые размещаю заранее заданное количество кнопок:

НКнопкиВПодгруппе = КоличествоКнопокВПодгруппе;
Пока ВыборкаНоменклатуры.Следующий() Цикл
    Если НКнопкиВПодгруппе = КоличествоКнопокВПодгруппе Тогда
        НоваяПодгруппа = Элементы.Добавить("Подгруппа" + Формат(НПодгруппы, "ЧН=0; ЧГ=0"), Тип("ГруппаФормы"), Элементы.Найти("ГруппаПодбора" + Строка(НГруппы)));
        НоваяПодгруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
        НоваяПодгруппа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно;
        НоваяПодгруппа.РастягиватьПоГоризонтали = Истина;
        НПодгруппы = НПодгруппы + 1;
        НКнопкиВПодгруппе = 0;
    КонецЕсли;
    НоваяКнопка = Элементы.Добавить("Р_КнопкаДляПодбора" + Формат(НКнопки, "ЧН=0; ЧГ=0"), Тип("КнопкаФормы"), Элементы.Найти(НоваяПодгруппа.Имя));
    НоваяКнопка.ИмяКоманды = "Р_КнопкаДляПодбораНажатие";
    НоваяКнопка.Заголовок = ВыборкаНоменклатуры.Представление;
    НоваяКнопка.РастягиватьПоГоризонтали = Истина;
    
    НоваяСтрока = ЭтаФорма.ТаблицаДляПодбора.Добавить();
    НоваяСтрока.Номенклатура = ВыборкаНоменклатуры.Ссылка;
    НоваяСтрока.Представление = ВыборкаНоменклатуры.Представление;
    
    НКнопки = НКнопки + 1;
    НКнопкиВПодгруппе = НКнопкиВПодгруппе + 1;
КонецЦикла;

Проблема в том, что ширина кнопок зависит от длины заголовков плюс экраны могут быть разные. Если сделать КоличествоКнопокВПодгруппе слишком большим, то или они не поместятся в первом же ряду и все группы переориентируются на вертикальное расположение, либо это случится дальше и тогда часть кнопок уйдёт за правый край и появится полоса прокрутки. Если сделать слишком маленьким, то получатся чересчур широкие кнопки, а по высоте вся конструкция тоже может уйти за нижний край.
Есть ли вариант размещения кнопок в группе или каком-то другом элементе, чтобы они размещались там как буквы в блокноте - закончилась строка и поехал на следующую?
В обычных формах всё просто было - посчитал размеры и рисуй как хочешь, а тут некрасиво получается.
1 ДенисЧ
 
27.02.20
17:03
html и display: grid
)))
2 Franchiser
 
гуру
27.02.20
17:12
"Есть ли вариант размещения кнопок в группе или каком-то другом элементе, чтобы они размещались там как буквы в блокноте - закончилась строка и поехал на следующую"
Поясни
3 pechkin
 
27.02.20
17:13
(2) авто перенос строк нужен.
но строки с кнопками.
самое простое - это (1)
4 pechkin
 
27.02.20
17:13
можно цсс подобрать - будут выглядеть как настоящие.
можно в веб клиенте подсмотреть
5 Franchiser
 
гуру
27.02.20
17:14
(3) кнопка тогда по вертикали будет растягиваться?
6 Franchiser
 
гуру
27.02.20
17:15
(3) как понять, когда нужно начинать перенос строк? После того как кнопка растянулась уже на всю ширину?
7 unenu
 
27.02.20
17:31
Программист перфекционист - горе в конторе.
8 DrLekter
 
27.02.20
17:49
(1) - мысль, спасибо!
(7) - да ну, до перфекционизма ещё далеко ))
9 Сияющий в темноте
 
27.02.20
18:43
вам табличный документ с провереой заполнения ?