![]() |
Универсализм и автоширина колонки в 7.7 Есть ТЗ с произвольным количеством столбцов и строк, которую надо показывать в таблице В исходной таблице соответственно одна горизонтальная и одна вертикальная секции. Авто ширина столбца не работает, как сделать? Вывожу так: [url]http://prntscr.com/hg0s6[/url] ПРичем попробовал в режиме 1С:Предприятия (не когфигураторе) выставит в готовой таблице ширину столбца Авто - не работает. Если высоту строки так же задать - работает... Я прям теряюсь... |
[img]http://img525.imageshack.us/img525/6572/ee2de290cb6f47aabef01bf.png[/img] |
Полагаю, "авто" работает для [b]первой[/b] строки. |
посмотри в йокселе - там вроде есть установа автоширины |
(0) из прошлого т1с: [url]http://www.forum.mista.ru/topic.php?id=126832[/url] ширину столбца задавай сам через область таблицы аля ОблТаб.ШиринаСтолбца(...) |
4-user1C > это я знаю. но это что-же, максимальное количество символов считать в каждой колонке? да и символы разной ширины, не говоря о смене шрифта. |
(5) знаешь что? что ширина авто это не есть так, как тебе бы хотелось?)) не надо счситать макс. ширину в каждой колонке, оно само выстроится как надо, просто увеличивай ширину при необходимости, аля НужнаяШирина = СтрДлина(СокрЛП(Значен))+3; Если НужнаяШирина > ОблТаб.ШиринаСтолбца() Тогда ОблТаб.ШиринаСтолбца(НужнаяШирина); КонецЕсли; |
(5) да, как-то вот так... |
6-user1C > ыыыыыыыыы.... в ТЗ могёт быть очччень прилично строк, и столбцов. это у меня типа такой отбор по текущему значению в журналах документов будет (в принципе первый блин уже готов, по значениям в графах отбирает. уже знаю что именно перепишу, и что добавить надо) - в самом журнале нельзя, так я в печатную форму отбор выводить буду. вот и хочу автоширину. |
[url]http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=5104[/url] |
9-v_id > оно в (6) слово в слово. ну ща затестю, раз уж полный код дали. |
я не очень то в замерах разбираюсь... вроде как 14% на обращение к процедуре и 10% на получение текста из ячейки в процедуре. 140 строк и 18 столбцов. естественно рекорды бьёт третий вложенный цикл 35%. пожало не особо то ровно (где-то не влезло, где-то место на треть колонки почти), но лучше чем ничего, конечно. спасибо. |
(8) используя (6) и еще десяток строк кода получишь желаемое) |
12-user1C > у меня больше десятка выходит, в разы. |
Формула идеального решения: 0) выводить только ариалом. ну тем, который по дефолту. просто потому, что практической необходимости менять его на что-то другое - почти не бывает, за исключением и так обмериваемых с линейкой "документов, нужных в твердом виде" да с вожжой под самизнаетегде. 1) собрать ширину ариал-символов (посимвольно, в "попугаях" - сиречь единицах измерения ширины колоки). 2) в процессе вывода парсить выводимый текст, собирая посимвольно его "вычисленную" с помощью п.1. длину - с вычислением максимальной; 3) по окончании вывода - установить полученную в п.2 ширину нужной колонки. вперьод! |
Затык. Стандартными методами как-то можно получить Форумулу элемента диалога открытой формы? |
15-Зелёный тролль > Что такое "элемент диалога открытой формы" - я понимаю. А что такое его "формула"? |
(16) [img]http://savepic.su/2721228.png[/img] |
(14) Неточный метод: кернинг не учитывается, так что иногда будет глючить. |
дарю даром то есть безвазмезна . локРасширениеФормы = СоздатьОбъект("РасширениеФормы"); локРасширениеФормы.УстановитьФорму(Форма); ТипаКрутойАтрибутФормы = локРасширениеФормы.ПолучитьАтрибут("ТипаКрутойАтрибутФормы"); ТипаСтрокаКотораяФормула = ТипаКрутойАтрибутФормы.Формула; |
НР тут подкинул... как руководитель ИТ-отдела наказывает программиста 1С за использование нетиповых возможностей... [url]http://youtu.be/s73GjbSw5xY[/url] |
альтернатива-направление-01 . имеем столбец. . знаем колво строк в этом столбце. . считаем скольо должно получиться страниц при выводе всего столбца в одинарнуую строку - N страниц . столбец, ячейки = переносить. . выплевываем столбец. . больше N страниц - значит есть переносы, ширины столбца недостаточно. увеличиваем ширину столбца на "шаг", повторяем. методом половинного деления быстро приходим к консенсусу. . аналогичным образом я нарисовал вывод наименования практически любой длины в ценник фиксированного размера - в жопу все поделки на Исе, ни одна так не умеет. |
альтернатива-направление-02 программно копипастим столбец из 1С в эксель. в экселе устанавливаем ширину авто программно копипастим из экселя в новую таблицу1С, считываем ширину, применяем к исхолдной таблице |
альтернатива-направление-03 разновидност АТ-01 - программно модифицируем текст ячейки до такого размера, чтобы влазил в ширину без переноса |
альтернатива-направление-04 выводиме с столбец инфу "идентифицируем" в начале строки содержательным идентификатором (артикул/прочее). ячейка = обрезать. |
Текущее время: 09:06. Часовой пояс GMT +3. |