Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Универсализм и автоширина колонки в 7.7 (http://forums.kuban.ru/f1040/universalizm_i_avtoshirina_kolonki_v_7_7_a-3177420.html)

qweqwe123123 14.10.2012 22:14

Универсализм и автоширина колонки в 7.7
 
Есть ТЗ с произвольным количеством столбцов и строк, которую надо показывать в таблице
В исходной таблице соответственно одна горизонтальная и одна вертикальная секции.
Авто ширина столбца не работает, как сделать?

Вывожу так:
[url]http://prntscr.com/hg0s6[/url]

ПРичем попробовал в режиме 1С:Предприятия (не когфигураторе) выставит в готовой таблице ширину столбца Авто - не работает. Если высоту строки так же задать - работает...

Я прям теряюсь...

qweqwe123123 14.10.2012 22:16

[img]http://img525.imageshack.us/img525/6572/ee2de290cb6f47aabef01bf.png[/img]

VZ 15.10.2012 01:50

Полагаю, "авто" работает для [b]первой[/b] строки.

Чучундер 15.10.2012 02:43

посмотри в йокселе - там вроде есть установа автоширины

user1C 15.10.2012 10:34

(0)
из прошлого т1с:
[url]http://www.forum.mista.ru/topic.php?id=126832[/url]

ширину столбца задавай сам через область таблицы аля ОблТаб.ШиринаСтолбца(...)

qweqwe123123 15.10.2012 10:40

4-user1C > это я знаю. но это что-же, максимальное количество символов считать в каждой колонке? да и символы разной ширины, не говоря о смене шрифта.

user1C 15.10.2012 10:54

(5)
знаешь что? что ширина авто это не есть так, как тебе бы хотелось?))
не надо счситать макс. ширину в каждой колонке, оно само выстроится как надо, просто увеличивай ширину при необходимости, аля
НужнаяШирина = СтрДлина(СокрЛП(Значен))+3;
Если НужнаяШирина > ОблТаб.ШиринаСтолбца() Тогда
ОблТаб.ШиринаСтолбца(НужнаяШирина);
КонецЕсли;

Чучундер 15.10.2012 10:54

(5) да, как-то вот так...

qweqwe123123 15.10.2012 11:31

6-user1C > ыыыыыыыыы.... в ТЗ могёт быть очччень прилично строк, и столбцов. это у меня типа такой отбор по текущему значению в журналах документов будет (в принципе первый блин уже готов, по значениям в графах отбирает. уже знаю что именно перепишу, и что добавить надо) - в самом журнале нельзя, так я в печатную форму отбор выводить буду.
вот и хочу автоширину.

v_id 15.10.2012 11:47

[url]http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=5104[/url]

qweqwe123123 15.10.2012 11:56

9-v_id > оно в (6) слово в слово. ну ща затестю, раз уж полный код дали.

qweqwe123123 15.10.2012 12:12

я не очень то в замерах разбираюсь...
вроде как 14% на обращение к процедуре и 10% на получение текста из ячейки в процедуре.
140 строк и 18 столбцов.
естественно рекорды бьёт третий вложенный цикл 35%.

пожало не особо то ровно (где-то не влезло, где-то место на треть колонки почти), но лучше чем ничего, конечно. спасибо.

user1C 15.10.2012 13:10

(8)
используя (6) и еще десяток строк кода получишь желаемое)

qweqwe123123 15.10.2012 13:27

12-user1C > у меня больше десятка выходит, в разы.

СthuIhu 15.10.2012 13:59

Формула идеального решения:
0) выводить только ариалом. ну тем, который по дефолту. просто потому, что практической необходимости менять его на что-то другое - почти не бывает, за исключением и так обмериваемых с линейкой "документов, нужных в твердом виде" да с вожжой под самизнаетегде.
1) собрать ширину ариал-символов (посимвольно, в "попугаях" - сиречь единицах измерения ширины колоки).
2) в процессе вывода парсить выводимый текст, собирая посимвольно его "вычисленную" с помощью п.1. длину - с вычислением максимальной;
3) по окончании вывода - установить полученную в п.2 ширину нужной колонки.
вперьод!

qweqwe123123 15.10.2012 16:39

Затык. Стандартными методами как-то можно получить Форумулу элемента диалога открытой формы?

DeiMos 15.10.2012 18:06

15-Зелёный тролль > Что такое "элемент диалога открытой формы" - я понимаю.

А что такое его "формула"?

xxc 15.10.2012 21:20

(16)
[img]http://savepic.su/2721228.png[/img]

Ткачик 15.10.2012 21:51

(14) Неточный метод: кернинг не учитывается, так что иногда будет глючить.

Чучундер 16.10.2012 02:08

дарю даром то есть безвазмезна
.
локРасширениеФормы = СоздатьОбъект("РасширениеФормы");
локРасширениеФормы.УстановитьФорму(Форма);
ТипаКрутойАтрибутФормы = локРасширениеФормы.ПолучитьАтрибут("ТипаКрутойАтрибутФормы");
ТипаСтрокаКотораяФормула = ТипаКрутойАтрибутФормы.Формула;

Чучундер 16.10.2012 02:11

НР тут подкинул...
как руководитель ИТ-отдела наказывает программиста 1С за использование нетиповых возможностей... [url]http://youtu.be/s73GjbSw5xY[/url]

Чучундер 16.10.2012 02:21

альтернатива-направление-01
.
имеем столбец.
.
знаем колво строк в этом столбце.
.
считаем скольо должно получиться страниц при выводе всего столбца в одинарнуую строку - N страниц
.
столбец, ячейки = переносить.
.
выплевываем столбец.
.
больше N страниц - значит есть переносы, ширины столбца недостаточно. увеличиваем ширину столбца на "шаг", повторяем. методом половинного деления быстро приходим к консенсусу.
.
аналогичным образом я нарисовал вывод наименования практически любой длины в ценник фиксированного размера - в жопу все поделки на Исе, ни одна так не умеет.

Чучундер 16.10.2012 02:23

альтернатива-направление-02
программно копипастим столбец из 1С в эксель.
в экселе устанавливаем ширину авто
программно копипастим из экселя в новую таблицу1С, считываем ширину, применяем к исхолдной таблице

Чучундер 16.10.2012 02:24

альтернатива-направление-03
разновидност АТ-01
- программно модифицируем текст ячейки до такого размера, чтобы влазил в ширину без переноса

Чучундер 16.10.2012 02:25

альтернатива-направление-04
выводиме с столбец инфу "идентифицируем" в начале строки содержательным идентификатором (артикул/прочее). ячейка = обрезать.


Текущее время: 09:06. Часовой пояс GMT +3.