|
|
|
Автоматическое изменение размера шрифта в поле отчета Злопчинский, mikecool, DiMel_77, Fedor-1971, yanikolay, shuhard, PuhUfa, Мультук, MWWRuza, Шурик71, Fish, СвинТуз, formista2000, АгентБезопаснойНацио, boozin, Злопчинский, X Leshiy, Shurjk, Хряк, ДенисСмирнов, Rokford, alexxx961503, alexsergeevatmista, Asmody, 2S, dmt, arsik, Ногаминебить, banco, ЕRPe, Hawk_1c, maxar, Волшебник, YaFedor, Dен, Буковка, Климов Сергей, Жеглофф, Kongo2019, Franchiser, Kigo_Kigo, piter3, Черников, Gucci76, Telcher, obs191, timurhv, craxx, Гость из Мариуполя, Silgis, Radion, Александр111, hunter76, SleepyHead
| ☑ | ||
|---|---|---|---|---|
|
0
alexsergeevatmista
11.12.25
✎
09:21
|
Есть внешний отчет, в виде таблицы. Есть строка "номенклатура". Клиент хочет, чтобы у неё была фиксированная ширина, и, если название номенклатуры не влезает в эту ширину, то делать не перенос, а уменьшение размера шрифта. Я даже не знаю, реально ли это, и, если реально, то с какой стороны подступиться к этой задаче?
|
|||
|
1
Fish
гуру
11.12.25
✎
09:24
|
Теоретически реально постобработкой табдокумента, но, как по мне, слишком геморройно. Я бы послал с такой хотелкой.
|
|||
|
2
Ногаминебить
11.12.25
✎
09:24
|
Сделать 2 строки макета с разным размером шрифта и в зависимости от длины текста в поле выводить одну из них. :)
|
|||
|
3
Fish
гуру
11.12.25
✎
09:25
|
+(1) Прикольно будет, если наименование очень длинное, то шрифт получится нечитаемым :)))
|
|||
|
4
formista2000
11.12.25
✎
09:26
|
А если ОтображатьЗаголовки = Истина и позволить пользователю растягивать нужный слобец?
|
|||
|
5
alexsergeevatmista
11.12.25
✎
09:34
|
(1) А как в теории? Задать имя области в макете поля и как-то менять шрифт в зависимости от того, помещается ли текст в ширину? Тогда нужен какой-то алгоритм, чтобы узнать, что текст помещается. На мой взгляд это довольно нетривиально.
(2) Если честно, звучит немного саркастично :) (4) Это позволено. Шрифт в полях от этого не поменяется. |
|||
|
6
Волшебник
11.12.25
✎
09:36
|
(0) Пошли они нафиг
|
|||
|
7
Kigo_Kigo
11.12.25
✎
09:38
|
Глаза нахер сломаешь такой отчет читать
|
|||
|
8
MWWRuza
гуру
11.12.25
✎
09:48
|
Я нечто подобное в семерке для ценников делал когда-то. Работало, но, как-то не прижилось.
|
|||
|
9
Shurjk
11.12.25
✎
09:49
|
(0) Если отчет на СКД, то можно условным оформлением решить. Но поддерживаю мнение большинства - "пошли они нахер", хотя бы потому, что отчет с разными шрифтами будет крайне похабно выглядеть.
|
|||
|
10
Ногаминебить
11.12.25
✎
10:04
|
(5) Ну в языке запросов есть ДлинаСтроки. Теоретически можно рыть в эту сторону. Вопрос целесообразности оставим за скобками. :)
|
|||
|
11
DiMel_77
11.12.25
✎
10:10
|
(0) Задача довольно сложная, вот пример реализации похожей задачи https://infostart.ru/1c/tools/123769/. В случае если используемый шрифт не моноширинный, то оптимального алгоритма вы не найдете. Только проверять ширину (или высоту) выводимой области.
|
|||
|
12
arsik
гуру
11.12.25
✎
10:12
|
(0) А не проще высоту строки менять. Автоматически указать, он сам нужную высоту подберет
|
|||
|
13
Волшебник
11.12.25
✎
10:13
|
(0) Сделайте моноширинный шрифт, куда выводите реквизит НаименованиеФиксированное
|
|||
|
14
alexsergeevatmista
11.12.25
✎
10:14
|
(12) Как высота строки повлияет на фиксированную ширину строки? Не понял Вашу идею.
|
|||
|
15
arsik
гуру
11.12.25
✎
10:19
|
(14) Ну типа так
PS: Извиняюсь. Перенос не подходит. Прочитал мимо строк (0)
|
|||
|
16
alexsergeevatmista
11.12.25
✎
10:29
|
(13) Попробовал, такой шрифт, конечно, слегка ужимается по ширине, но размер шрифта не меняет. Спасибо.
|
|||
|
17
Злопчинский
11.12.25
✎
14:43
|
решаемо же. вывести строку в макет, где поля заданы так, что помещается ровно она строка. Вывести в макет - если количество страниц = 1 - строка влезла, если количество страниц > 1 - строка не влезла, уменьшить шрифт строки, повторить: вывести строку в макет..."
когда строка влезла в макет на 1 стр - вывести в чистовой макет. все. |
|||
|
18
timurhv
11.12.25
✎
14:48
|
(17) Сколько ждать надо на больших объемах, вроде это все небыстрая операция, по крайней мере на 8.2 с большими данными долго обрабатывалось.
|
|||
|
19
АгентБезопасной Нацио
11.12.25
✎
15:20
|
(18)
Идиотские задачи требуют идиотских решений |
|||
|
20
shuhard
11.12.25
✎
14:58
|
(18) можно закэшировать, т.е. один раз определить приемлемый размер шритфа и хранить вместе с номенклатурой
|
|||
|
21
Злопчинский
11.12.25
✎
15:16
|
(18) Согласен. но тут надо в консерватории что-то менять.
и вряд ли в сабже на большой объем. Обычно это какие-нибудь ценники или формы фиксированные. |
|||
|
22
Злопчинский
11.12.25
✎
15:17
|
(20) и с "ИД" отчета где это применяться должно.
|
|||
|
23
Волшебник
11.12.25
✎
15:20
|
(19) 🔥 это в мемы!
|
|||
|
24
Fedor-1971
11.12.25
✎
15:20
|
(20) Не вариант, т.к. отчётов может быть несколько и с разной шириной колонки
(0) ставим моноширинный шрифт в ячейку, выясняем руками сколько символов лезет в ячейку при разных читаемых размерах шрифта, дальше проверяем длину строки и выставляем нужный размер шрифта Останется проблема "слишком длинной строки"- тут либо обрезать, либо вывести надпись "Не лызе батьку" |
|||
|
25
shuhard
11.12.25
✎
15:22
|
(22)
(24) ID отчёта, ширина поля(если юзер может менять), рекомендованный размер шрифта нет необходимости считать на "лету" |
|||
|
26
Fedor-1971
11.12.25
✎
15:23
|
(25) останется вопрос "Кто будет рулить?"
|
|||
|
27
shuhard
11.12.25
✎
15:25
|
(26) ну а кто тебе индексы полнотекстовые обновляет ?
|
|||
|
28
Fish
гуру
11.12.25
✎
15:33
|
(5) "нужен какой-то алгоритм, чтобы узнать, что текст помещается. " - Как вариант - Автоперенос строки и контроль высоты строки. Если высота строки стандартная - значит, поместился. Если высота больше - значит, не влезло. Другой вариант - моноширинный шрифт и считать длину текста по количеству символов.
Но я и написал, что алгоритм получится слишком геморройным. Проще послать. |
|||
|
29
Мультук
гуру
11.12.25
✎
15:37
|
(0)
Я бы начал с google: windows api font width true type string Закончил бы советом из (1) |
|||
|
30
СвинТуз
11.12.25
✎
15:59
|
(0)
Не всегда можно определить поместиться ли количество символов в указанном поле по ширине. Зависит от шрифта. Он должен быть определенного типа. Times new Roman Cyr, например, не позволяет судить о длине строки на себе по количеству символов. |
|||
|
31
СвинТуз
11.12.25
✎
15:59
|
Моноширинные шрифты.
или как в (29) заметили. |
|||
|
32
СвинТуз
11.12.25
✎
16:03
|
Сам отчет СКД или просто таблица заполняется?
|
|||
|
33
СвинТуз
11.12.25
✎
16:05
|
Если СКД, то или постобработка или условное оформление.
Если классика, при выводе устанавливать размер кегли шрифта. |
|||
|
34
alexsergeevatmista
11.12.25
✎
16:06
|
(32) Скд. Я так понимаю, условное оформление в таком случае только программно делается?
|
|||
|
35
СвинТуз
11.12.25
✎
16:08
|
Можно моноширинный шрифт поставить.
Посчитать максимальную длину строки в колонке. Потом установить длину столбца + Автоформат. |
|||
|
36
СвинТуз
11.12.25
✎
16:12
|
(34)
Если скушает стрДлина(ВашеПоле) в условии, то прям так. Если не скушает, то Выбор когда ДЛИНАСТРОКИ(<Строка>) ... прям в отборе или доп. поле. Учу плохому. Дешево. |
|||
|
37
СвинТуз
11.12.25
✎
16:13
|
Макет поля с курьером
|
|||
|
38
СвинТуз
11.12.25
✎
16:14
|
Извращений много.
Главное хотеть. |
|||
|
39
СвинТуз
11.12.25
✎
16:15
|
Она вроде как даже должна функции глобальных модулей кушать.
|
|||
|
40
СвинТуз
11.12.25
✎
16:17
|
длина строки меряется последовательным набором
символов "12345678901234567890123 ..." |
|||
|
41
Fish
гуру
11.12.25
✎
16:20
|
(35) Тут, имхо, сложнее алгоритм. Допустим, в ширину колонки влезает 10 символов шрифта размером 10. И 12 символов размером 8.
Тогда получим, что при длине наименовании <= 10 - шрифт не меняем. Если длина наименования - от 11 до 12, то размер ставим 8. Если больше - то ещё меньше. И т.д., пока шрифт остаётся читаемым. |
|||
|
42
СвинТуз
11.12.25
✎
16:22
|
(41)
Главное хотеть. |
|||
|
43
СвинТуз
11.12.25
✎
16:23
|
(41)
Если сделать в запросе вычисляемое поле, то все в условном оформлении станет проще. |
|||
|
44
СвинТуз
11.12.25
✎
16:27
|
Можно не мелочиться.
Постобработкой раздвинуть столбец и автоформат выставить. В этом случае размер шрифта не меняется и видимо поведение будет линейное. Размер поля будет константа + коэф*(максимальная длина строки). |
|||
|
45
Fish
гуру
11.12.25
✎
16:37
|
(44) Я так понял, что автору менять ширину колонки нельзя. Это как раз самое простое, я как-то выводил на одну страницу 12 таблиц с разным кол-вом колонок - как раз там менял ширину колонок, чтобы все таблицы получились одинаковой ширины.
|
|||
|
46
СвинТуз
11.12.25
✎
16:39
|
Ну в общем. самое простое.
В условном оформлении есть опция. "Растягивать по горизонтали". Для меня все кончилось )))) Не интересно. |
|||
|
47
СвинТуз
11.12.25
✎
16:58
|
(45)
Менять шрифт (в каких пределах?) в одной таблице и одном столбце можно, а растягивать нельзя потому что на лист не поместится? |
|||
|
48
Fish
гуру
11.12.25
✎
17:12
|
(47) Это надо у ТС спрашивать. В (0) же написано "Клиент хочет, чтобы у неё была фиксированная ширина"
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |