Имя: Пароль:
1C
1С v8
Проблема масштабирования
, ,
0 zakidonoff
 
26.09.13
07:10
Доброе утро, всем!
Столкнулся тут я с утра пораньше с необходимостью доработать обработку печать ценников и решил оптимизировать вывод наименования номенклатуры так, чтобы короткие названия выводились бОльшим шрифтом, а длинные - меньшим.
В итоге получилась такая вот вставочка:

Если СтрДлина(СтрокаИзСписка.Номенклатура.НаименованиеПолное) > 50 Тогда
    КоэффициентУменьшения = Окр((СтрДлина(СтрокаИзСписка.Номенклатура.НаименованиеПолное) - 50) / 15, 0);
    ЭтикеткаОбласть.Области.Номенклатура.Шрифт = Новый Шрифт(ШрифтВЯчейке.Имя, 14 - КоэффициентУменьшения, Истина);
КонецЕсли;

Смысл был в том, что в одну строку вмещается в среднем около 15 символов. И на каждые дополнительные 15 символов сверх тех, что вмещаются в поле 14 шрифтом, происходит уменьшение размера шрифта на единицу, тем самым количество вмещающихся строк в поле увеличивается на одну...
Всё прекрасно отрабатывает, но выяснилось, что встречаются наименования, написанные так, что автоперенос оставляет в строке не 15, а намного меньше символов за счёт того, что следующее слово написано без пробелов и его нельзя разбить для переноса.
__
Это преамбула была написана дабы исключить вопросы из серии "нафига тебе это?"
А теперь, собственно, сам вопрос:
Как узнать, сколько строк получилось в ячейке области печатного документа после срабатывания автопереноса?
1 Cyberhawk
 
26.09.13
07:13
Автоперенос не бьет слова?
2 DJ Anthon
 
26.09.13
07:13
у меня была похожая проблема, я психанул и сделал вот так:
http://www.forum.mista.ru/topic.php?upd&id=677302
3 Balabass
 
26.09.13
07:14
Вариант такой.
Делаешь текст стандартный. Превращаешь его в Гиф. А гиф вписываешь в рамки ценника или чего там у тебя.
4 DJ Anthon
 
26.09.13
07:14
но там эта хрень нужна раз в месяц, а с ценнками, может, поумнее что-нибудь придумал бы
5 Галахад
 
гуру
26.09.13
07:29
(0) Какая-то странная идея. Что видит покупатель?

Ценник 1 - ХРЕНЬ С КОР. НАЗ.

Ценник 2 - хреньссложнымназванием.

Удобно? Понятно?
6 zakidonoff
 
26.09.13
07:37
(1) нет
(3) формирование листов 10и ценников они тогда ждать годами будут )
(5) Это всяко лучше, чем как-то так:
___
Моя компания



хрень с
кор. наз.



2000 руб.

Моя компания
какая-то
хрень со
сложным
и длинным
названием
абракадабра
2000 руб.
7 mzelensky
 
26.09.13
07:39
(0) а не проще просто отсортировать по количеству символов???
8 zakidonoff
 
26.09.13
07:43
(2) Изврат. Но в комментах у тебя была интересная идея с использованием шаблона HTML...
(7) в смысле, написать процедуру автопереноса текста самостоятельно?
9 mzelensky
 
26.09.13
07:54
(8) нет. Если тебе не нравится, что в одной строке будут печататься ценники с разной длиной описания (а в следствии этого у краткого описания будут большие пробелы сверху и снизу), то почему бы не выводить в одну строку ценники с максимально схожим (по длине) описание?

Скажем у тебя 10 ценников. В каждой строке по 2 ценника, итого 5 строк. Ценники с длинами описания в 20, 30, 25, 15, 10, 5, 7, 18, 23, 40 строк. Следовательно тебе нужно выводить так

40 30
25 23
20 18
15 10
7  5

числа это количество символов в описании.  Тогда все будет более-менее красиво и не нужно париться.
10 mzelensky
 
26.09.13
07:57
(9) + Можно анализировать общую длину описания и наличие пробелов, если описание больше определенной длины и в нем НЕТ пробелов, то делать перенос или разрыв слова самостоятельно.
11 zakidonoff
 
26.09.13
07:59
(10) По-сути это уже и есть написание процедуры автопереноса самостоятельно.
Сейчас это выглядит так:
http://i59.fastpic.ru/big/2013/0926/1b/ed86fc045159a4913b7f726e8335f61b.png
Но я не уверен, что не попадётся где-то позиция, которая в итоге не влезет в ценник из-за большой погрешности в расчётах предполагаемого количества строк автопереноса
12 mzelensky
 
26.09.13
08:11
(11) А не лучше привести описания к какому-то более-менее вменяемому виду? Зачем бороться с последствиями, если нужно устранить первопричину?

Нормально все на картинке выглядит.
13 zakidonoff
 
26.09.13
10:17
(12) Носятся с этими ценниками, как наседки над яйцами. Заставь их в полном наименовании хоть одну запятую убрать - неделю ныть будут )
__
Ладно, всем спасибо. Пусть будет пока так, как есть - не устроит, буду делать ценники через хтмл шаблоны )
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший