При разработке и редактировании макетов печатных форм в режиме 1С:Предприятие на управляемых формах разработчики и пользователи часто сталкиваются с проблемой точного позиционирования элементов. В версии платформы 7.7 при изменении границ колонок текущий размер в миллиметрах выводился в строке состояния. В управляемом интерфейсе 1С 8.3 строка состояния отсутствует, а встроенные единицы измерения табличного документа отличаются от миллиметров. Рассмотрим, как устроена система измерений макета в платформе 1С 8 и какими практическими способами можно задавать и контролировать точные размеры печатных форм.
Для понимания принципов верстки макетов проанализируем, как платформа 1С рассчитывает габариты строк и столбцов:
ВысотаСтроки и измеряется в типографских пунктах (pt). 1 пункт равен 1/72 дюйма, что составляет приблизительно 0,3528 мм. Для перевода миллиметров в пункты используется коэффициент: 1 мм ≈ 2,835 pt.ШиринаКолонки и измеряется в условных символьных единицах, зависящих от базового шрифта. При стандартном системном шрифте одна единица ширины приблизительно равна 2,1–2,3 мм.ПолеСлева, ПолеСправа, ПолеСверху, ПолеСнизу) задаются строго в миллиметрах.Если редактирование макета выполняется в пользовательском режиме или в конфигураторе без внешней линейки, можно использовать графический объект с фиксированными размерами в качестве контрольного шаблона. Разберем по шагам, как это реализовать:
Когда требуется задать строго определенный размер в миллиметрах через программный код, выполним расчет по формулам пересчета. Рассмотрим пример процедуры на встроенном языке 1С:
// Задаем ширину колонки и высоту строки в миллиметрах
ШиринаВМм = 45;
ВысотаВМм = 15;
// Коэффициенты пересчета
КоэффициентШирины = 2.2;
КоэффициентВысоты = 2.8346;
// Применяем рассчитанные значения к области табличного документа
ОбластьКолонки = ТабличныйДокумент.Область("C2");
ОбластьКолонки.ШиринаКолонки = Окр(ШиринаВМм / КоэффициентШирины, 1);
ОбластьСтроки = ТабличныйДокумент.Область("R2");
ОбластьСтроки.ВысотаСтроки = Окр(ВысотаВМм * КоэффициентВысоты, 1);
Такой подход позволяет автоматизировать построение печатных форм с жесткими требованиями к ГОСТам или типографским бланкам.
Наиболее надежный профессиональный подход к верстке печатных форм в 1С — отказ от колонок произвольного размера в пользу регулярной модульной сетки. Разберем принцип ее построения:
Модульная сетка гарантирует, что границы элементов на разных строках не разъедутся при изменении содержимого, а итоговый документ будет стабильно масштабироваться при печати.
Для финальной проверки физических размеров готового документа разберем порядок действий с использованием встроенных механизмов платформы:
ПроверитьВывод для контроля вместимости формируемых таблиц на одном листе.
ТабличныйДокумент.АвтоМасштаб = Ложь;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.ПолеСлева = 10;
ТабличныйДокумент.ПолеСправа = 10;
ТабличныйДокумент.ПолеСверху = 10;
ТабличныйДокумент.ПолеСнизу = 10;
// Сохранение для точной сверки габаритов
ТабличныйДокумент.Записать("C:\Temp\CheckLayout.pdf", ТипФайлаТабличногоДокумента.PDF);
Сочетание модульной сетки, формульного пересчета и финальной проверки через PDF позволяет создавать печатные формы с точностью до миллиметра в любых интерфейсах платформы 1С:Предприятие 8.