При формировании печатных форм и отчетов разработчики часто сталкиваются с ситуацией, когда готовый табличный документ не помещается на экране или странице по ширине. Пользователю приходится вручную открывать параметры и переключать масштаб на режим «По ширине страницы». Разберем, как автоматизировать этот процесс в программном коде и какие технические нюансы платформы «1С:Предприятие» при этом необходимо учитывать.
В объекте ТабличныйДокумент предусмотрено стандартное свойство АвтоМасштаб. При установке этого свойства в значение Истина платформа автоматически рассчитывает коэффициент масштабирования так, чтобы весь документ умещался по ширине страницы печати без появления горизонтального разрыва страниц.
Рассмотрим пример кода в обработчике команды печати на клиенте:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ТабДок = Новый ТабличныйДокумент;
// Формируем печатную форму на сервере
ПечатьСправкаОбОплатеМедУслугВНалоговыйОрган(ТабДок, ПараметрКоманды);
// Настраиваем параметры отображения
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
// Включаем автомасштабирование по ширине страницы
ТабДок.АвтоМасштаб = Истина;
// Открываем сформированный документ
ТабДок.Показать();
КонецПроцедуры
Проанализируем тонкости поведения платформы при использовании свойства АвтоМасштаб, чтобы избежать распространенных ошибок:
АвтоМасштаб следует устанавливать строго после того, как в табличный документ выведены все области и строки макета. Если присвоить значение до заполнения таблицы, при компоновке секций настройка может быть переопределена значениями макета по умолчанию.ИмяПараметровПечати, платформа при отображении может применить сохраненные пользовательские настройки печати для данного идентификатора, переопределив программно заданное значение.Выясним причину, по которой интерактивное поведение документа при вызове метода Показать() может отличаться от ожиданий разработчика. Свойства АвтоМасштаб и МасштабПечати отвечают за формирование страницы для вывода на принтер и в окне предварительного просмотра печати.
При интерактивном открытии через метод Показать() документ отображается в экранном режиме со стандартным масштабом просмотра (100%). В платформе «1С:Предприятие» отсутствует прямое программное свойство для управления экранным зумом просмотра (аналог комбинации Ctrl + колесо мыши или меню Таблица — Вид — Масштаб).
Если требуется гарантировать идеальное визуальное восприятие документа на экранах пользователей без ручной подгонки, рассмотрим следующие практические варианты:
Показать() документ открывают в отдельной форме, содержащей элемент управления Поле табличного документа. Это позволяет привязать границы элемента к форме и корректно использовать свойства растягивания формы интерфейса.width: 100% или свойства zoom).