Печать регламентированных форм, таких как ТОРГ-12, часто вызывает сложности у пользователей из-за того, что последняя строка документа или подпись выносятся на отдельный лист. Эта проблема носит комплексный характер: она может зависеть от драйверов принтера, настроек ТабличногоДокумента, различий в шрифтах на сервере и клиенте, а также от логики самого макета. Давайте разберем, как диагностировать и устранить эти причины.
Первым делом проанализируем параметры используемого оборудования. Частая причина «сдвига» — несоответствие формата бумаги, заданного в настройках 1С, и того, что физически установлено в лотке принтера. Если принтер ожидает один формат, а 1С отправляет другой, драйвер принудительно пересчитывает масштаб, что приводит к разрыву страницы.
А4.А4.Если проблема носит системный характер для всех пользователей, стоит пересмотреть структуру макета ТОРГ-12. Логика вывода ТабличногоДокумента устроена так, что система старается удержать блок подвала (подписи) вместе с последней строкой номенклатуры. Если места недостаточно, она делает разрыв.
Что мы можем сделать:
Иногда настройки 1С «запоминают» неудачные параметры печати для конкретного пользователя. 1С сохраняет эти данные в Настройки сохранения данных пользователя. Попробуйте сбросить настройки печатной формы или временно изменить параметры страницы, сохранить их, а затем вернуть обратно — это часто «перезагружает» алгоритм компоновки макета.
Важный момент: формирование ТабличногоДокумента происходит на сервере, а печать — на клиенте. Разные шрифты или их версии, установленные на сервере и на локальном ПК пользователя, могут приводить к тому, что текст «расползается». Если строка чуть шире или выше, она не помещается на страницу.
Для гарантированного результата рекомендуем использовать следующий алгоритм: формировать ТабличныйДокумент на сервере, преобразовывать его в PDF и уже готовый PDF отправлять на печать пользователю. Использование сторонних движков печати (например, Adobe Acrobat) исключает ошибки компоновки, свойственные платформе 1С.
Пример логики сохранения в PDF на сервере:
// Пример формирования печатной формы
ТабДок = ПечатнаяФорма.СформироватьПечатнуюФорму();
ИмяФайла = ПолучитьИмяВременногоФайла("pdf");
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
// Далее передаем файл на клиент для отображения или печати
Помните, что в типовых конфигурациях ERP проверка вывода подвала жестко прописана в коде модуля печатных форм. Если вы видите, что на листе остается много пустого места, а подвал все равно прыгает на следующую страницу, значит, в коде установлен ПараметрВывода, запрещающий разрыв блока подвала. Если вы разработчик, проанализируйте метод Вывести() для табличного документа — возможно, стоит изменить настройки вывода, чтобы разрешить перенос части подвала, если это допустимо бизнес-логикой документа.
Заключение: Начинайте всегда с проверки принтера (драйверов и физического формата). Если это не помогает, переходите к корректировке макета в конфигураторе, чтобы сделать форму менее требовательной к полям страницы. А для критически важных документов используйте промежуточное сохранение в PDF — это самый надежный метод избежать «пляшущих» разрывов страниц.