Имя: Пароль:
1C
1C 7.7
v7: Автоширина столбцов в отчетах
0 mistеr
 
23.10.15
20:19
Пришлость тут поработать с клюшками.
Можно ли как-то организовать сабж? Может кодом или еще как? Йоксель вроде не умеет.
1 HawkEye
 
23.10.15
20:35
(0) правой кнопкой  конфигураторе на нужной колонке, жамкнуть кнопку "Авто" ))
2 mistеr
 
23.10.15
20:47
(1) Щютка, да?
3 HawkEye
 
23.10.15
21:03
(2) у тебя нет конфигуратора?
4 mistеr
 
23.10.15
22:08
(3) OK, я поленился хорошо сформулмровать задачу. Исправляюсь.
Мне нужно в таблице, куда я вывел отчет, для некоторых колонок подобрать ширину так, чтобы текст в ячейках помещался на одной строке, без переносов и без обрезания.

Примерно так, как СКД в восьмерке делает.
5 mehfk
 
23.10.15
22:11
Исключительно руками.
6 RomanYS
 
23.10.15
22:13
(4) только считать максимальную длину текста и задавать явно ширину
7 HawkEye
 
23.10.15
22:43
(4) ну тогда, как-то так

    Таб = СоздатьОбъект("Таблица");
    тесСтр = "фпваовлпрывдпрыдвлопрдавлопрдвпрывдомтдлыовтамдлыоврдлыварпыдвшгапрыдвоалмдывлаоыдловпрывадшгпрывадолпрывадплот";
    Таб.ВывестиСекцию("Строка");
    
    Обл = Таб.Область(1,1,1,1);
    ДлинаСтроки = СтрДлина(тесСтр);
    обл.ШиринаСтолбца(ДлинаСтроки);
8 mistеr
 
23.10.15
22:51
(6) (7) Для какого размера шрифта это работает? Или всегда +/- километр?
9 HawkEye
 
23.10.15
22:52
(8) тыжпрограммист... подгоняй ))
10 RomanYS
 
23.10.15
22:54
(8) естественно считать коэффициент для конкретного шрифта, и если он не моноширинный, то всегда будет погрешность
11 Злопчинский
 
24.10.15
02:10
в неком обширном подмножестве случаев вычислить можно 100% - но надо привязываться к размеру листа... а как вычислить именно в мокселе... - не знаю.. интересно
12 vcv
 
24.10.15
07:51
(10) этот коэффициент будет зависеть от конкретного шрифта, размера шрифта, показывается печатная форма на экране или выводится на принтер, масштаба печати, модели принтера.
Поэтому коэффициент нужно брать с приличным запасом.
13 Смотрящий
 
24.10.15
08:08
(0) http://avb1c.narod.ru/

Статья "Как вычислить высоту строки таблицы".
Адаптируешь под себя
14 HawkEye
 
24.10.15
09:07
(8) при выводе - запоминаешь максимальную высоту строки. номинальную высоту фиксируешь по любой известной тебе строке...

дальше простой цикл
пока высота строки с максимальной высотой больше высоты строки с номинальной высотой - увеличивай ширину, для ускорения можешь взять шаг 3 или 5 - экспериментируй...
15 RomanYS
 
24.10.15
13:38
(14) почему-то мне кажется, клюшки не вернут тебе реальную высоту строки, если у неё стоит высота "авто".
16 HawkEye
 
24.10.15
14:31
(15) наверное ты прав, некогда экспериментировать...
17 mistеr
 
24.10.15
20:01
(13) Спасибо. Но уж больно сложно как-то. :)
Если поставят задачу сделать "кровь из носу", тогда воспользуюсь.
18 Vladal
 
24.10.15
20:35
(4) > Примерно так, как СКД в восьмерке делает.

Программно перебери содержимое колонки и установи ширину. Пример - в типовых конфигурациях в УниверсальномОтчете.
19 Vladal
 
24.10.15
20:37
(7) Тут надо задать некий максимум, и устанавливать в ячейках перенос текста.