Имя: Пароль:
1C
1С v8
Как авто-уменьшить шрифт ячейки, чтобы длинная строка вошла в ячейку макета?
0 Alex_Dug
 
26.09.16
13:05
Здравствуйте!)
Стоит УТ_10.3.
Есть некоторые позиции номенклатуры с очень длинными наименованиями. Когда печатаем ценники с помощью встроенной обработки "Печать ценников", некоторые ценники вмещают только часть полного наименования номенклатуры.
Подскажите, можно ли узнать, входит строка в ячейку макета, чтобы уменьшить шрифт надписи, если не входит?
1 NorthWind
 
26.09.16
14:34
я вообще не видел ни одного генератора отчетов, в котором подобное было бы можно. Обычно везде можно только перенос с расширением ячейки вниз при шрифте константа. Шрифт автоматически никто не меняет.
2 Операция 1Ы
 
26.09.16
15:07
Ага, можно))))))))
1) Считаешь сколько символов входит в ячейку без переноса +/- 5 - скидываешь на погрешность.
2) При выводе в ячейку проверяешь превысил ли количество символов
3) В зависимости от результата в 2 - меняешь шрифт, и т.д.

не благодари
3 Alex_Dug
 
26.09.16
15:41
(2) Большое спасибо, этот самый простой и очевидный способ использую. Но ведь есть свойство, проверяющее входит ли печать в один лист (не помню как называется), вот я и думал, а вдруг есть способ проверки "входит ли строка в ячейку" )))
(1) при расширении ячейки ценники будут разного размера, а задача в том, чтобы при одном размере ценника вместить в него всю нужную информацию!
4 Операция 1Ы
 
26.09.16
15:46
(3) есть, вот он.
ТабличныйДокумент (SpreadsheetDocument)
ПроверитьВывод (CheckPut)
Синтаксис:

ПроверитьВывод(<Таблицы>)
Параметры:

<Таблицы> (обязательный)

Тип: Массив; ТабличныйДокумент.
Массив из проверяемых таблиц или табличный документ.
Возвращаемое значение:

Тип: Булево.
Истина - умещаются; Ложь - в противном случае.
Описание:

Проверяет, умещаются ли переданные табличные документы на страницу при печати.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

При возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.

Если у тебя меняется только одна ячейка, а остальные являются const, то все может получиться.
5 Alex_Dug
 
26.09.16
16:33
(4) Да, спасибо, но (2) надежнее !)
6 NorthWind
 
26.09.16
22:31
(2) только шрифт лучше моноширинный вроде courier'а. Иначе +/- 5 символов можно и не угадать, например если в названии будет много заглавных букв.
7 Злопчинский
 
26.09.16
22:51
8 Злопчинский
 
26.09.16
22:52
И вдобавок взять шрифт узкий
Например Web Severoff
9 Torquader
 
26.09.16
23:02
Шрифт нужно брать пропорциональный, так как у него выше читаемость, если кто-то ошибётся в расчёте, то будет просто немного свободного места.
Если очень хочется, то можно узнать размер каждого слова, просто размещая их на виртуальной маленькой странице и проверяя - влезет или нет.
10 Alex_Dug
 
27.09.16
03:24
Пишу:
"ОбластьНаименования.ТекущаяОбласть.Шрифт.Размер = 8;"
Сообщается об ошибке:
"Поле объекта недоступно для записи (Размер)"
11 Alex_Dug
 
27.09.16
03:48
ОбластьНаименования = Макет.ПолучитьОбласть("СтрокаНаименование|Столбец");
ДлинаНаименования    = СтрДлина(ОбластьЦенника.Параметры.НоменклатураНаименование);
Если ДлинаНаименования > 50 Тогда
    ШрифтЯчейки = Новый Шрифт("Arial", 10, Истина, Ложь, Ложь, Ложь, 100);
    ОбластьНаименования.ТекущаяОбласть.Шрифт = ШрифтЯчейки;
КонецЕсли;
Но шрифт на выходе какой был ранее, такой и остался!
Как изменить шрифт ячейки при печати макета?
12 vicof
 
27.09.16
07:35
(10) молодец. Что делать будешь?
13 hhhh
 
27.09.16
08:17
(11) ты в макете меняешь. А в табличном докуиенте?
14 Alex_Dug
 
27.09.16
11:46
(13) Разобрался, спасибо)
Очень помог "_olleg_", объяснивший как сделать ещё 21.05.2008г. : v8: Как изменить размер ячейки и шрифт табличного документа
15 Злопчинский
 
27.09.16
12:06
(14) осталось понять какого размера должен быть шрифт
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn