Многие технические специалисты и пользователи 1С сталкиваются с досадной ситуацией: на экране в режиме «Предварительный просмотр» документ (например, ТОРГ-12 или Счет-фактура) выглядит идеально, умещаясь на одну или две страницы, но при выводе на физический принтер текст «уезжает», строки переносятся некорректно, а хвост документа оказывается на отдельном листе. Проанализируем, почему это происходит и какими методами можно добиться идентичности экранной и печатной версий.
Основная причина проблемы кроется в том, как операционная система Windows и платформа 1С работают с графическим интерфейсом устройства (GDI). Разберем этот механизм подробнее. Экран монитора обычно имеет разрешение 96 DPI (точек на дюйм), в то время как современные лазерные принтеры работают с разрешением 600 DPI, 1200 DPI и выше.
Когда 1С отрисовывает предварительный просмотр, она использует экранные метрики шрифтов. При отправке на печать драйвер принтера пересчитывает эти метрики под свое разрешение. Из-за ошибок округления и особенностей адаптации шрифтов под разную плотность пикселей, ширина и высота символов могут незначительно изменяться. На одной строке разница может составлять доли миллиметра, но в масштабе всей страницы ТабличныйДокумент накапливает погрешность, которая и приводит к смещению разрывов страниц.
Проанализируем программное обеспечение принтера. В большинстве современных систем по умолчанию устанавливаются драйверы стандарта PCL6. Несмотря на их современность, они часто некорректно передают информацию о границах непечатаемых зон и метриках шрифтов в старые графические подсистемы, которые использует 1С.
Рассмотрим шаги по замене драйвера:
Если на компьютере пользователя установлено масштабирование интерфейса (например, 125% или 150% на 4K мониторах), 1С может путаться в расчетах экранных координат. Посмотрим, как принудительно заставить систему отдавать правильные параметры приложению.
Выполним следующие действия:
1cv8.exe (обычно находится в папке bin установленной платформы).ТабличныйДокумент.Функция АвтоМасштаб = Истина — это удобный инструмент, но именно он является источником большинства проблем. Платформа динамически вычисляет коэффициент сжатия, чтобы втиснуть колонки по ширине листа. При малейшем расхождении в DPI принтера этот коэффициент пересчитывается иначе, чем для экрана.
Проанализируем ситуацию: если документ почти влезает на страницу, 1С может применить масштаб 97% для превью и 96% для печати. Результат будет разным. Чтобы этого избежать, программно зафиксируем масштаб в коде формирования печатной формы.
Пример кода для установки фиксированного масштаба:
ТабДок = Новый ТабличныйДокумент;
// Вместо использования АвтоМасштаба
// ТабДок.АвтоМасштаб = Истина;
// Установим фиксированный масштаб, который гарантированно подходит
ТабДок.МасштабПечати = 95;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Установка значения 95% или 98% вместо автоматического подбора делает поведение документа предсказуемым на любых моделях принтеров.
Каждый физический принтер имеет аппаратные ограничения — области у краев листа, где печатающая головка или лазер не могут наносить изображение. Если в настройках 1С указаны поля, которые меньше аппаратных полей принтера, драйвер принудительно сдвигает содержимое, что ломает всю верстку.
Разберем, как минимизировать это влияние:
0.
ТабДок.ПолеСлева = 0;
ТабДок.ПолеСправа = 0;
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСнизу = 0;
Это позволит 1С передавать управление геометрией страницы непосредственно драйверу, не пытаясь наложить свои ограничения поверх системных.
Не все шрифты одинаково полезны для печати из 1С. Шрифты типа OpenType (.otf) могут отображаться корректно, но при масштабировании вести себя хаотично. Рекомендуется использовать проверенные TrueType (.ttf) шрифты, такие как Arial, Courier New или Times New Roman.
На что обратить внимание в макете:
Переносить, то при изменении масштаба даже на 1% высота строки может увеличиться, так как одно слово перестанет помещаться и перепрыгнет на новую строку.Для достижения 100% совпадения предварительного просмотра и печати мы рекомендуем комбинированный подход: установку драйвера PCL5, использование фиксированного масштаба (например, 95% вместо автоматического) и обнуление полей в макете. Эти меры нейтрализуют большинство ошибок округления GDI и сделают работу пользователей с документами ТОРГ-12 и другими печатными формами комфортной и стабильной.