К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Универсализм и автоширина колонки в 7.7

Гость
0 - 14.10.2012 - 22:14
Есть ТЗ с произвольным количеством столбцов и строк, которую надо показывать в таблице
В исходной таблице соответственно одна горизонтальная и одна вертикальная секции.
Авто ширина столбца не работает, как сделать?

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

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

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



Гость
1 - 14.10.2012 - 22:16
Гость
2 - 15.10.2012 - 01:50
Полагаю, "авто" работает для первой строки.
3 - 15.10.2012 - 02:43
посмотри в йокселе - там вроде есть установа автоширины
4 - 15.10.2012 - 10:34
(0)
из прошлого т1с:
http://www.forum.mista.ru/topic.php?id=126832

ширину столбца задавай сам через область таблицы аля ОблТаб.ШиринаСтолбца(...)
Гость
5 - 15.10.2012 - 10:40
4-user1C > это я знаю. но это что-же, максимальное количество символов считать в каждой колонке? да и символы разной ширины, не говоря о смене шрифта.
6 - 15.10.2012 - 10:54
(5)
знаешь что? что ширина авто это не есть так, как тебе бы хотелось?))
не надо счситать макс. ширину в каждой колонке, оно само выстроится как надо, просто увеличивай ширину при необходимости, аля
НужнаяШирина = СтрДлина(СокрЛП(Значен))+3;
Если НужнаяШирина > ОблТаб.ШиринаСтолбца() Тогда
ОблТаб.ШиринаСтолбца(НужнаяШирина);
КонецЕсли;
7 - 15.10.2012 - 10:54
(5) да, как-то вот так...
Гость
8 - 15.10.2012 - 11:31
6-user1C > ыыыыыыыыы.... в ТЗ могёт быть очччень прилично строк, и столбцов. это у меня типа такой отбор по текущему значению в журналах документов будет (в принципе первый блин уже готов, по значениям в графах отбирает. уже знаю что именно перепишу, и что добавить надо) - в самом журнале нельзя, так я в печатную форму отбор выводить буду.
вот и хочу автоширину.
Гость
9 - 15.10.2012 - 11:47
http://1c.proclub.ru/modules/mydownl...cid=5&lid=5104
Гость
10 - 15.10.2012 - 11:56
9-v_id > оно в (6) слово в слово. ну ща затестю, раз уж полный код дали.
Гость
11 - 15.10.2012 - 12:12
я не очень то в замерах разбираюсь...
вроде как 14% на обращение к процедуре и 10% на получение текста из ячейки в процедуре.
140 строк и 18 столбцов.
естественно рекорды бьёт третий вложенный цикл 35%.

пожало не особо то ровно (где-то не влезло, где-то место на треть колонки почти), но лучше чем ничего, конечно. спасибо.
12 - 15.10.2012 - 13:10
(8)
используя (6) и еще десяток строк кода получишь желаемое)
Гость
13 - 15.10.2012 - 13:27
12-user1C > у меня больше десятка выходит, в разы.
Гость
14 - 15.10.2012 - 13:59
Формула идеального решения:
0) выводить только ариалом. ну тем, который по дефолту. просто потому, что практической необходимости менять его на что-то другое - почти не бывает, за исключением и так обмериваемых с линейкой "документов, нужных в твердом виде" да с вожжой под самизнаетегде.
1) собрать ширину ариал-символов (посимвольно, в "попугаях" - сиречь единицах измерения ширины колоки).
2) в процессе вывода парсить выводимый текст, собирая посимвольно его "вычисленную" с помощью п.1. длину - с вычислением максимальной;
3) по окончании вывода - установить полученную в п.2 ширину нужной колонки.
вперьод!
Гость
15 - 15.10.2012 - 16:39
Затык. Стандартными методами как-то можно получить Форумулу элемента диалога открытой формы?
Гость
16 - 15.10.2012 - 18:06
15-Зелёный тролль > Что такое "элемент диалога открытой формы" - я понимаю.

А что такое его "формула"?
Гость
17 - 15.10.2012 - 21:20
(16)
18 - 15.10.2012 - 21:51
(14) Неточный метод: кернинг не учитывается, так что иногда будет глючить.
19 - 16.10.2012 - 02:08
дарю даром то есть безвазмезна
.
локРасширениеФормы = СоздатьОбъект("РасширениеФормы");
локРасширениеФормы.УстановитьФорму(Форма);
ТипаКрутойАтрибутФормы = локРасширениеФормы.ПолучитьАтрибут("ТипаКрутойАтри бутФормы");
ТипаСтрокаКотораяФормула = ТипаКрутойАтрибутФормы.Формула;
20 - 16.10.2012 - 02:11
НР тут подкинул...
как руководитель ИТ-отдела наказывает программиста 1С за использование нетиповых возможностей... http://youtu.be/s73GjbSw5xY
21 - 16.10.2012 - 02:21
альтернатива-направление-01
.
имеем столбец.
.
знаем колво строк в этом столбце.
.
считаем скольо должно получиться страниц при выводе всего столбца в одинарнуую строку - N страниц
.
столбец, ячейки = переносить.
.
выплевываем столбец.
.
больше N страниц - значит есть переносы, ширины столбца недостаточно. увеличиваем ширину столбца на "шаг", повторяем. методом половинного деления быстро приходим к консенсусу.
.
аналогичным образом я нарисовал вывод наименования практически любой длины в ценник фиксированного размера - в жопу все поделки на Исе, ни одна так не умеет.
22 - 16.10.2012 - 02:23
альтернатива-направление-02
программно копипастим столбец из 1С в эксель.
в экселе устанавливаем ширину авто
программно копипастим из экселя в новую таблицу1С, считываем ширину, применяем к исхолдной таблице
23 - 16.10.2012 - 02:24
альтернатива-направление-03
разновидност АТ-01
- программно модифицируем текст ячейки до такого размера, чтобы влазил в ширину без переноса
24 - 16.10.2012 - 02:25
альтернатива-направление-04
выводиме с столбец инфу "идентифицируем" в начале строки содержательным идентификатором (артикул/прочее). ячейка = обрезать.


К списку вопросов






Copyright ©, Все права защищены