Предлагаю очередной вариант…
В типографском деле принято размеры текста задавать в пунктах (1С тоже не изобретает велосипед), а область печати известна только в миллиметрах. Что такое пункты стандартного шрифта трудно понять, а особенно просчитать. Это всегда вызывает трудности, если требуется печатать текст в определенной области листа. Классический пример: попасть текстом в 229 ячейку из 230 позиций на листе самоклеющихся бирок.
Предлагаемая обработка выполняет компенсацию перерасчета пуктов шрифта в миллиметры на бумаге при помощи служебных полей в области печати.
В моей домашней базе //infostart.ru/public/97906/ , обработка встроена в «В планы видов характеристик», чтобы можно было хранить все многообразие шаблонов этикеток.
Эта программа, как отдельная обработка, сохраняет настройки только для одного формата.
Суть процесса:
вначале задаем все известные параметры о размере будущей этикетки.
Затем сколько их должно расположиться на стандартном листе А4 по горизонтали и вертикали.
В таблице создаем будущий список строк для вывода на печать.
В любой строчке будущего текста можно задать шрифт и высоту строки.
Количество строк в поле этикетки определяет пользователь.
Суммарную высоту текста программа контролирует, и если размеры или количество строк не укладываются в заданный размер, предупредит об этом.
Нажимаем «Печать» и смотрим предварительный вариант.
Если область печати все таки не попадает в габариты листа, начинаем подгонять высоту и ширину при помощи параметров служебной строки.
Служебная строка — это пустая область которая добавляется снизу этикетки, но влияет также и на пропорции самого шрифта.
Где работает обработка, в описании — везде. Скрин — управляемое приложение. А на самом деле?
(1) Воронкин, обработка сделана на управляемой форме, но портировать ее можно на любую платформу. В обработке не задействовано ни каких особы наворотов от упр.форм. Десяток реквизитов, таблица с текстом, и поле табличного документа — вот и все что нужно для работы.
Если есть проблемы, в портировании — выложу и для обычной платформы.
Процедура ФорматПечатьэтикетокПриИзменении(Элемент)
Если Элемент.Значение = 2 Тогда
ШиринаПечатьэтикеток = 52;
ВысотаПечатьэтикеток = 29;
ЭлементыФормы.ШиринаПечатьэтикеток.Доступность = Ложь;
ЭлементыФормы.ВысотаПечатьэтикеток.Доступность = Ложь;
Иначе
ЭлементыФормы.ШиринаПечатьэтикеток.Доступность = Истина;
ЭлементыФормы.ВысотаПечатьэтикеток.Доступность = Истина;
КонецЕсли;
КонецПроцедуры
Как-то так…
(2) Если есть проблемы, в портировании — выложу и для обычной платформы.
У меня нет проблем — но сайт читают и обычные пользователи, которые берут обработки «как есть», думаю обработка полезная и может пригодится для УТ 103.
Добавил вариант под обычное приложение.
Так, а что текст вручную для каждой позиции набирать? А штрихкоды?
(6) turboatom, основная фишка обработки, оперативно создавать многострочные шаблоны. Суть в том, что можно строчки этикетки оформить разными шрифтами. При этом количество строк не фиксировано. Программа автоматический будет все масштабировать. После подгонки, получится шаблон. А как подгрузить в таблицу текст, вручную или автоматом — это уже на усмотрение разработчика.
Обработка штрих-кодов не предусмотрена. Потому как ШК — это картинки, а это уже другая песня.
Обработку обновил в части подбора шрифтов. Задействовал штатные средства 1С по выбору шрифтов.