Документы и Печать · 10 мин
Как сделать отступ в 1С: практическое руководство
Как сделать отступ в 1С: настройка полей и отступов в печатных формах, макетах табличных документов, форматирование кода и отступы в интерфейсе программы.
Под «отступом в 1С» пользователи понимают разные задачи: сдвинуть текст в печатной форме, настроить поля страницы при печати, сделать красивое форматирование кода в конфигураторе или добавить пробелы и переносы в строковом значении. У каждой задачи свой инструмент, и универсальной кнопки «отступ» в программе нет.
Чаще всего вопрос возникает при работе с печатными формами документов: текст «прилипает» к краю листа, таблица обрезается принтером, а строки наезжают друг на друга. Вторая по частоте ситуация — редактирование макета в конфигураторе, где отступ задаётся свойствами ячеек табличного документа.
Ниже разобраны все основные сценарии: от простых настроек в пользовательском режиме до программного управления отступами через встроенный язык. Выбирайте раздел, который соответствует вашей задаче.
Определите, какой именно отступ вам нужен
Прежде чем что-то менять, уточните задачу. Если текст в распечатанном документе смещён или обрезан — проблема в полях страницы или в параметрах принтера. Если содержимое ячейки «прижато» к её границе внутри таблицы — нужно менять свойства ячейки в макете. Если речь о читаемости программного кода — используется форматирование текста модуля.
Отдельная ситуация — формирование строк с отступами программно, например для вывода иерархии в отчёте или многострочного текста в сообщении. Там отступ создаётся символами пробела, табуляции или переноса строки.
Как выбрать действие
Настройка полей страницы при печати
Самый простой сценарий доступен без прав разработчика. Откройте печатную форму документа, перейдите в предварительный просмотр и найдите настройки страницы. В типовых конфигурациях на платформе 1С:Предприятие 8.3 это меню «Ещё» или кнопка параметров страницы в окне предварительного просмотра, где задаются поля сверху, снизу, слева и справа в миллиметрах.
Учтите, что у любого принтера есть физическая непечатаемая зона — обычно несколько миллиметров по краям листа. Если выставить поле меньше этой зоны, часть текста всё равно не напечатается. Поэтому при обрезке текста сначала увеличьте поля до 10–15 мм и проверьте результат на тестовой распечатке.
Также проверьте масштаб печати. Если стоит масштаб отличный от 100%, документ может не помещаться в поля. В предварительном просмотре есть вариант «по ширине страницы», который автоматически вписывает широкие таблицы в лист.
- 1Откройте печатную форму документа и перейдите в предварительный просмотр
- 2Найдите настройки страницы (кнопка параметров или меню Ещё)
- 3Установите поля не менее 10 мм с каждой стороны
- 4Проверьте масштаб — при необходимости выберите по ширине страницы
- 5Распечатайте тестовую страницу и убедитесь, что текст не обрезан
Отступы в макете табличного документа
Если печатная форма дорабатывается в конфигураторе, отступы задаются в макете. Откройте конфигуратор, найдите нужный макет (обычно в ветке документа или общих макетов) и выделите ячейку или диапазон ячеек. Через правую кнопку мыши откройте палитру свойств.
Ключевые свойства для отступов: «Горизонтальное положение» (прижать влево, вправо, по центру, по ширине), «Вертикальное положение» (верх, низ, центр) и «Отступ» — именно оно задаёт сдвиг текста от левой границы ячейки. Свойство «Размещение текста» со значением «Переносить» позволяет длинному тексту переноситься на следующую строку внутри ячейки, а не обрезаться.
Для визуального увеличения расстояния между строками измените высоту строки: выделите строку и потяните её границу в области заголовков макета или задайте точное значение высоты в свойствах. Аналогично ширина колонки задаёт горизонтальное пространство.
Программное управление отступами
Когда печатная форма строится кодом, отступы задаются через объект ТабличныйДокумент. После вывода области можно обратиться к нужной области ячеек и установить свойства: Отступ, ГоризонтальноеПоложение, ВертикальноеПоложение, ВысотаСтроки.
Пример установки отступа и высоты строки для области:
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("Макет");
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
ОбластьЯчеек = ТабДок.Область("R2C2");
ОбластьЯчеек.Отступ = 5;
ОбластьЯчеек.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево;
ТабДок.Область("R3").ВысотаСтроки = 20;
Поля всей страницы задаются у самого табличного документа свойствами ПолеСлева, ПолеСправа, ПолеСверху, ПолеСнизу (значения в миллиметрах). Эти параметры применяются при выводе на печать и в предварительном просмотре.
ТабДок.ПолеСлева = 15;
ТабДок.ПолеСправа = 10;
ТабДок.ПолеСверху = 12;
ТабДок.ПолеСнизу = 12;
Отступы в строках: пробелы, табуляция, переносы
При формировании текстовых значений в коде отступ создаётся вручную. Платформа не добавляет пробелы автоматически, поэтому их нужно вставлять в строку явно. Для переноса строки используется системный набор символов Символы.ПС, для табуляции — Символы.Таб, для неразрывного пробела — Символы.НПП.
Типовой пример — вывод иерархии с нарастающим отступом, где уровень вложенности умножается на фиксированное число пробелов:
Функция ОтступПоУровню(Уровень)
Возврат СтрЗаменить(Формат(1, "ЧГ="), "1", "") +
?(Уровень > 0, ПовторитьПробелы(Уровень * 4), "");
КонецФункции
Функция ПовторитьПробелы(Количество)
Результат = "";
Для Инд = 1 По Количество Цикл
Результат = Результат + " ";
КонецЦикла;
Возврат Результат;
КонецФункции
ТекстСообщения = "Строка 1" + Символы.ПС + " Строка с отступом";
В многострочных строковых литералах (текст в вертикальных чертах) переносы сохраняются как есть, а пробелы в начале строки тоже входят в значение — это удобный способ задать отступы без конкатенации.
Отступы и форматирование кода в конфигураторе
Для читаемости модулей в 1С принято делать отступы табуляцией. Выделите блок кода и нажмите Tab — весь блок сдвинется вправо, Shift+Tab — влево. Это работает и для одной строки: курсор можно ставить в любое место строки.
В конфигураторе есть автоматическое форматирование: меню «Текст» — «Блок» — «Форматировать» (в разных версиях платформы пункт может называться «Автоформат»). Платформа сама расставит отступы по структуре конструкций «Если…КонецЕсли», «Цикл…КонецЦикла» и других блоков. В настройках конфигуратора (Сервис — Параметры — Модули) можно выбрать, что использовать для отступа: табуляцию или пробелы, и задать ширину отступа.
Единый стиль отступов важен в командной разработке: смешение табуляции и пробелов приводит к «разъезжающемуся» коду у разных разработчиков. Договоритесь об одном варианте и зафиксируйте его в настройках.
Если после форматирования код выглядит сбитым, проверьте, нет ли в тексте модуля скопированных из внешних источников фрагментов с неразрывными пробелами — они визуально неотличимы от обычных, но ломают выравнивание и иногда вызывают синтаксические ошибки.
Проверка результата и ограничения
После настройки отступов в печатной форме всегда проверяйте результат в трёх местах: в предварительном просмотре, при сохранении в PDF и на реальной распечатке. Отображение на экране и поведение принтера могут отличаться из-за драйвера и непечатаемой зоны устройства.
Если конфигурация типовая и находится на поддержке, прямая правка макета снимет объект с полной поддержки — обновления перестанут применяться к нему автоматически. Безопасная альтернатива — внешняя печатная форма, подключаемая через механизм дополнительных отчётов и обработок: она не затрагивает конфигурацию и легко откатывается.
Как проверить результат
Весь текст в пределах полей, переносы корректны
Текст уходит за границу листа или обрезан
Отступы на бумаге совпадают с просмотром
Крайние символы не пропечатаны — увеличьте поля
Макет выглядит одинаково
Съехали шрифты или размеры — проверьте масштаб и шрифты по умолчанию
Что важно запомнить
Отступ в 1С задаётся по-разному в зависимости от контекста: поля страницы — в настройках печати, отступ внутри ячейки — свойством макета или программно, отступ в строках — пробелами и Символы.ПС, в коде — табуляцией и автоформатированием. Типовую конфигурацию лучше дорабатывать через внешние печатные формы, а результат проверять на реальной распечатке.
Частые вопросы
Как сделать отступ первой строки («красную строку») в тексте печатной формы?
В ячейке табличного документа нет отдельного свойства абзацного отступа, как в Word. Практическое решение — увеличить значение свойства «Отступ» у ячейки или добавить пробелы в начало текста программно. Учтите, что отступ применится ко всем строкам текста в ячейке, а не только к первой.
Почему отступы в макете выглядят иначе при печати, чем на экране?
На результат влияют драйвер принтера, непечатаемая зона устройства и масштаб вывода. Проверьте, что масштаб равен 100% или включён режим вписывания по ширине, а поля страницы больше минимальной непечатаемой области вашего принтера.
Можно ли изменить отступы в печатной форме без конфигуратора?
Да, частично. Поля страницы и масштаб меняются в предварительном просмотре в пользовательском режиме. Но отступы внутри ячеек макета без конфигуратора или внешней печатной формы не изменить.
Как выровнять числа по правому краю с отступом от границы ячейки?
Установите ячейке горизонтальное положение «Право» и задайте свойство «Отступ» — для правого выравнивания оно отодвинет текст от правой границы. Альтернатива — форматная строка с фиксированной шириной вывода числа.
Что лучше для отступов в коде 1С — табуляция или пробелы?
Платформа поддерживает оба варианта, выбор задаётся в настройках конфигуратора. Табуляция удобнее тем, что каждый разработчик может настроить её визуальную ширину под себя. Главное правило — не смешивать оба способа в одном проекте.
Как добавить пустую строку-отступ между разделами печатной формы?
Выведите пустую область макета с заданной высотой строки между основными областями, либо увеличьте высоту последней строки предыдущей области. Это надёжнее, чем вставка пустых строк текста, так как высота контролируется точно.