При работе с печатными формами в системе 1С:Предприятие 7.7 разработчики и пользователи часто сталкиваются с появлением нежелательных пунктирных линий в макетах. Эти линии — разделители страниц — могут привести к тому, что документ при печати будет разбиваться на части в самых неподходящих местах. В этой статье мы подробно разберем, как обнаружить и удалить такие разделители, а также выясним причины их появления.
Прежде чем приступать к удалению, проанализируем ситуацию и поймем, с каким именно разделителем мы имеем дело. В среде 1С 7.7 существует два основных вида разрывов страниц:
Рассмотрим подробнее способы работы с каждым из них.
Если мы открыли макет в конфигураторе и видим четкую пунктирную линию, которая мешает корректному выводу данных, выполним следующие шаги:
Если этот пункт меню неактивен (серый), значит, выделенная строка не является началом новой страницы или же перед нами автоматический разрыв, который нельзя удалить простым нажатием кнопки.
Посмотрим на альтернативный вариант удаления. Вместо верхнего меню мы можем использовать правую кнопку мыши (ПКМ). Выделим строку под разделителем, нажмем ПКМ и поищем в списке действий операции с таблицей. В некоторых сборках платформы 1С 7.7 пункты управления страницей могут быть сгруппированы. Однако наиболее надежным остается метод через основное меню «Таблица».
Бывают ситуации, когда в самом макете (файле .mxl или внутри конфигурации) разделителя нет, но при формировании печатной формы он упорно появляется. В этом случае нам необходимо исследовать программный код модуля, отвечающего за печать. Проанализируем ситуацию: скорее всего, в коде используется принудительный разрыв.
Разберем основные функции, которые могут вызывать перенос на новую страницу:
// Пример принудительного разрыва страницы в коде 1С 7.7
Таб.НоваяСтраница();
Метод НоваяСтраница() заставляет принтер начать печать со следующего листа. Если мы хотим убрать разделитель, нам нужно найти все вхождения этой команды в модуле формирования отчета и закомментировать их или добавить условие, при котором разрыв не будет происходить.
Также стоит обратить внимание на метод Опции(). Хотя он чаще отвечает за фиксацию строк и столбцов, иногда неправильные параметры вывода секций могут провоцировать некорректное разбиение.
Выясним причину появления «мягких» разделителей. Если линия тонкая и смещается при изменении полей документа, значит, таблица просто не влезает на один лист. Чтобы исправить это без удаления строк, воспользуемся масштабированием.
В коде это реализуется через метод ПараметрыСтраницы(). Рассмотрим пример:
// Установка параметров страницы для исключения лишних разрывов
// Параметры: Ориентация, Масштаб, ЧБПечать, Поля...
Таб.ПараметрыСтраницы(1, 1, 0, 10, 10, 10, 10, 0, 0, 1);
Здесь последний параметр (значение 1) отвечает за опцию «По ширине страницы». Если мы установим этот флаг, система автоматически сожмет таблицу так, чтобы она уместилась по ширине листа, и «мягкие» вертикальные разделители исчезнут.
Иногда разделитель «застревает» в нижней части макета из-за наличия пустых строк, которые содержат невидимое форматирование (например, измененную высоту строки или границы). Система считает такие строки значимыми и пытается вывести их на печать, что приводит к созданию лишнего листа.
Выполним следующие действия для очистки:
Если разделители страниц мешают вам только визуально в процессе проектирования макета, их отображение можно отключить в самом конфигураторе. Перейдем в меню «Таблица» — «Вид» и снимем галочку с пункта «Разделители страниц». Обратите внимание: это действие лишь скрывает линии в редакторе, но не отменяет их влияние на печать. Это полезно, когда вы работаете над дизайном формы и хотите видеть общую картину без пунктирных перебивок.
Подводя итог, можно сказать, что решение проблемы с разделителем в 1С 7.7 всегда кроется либо в свойствах конкретных строк макета, либо в параметрах печати, заданных программно. Мы рекомендуем сначала проверить ручные разделители через меню «Таблица», а затем проанализировать код на наличие метода НоваяСтраница().