Как в 1С программно задать масштаб табличного документа по ширине

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При формировании печатных форм и отчетов разработчики часто сталкиваются с ситуацией, когда готовый табличный документ не помещается на экране или странице по ширине. Пользователю приходится вручную открывать параметры и переключать масштаб на режим «По ширине страницы». Разберем, как автоматизировать этот процесс в программном коде и какие технические нюансы платформы «1С:Предприятие» при этом необходимо учитывать.

Штатная настройка масштаба через свойство АвтоМасштаб

В объекте ТабличныйДокумент предусмотрено стандартное свойство АвтоМасштаб. При установке этого свойства в значение Истина платформа автоматически рассчитывает коэффициент масштабирования так, чтобы весь документ умещался по ширине страницы печати без появления горизонтального разрыва страниц.

Рассмотрим пример кода в обработчике команды печати на клиенте:


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
    ТабДок = Новый ТабличныйДокумент;
    
    // Формируем печатную форму на сервере
    ПечатьСправкаОбОплатеМедУслугВНалоговыйОрган(ТабДок, ПараметрКоманды);
    
    // Настраиваем параметры отображения
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    
    // Включаем автомасштабирование по ширине страницы
    ТабДок.АвтоМасштаб = Истина;
    
    // Открываем сформированный документ
    ТабДок.Показать();
    
КонецПроцедуры

Важные правила и ограничения работы свойства АвтоМасштаб

Проанализируем тонкости поведения платформы при использовании свойства АвтоМасштаб, чтобы избежать распространенных ошибок:

  1. Момент вызова свойства. Свойство АвтоМасштаб следует устанавливать строго после того, как в табличный документ выведены все области и строки макета. Если присвоить значение до заполнения таблицы, при компоновке секций настройка может быть переопределена значениями макета по умолчанию.
  2. Одностороннее сжатие. Механизм автомасштабирования уменьшает вывод только в том случае, если ширина таблицы превышает ширину листа. Если табличный документ изначально уже страницы, платформа не станет искусственно растягивать его содержимое и колонки до краев.
  3. Влияние сохраненных параметров. Если у документа заполнено свойство ИмяПараметровПечати, платформа при отображении может применить сохраненные пользовательские настройки печати для данного идентификатора, переопределив программно заданное значение.

Различие экранного зума и масштаба печати

Выясним причину, по которой интерактивное поведение документа при вызове метода Показать() может отличаться от ожиданий разработчика. Свойства АвтоМасштаб и МасштабПечати отвечают за формирование страницы для вывода на принтер и в окне предварительного просмотра печати.

При интерактивном открытии через метод Показать() документ отображается в экранном режиме со стандартным масштабом просмотра (100%). В платформе «1С:Предприятие» отсутствует прямое программное свойство для управления экранным зумом просмотра (аналог комбинации Ctrl + колесо мыши или меню Таблица — Вид — Масштаб).

Альтернативные подходы к адаптивному отображению

Если требуется гарантировать идеальное визуальное восприятие документа на экранах пользователей без ручной подгонки, рассмотрим следующие практические варианты:

  1. Оптимизация колонок макета в конфигураторе. Для документов, предназначенных главным образом для чтения с экрана, ширину колонок и размер шрифтов рассчитывают и настраивают заранее под наиболее распространенное разрешение пользовательских мониторов.
  2. Вывод в форму с элементом управления. Вместо метода Показать() документ открывают в отдельной форме, содержащей элемент управления Поле табличного документа. Это позволяет привязать границы элемента к форме и корректно использовать свойства растягивания формы интерфейса.
  3. Использование поля HTML-документа. Если визуальная часть требует динамической адаптивности под абсолютно любую ширину экрана, отчет или форму формируют в формате HTML. Отображение через элемент управления Поле HTML-документа позволяет гибко масштабировать содержимое с помощью CSS-стилей (например, правил width: 100% или свойства zoom).
← На главную