К статье
Практический материал

Документы и Печать · 8 мин

Как вставить разрыв страницы в 1С

Как вставить разрыв страницы в 1С: настройка в макете табличного документа, вывод разрыва программно, контроль переносов и решение типичных проблем с печатью.

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

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

Где в 1С вообще существуют разрывы страниц

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

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

Как вставить разрыв программно при формировании печатной формы

Основной способ — метод ВывестиГоризонтальныйРазделительСтраниц() объекта «ТабличныйДокумент». Он вызывается в модуле менеджера печати или в процедуре формирования документа в тот момент, когда нужно закончить страницу.

Типичный сценарий — печать нескольких документов одной командой. В цикле по выборке после вывода всех областей одного документа вызывается разделитель, и следующий документ начинается с чистого листа.

1c
ТабДок = Новый ТабличныйДокумент;
Для Каждого СтрокаДокумента Из МассивДокументов Цикл
    ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
    ТабДок.Вывести(Макет.ПолучитьОбласть("Таблица"));
    ТабДок.Вывести(Макет.ПолучитьОбласть("Подвал"));
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;

Важный нюанс: разделитель ставится после вывода документа, а не перед. Если поставить его в начале итерации, первый документ окажется на второй странице, а первая останется пустой. Часто разделитель выводят условно — только если документ не последний в цикле, чтобы в конце не появлялся пустой лист.

Как задать разрыв в макете печатной формы

Если правка кода нежелательна, разрыв можно задать прямо в макете. Откройте макет печатной формы в конфигураторе, выделите строки области, после которых должен начинаться новый лист, и в палитре свойств найдите свойство, отвечающее за разрыв страницы (в зависимости от версии платформы оно называется «РазрывСтраницы» или управляется через свойства области).

Также полезно свойство «КонецСтраницы» у области макета: область, помеченная как конец страницы, всегда завершает текущий лист. Это удобно для подписей и штампов, которые должны стоять внизу последней страницы документа.

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

Как вставить разрыв вручную в режиме предприятия

Если табличный документ уже сформирован и открыт для редактирования, разрыв можно добавить без конфигуратора. Установите курсор на строку, перед которой должен начаться новый лист, и используйте команду вставки разрыва страницы из меню табличного документа (обычно доступна через контекстное меню или главное меню при активном табличном документе).

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

Автоматический контроль переносов: альтернатива жёстким разрывам

Жёсткий разрыв не всегда нужен. Часто задача — не дать строке таблицы «разрезаться» между страницами или не оставлять подпись одиноко на новом листе. Для этого в 1С есть метод ПроверитьВывод() и свойство «Не разрывать» у областей макета.

Метод ПроверитьВывод() проверяет, поместится ли массив областей на текущей странице. Если нет — программа сама вызывает разделитель страниц и выводит области уже на новом листе. Это стандартный приём для строк табличной части вместе со строкой итогов.

Сравнение подходов

Жёсткий разрыв (ВывестиГоризонтальныйРазделительСтраниц)

Подходит, когда каждый документ или раздел обязан начинаться с нового листа. Ограничение: может давать полупустые страницы.

ПроверитьВывод + условный разрыв

Подходит для защиты строк и блоков от разрезания. Разрыв добавляется только при реальной нехватке места.

Свойство «Не разрывать» в макете

Подходит для фиксированных блоков (подписи, штампы). Не управляет логикой из кода.

Проверка результата и типичные ошибки

После внесения изменений всегда проверяйте форму в предварительном просмотре, а не только на экране: табличный документ на экране отображается сплошной лентой, и разрывы видны только в режиме разметки страниц или при печати. Полезно сформировать форму с разным объёмом данных — коротким и длинным списком строк.

Контрольные точки

Как проверить результат

Предварительный просмотр
Норма

Каждый документ начинается с нового листа, страницы без пустых вставок

Тревожный признак

Пустая страница в начале или конце комплекта

Длинная табличная часть
Норма

Строки не разрезаются посередине, итоги рядом с последней строкой

Тревожный признак

Строка разорвана между страницами

Повторное формирование
Норма

Разрывы на месте после пересоздания формы

Тревожный признак

Разрывы пропали — значит, они были внесены вручную

Типичные ошибки
01
Разделитель выведен до первого документа — первая страница комплекта пустая
02
Разделитель после последнего документа — в конце появляется лишний пустой лист
03
Ручная вставка разрыва вместо правки макета — при следующем формировании всё теряется
04
Правка типового макета без расширения или копии — изменения стираются при обновлении
05
Проверка только на экране — разрывы не видны без режима разметки страниц

Часто задаваемые вопросы

Можно ли вставить разрыв страницы без доступа к конфигуратору?

Да, в режиме предприятия — через меню редактирования табличного документа, если форма открыта на редактирование. Но такой разрыв действует только в текущем экземпляре документа и исчезнет при повторном формировании. Для постоянного решения нужна правка макета или модуля печати.

Почему после разрыва появляется пустая страница?

Чаще всего разделитель выводится после последнего элемента цикла или перед первым. Вынесите вызов разделителя под условие «документ не последний» либо перенесите его в начало итерации с пропуском для первого документа.

Как не дать строке таблицы разрываться между страницами?

Используйте метод ПроверитьВывод() с массивом областей, которые должны помещаться вместе: если места не хватает, выведите разделитель страниц и затем области. Дополнительно в макете можно установить свойство защиты области от разрыва.

Разрыв работает в предпросмотре, но принтер печатает иначе. В чём причина?

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

Как сохранить доработку печатной формы при обновлении конфигурации?

Используйте внешнюю печатную форму или расширение конфигурации вместо правки типового макета. Тогда обновление типовой конфигурации не затронет вашу логику вывода и разрывов страниц.

Итог

Что важно запомнить

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