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

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

Как сделать отступ в 1С: практическое руководство

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

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

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

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

Определите, какой именно отступ вам нужен

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

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

Маршрут решения

Как выбрать действие

Текст обрезается по краю листа при печатиНастройте поля страницы в предварительном просмотре или параметрах принтера
Содержимое ячейки прижато к границе таблицыИзмените свойства ячейки в макете табличного документа
Нужен отступ в программно формируемой строкеИспользуйте пробелы, Символы.Таб или Символы.ПС
Нужно отформатировать код модуляВыделите блок и нажмите Tab / Shift+Tab или используйте автоформатирование

Настройка полей страницы при печати

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

Учтите, что у любого принтера есть физическая непечатаемая зона — обычно несколько миллиметров по краям листа. Если выставить поле меньше этой зоны, часть текста всё равно не напечатается. Поэтому при обрезке текста сначала увеличьте поля до 10–15 мм и проверьте результат на тестовой распечатке.

Также проверьте масштаб печати. Если стоит масштаб отличный от 100%, документ может не помещаться в поля. В предварительном просмотре есть вариант «по ширине страницы», который автоматически вписывает широкие таблицы в лист.

Порядок действий при настройке полей
  1. 1
    Откройте печатную форму документа и перейдите в предварительный просмотр
  2. 2
    Найдите настройки страницы (кнопка параметров или меню Ещё)
  3. 3
    Установите поля не менее 10 мм с каждой стороны
  4. 4
    Проверьте масштаб — при необходимости выберите по ширине страницы
  5. 5
    Распечатайте тестовую страницу и убедитесь, что текст не обрезан

Отступы в макете табличного документа

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

Ключевые свойства для отступов: «Горизонтальное положение» (прижать влево, вправо, по центру, по ширине), «Вертикальное положение» (верх, низ, центр) и «Отступ» — именно оно задаёт сдвиг текста от левой границы ячейки. Свойство «Размещение текста» со значением «Переносить» позволяет длинному тексту переноситься на следующую строку внутри ячейки, а не обрезаться.

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

Программное управление отступами

Когда печатная форма строится кодом, отступы задаются через объект ТабличныйДокумент. После вывода области можно обратиться к нужной области ячеек и установить свойства: Отступ, ГоризонтальноеПоложение, ВертикальноеПоложение, ВысотаСтроки.

Пример установки отступа и высоты строки для области:

ТабДок = Новый ТабличныйДокумент;

Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("Макет");

Область = Макет.ПолучитьОбласть("Шапка");

ТабДок.Вывести(Область);

ОбластьЯчеек = ТабДок.Область("R2C2");

ОбластьЯчеек.Отступ = 5;

ОбластьЯчеек.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево;

ТабДок.Область("R3").ВысотаСтроки = 20;

Поля всей страницы задаются у самого табличного документа свойствами ПолеСлева, ПолеСправа, ПолеСверху, ПолеСнизу (значения в миллиметрах). Эти параметры применяются при выводе на печать и в предварительном просмотре.

ТабДок.ПолеСлева = 15;

ТабДок.ПолеСправа = 10;

ТабДок.ПолеСверху = 12;

ТабДок.ПолеСнизу = 12;

Отступы в строках: пробелы, табуляция, переносы

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

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

Функция ОтступПоУровню(Уровень)

Возврат СтрЗаменить(Формат(1, "ЧГ="), "1", "") +

?(Уровень > 0, ПовторитьПробелы(Уровень * 4), "");

КонецФункции

Функция ПовторитьПробелы(Количество)

Результат = "";

Для Инд = 1 По Количество Цикл

Результат = Результат + " ";

КонецЦикла;

Возврат Результат;

КонецФункции

ТекстСообщения = "Строка 1" + Символы.ПС + " Строка с отступом";

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

Типичные ошибки
01
Использование символа табуляции в печатных формах — табуляция в ячейках не работает как в Word, отступ нужно задавать свойством ячейки
02
Смешивание неразрывных и обычных пробелов — при переносе текста строки «пляшут», и выравнивание ломается
03
Задание отступа пробелами вместо свойства Отступ — при смене шрифта текст съезжает
04
Забытые поля страницы при программном выводе — документ печатается вплотную к краю и обрезается принтером

Отступы и форматирование кода в конфигураторе

Для читаемости модулей в 1С принято делать отступы табуляцией. Выделите блок кода и нажмите Tab — весь блок сдвинется вправо, Shift+Tab — влево. Это работает и для одной строки: курсор можно ставить в любое место строки.

В конфигураторе есть автоматическое форматирование: меню «Текст» — «Блок» — «Форматировать» (в разных версиях платформы пункт может называться «Автоформат»). Платформа сама расставит отступы по структуре конструкций «Если…КонецЕсли», «Цикл…КонецЦикла» и других блоков. В настройках конфигуратора (Сервис — Параметры — Модули) можно выбрать, что использовать для отступа: табуляцию или пробелы, и задать ширину отступа.

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

Если после форматирования код выглядит сбитым, проверьте, нет ли в тексте модуля скопированных из внешних источников фрагментов с неразрывными пробелами — они визуально неотличимы от обычных, но ломают выравнивание и иногда вызывают синтаксические ошибки.
ПЗ
Практическое замечание

Проверка результата и ограничения

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

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

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

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

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

Весь текст в пределах полей, переносы корректны

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

Текст уходит за границу листа или обрезан

Печать на принтере
Норма

Отступы на бумаге совпадают с просмотром

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

Крайние символы не пропечатаны — увеличьте поля

Открытие формы у другого пользователя
Норма

Макет выглядит одинаково

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

Съехали шрифты или размеры — проверьте масштаб и шрифты по умолчанию

Итог

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

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

Частые вопросы

Как сделать отступ первой строки («красную строку») в тексте печатной формы?

В ячейке табличного документа нет отдельного свойства абзацного отступа, как в Word. Практическое решение — увеличить значение свойства «Отступ» у ячейки или добавить пробелы в начало текста программно. Учтите, что отступ применится ко всем строкам текста в ячейке, а не только к первой.

Почему отступы в макете выглядят иначе при печати, чем на экране?

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

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

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

Как выровнять числа по правому краю с отступом от границы ячейки?

Установите ячейке горизонтальное положение «Право» и задайте свойство «Отступ» — для правого выравнивания оно отодвинет текст от правой границы. Альтернатива — форматная строка с фиксированной шириной вывода числа.

Что лучше для отступов в коде 1С — табуляция или пробелы?

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

Как добавить пустую строку-отступ между разделами печатной формы?

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