Разработка и Конфигурация · 9 мин
Как в макете 1С сделать перенос строки
Как сделать перенос строки в макете 1С: свойство РазмещениеТекста, Символы.ПС, заполнение параметров, перенос в табличном документе и типичные ошибки.
Макет в 1С — это шаблон, на основе которого формируются печатные формы и отчёты. Когда текст в ячейке длинный (например, полное наименование номенклатуры или адрес контрагента), он обрезается границами ячейки, и на печати часть данных пропадает. Проблема решается двумя путями: включением автоматического переноса текста в свойствах ячейки либо принудительной вставкой символа перевода строки в сам текст.
Выбор способа зависит от задачи. Автоматический перенос подходит, когда нужно, чтобы длинное значение умещалось в заданную ширину колонки. Принудительный перевод строки нужен, когда текст должен разбиваться в строго определённых местах — например, адрес построчно: индекс, город, улица. Ниже разобраны оба подхода, настройка высоты строк и частые ошибки.
Где в макете находится настройка переноса текста
Откройте конфигуратор, найдите нужный макет (в дереве конфигурации: Общие → Макеты, либо макет, вложенный в конкретный документ или справочник). Дважды щёлкните по макету — откроется редактор табличного документа. Выделите ячейку или диапазон ячеек, в которых текст должен переноситься.
Нажмите правую кнопку мыши и выберите «Свойства», либо откройте палитру свойств через меню. В списке свойств найдите параметр «Размещение текста». По умолчанию там стоит «Обрезать» — именно поэтому длинный текст визуально обрывается на границе ячейки. Смените значение на «Переносить».
После изменения свойства текст внутри ячейки будет автоматически разбиваться на несколько строк по ширине колонки. Это касается как текста, заданного прямо в макете, так и значений, подставляемых через параметры (ячейки с заполнением «Параметр» или «Шаблон»).
Автоматический перенос: пошаговая настройка
Настройка занимает меньше минуты, но есть нюанс с высотой строки — без его учёта перенос не сработает визуально. Выполните действия в указанном порядке.
- 1Откройте макет в конфигураторе и выделите нужные ячейки
- 2В палитре свойств установите «Размещение текста» = «Переносить»
- 3Проверьте свойство строки «Высота»: уберите фиксированное значение или установите «Автовысота»
- 4Сохраните макет (Ctrl+S)
- 5Сформируйте печатную форму в режиме предприятия и проверьте результат
Обратите внимание: если у строки макета задана фиксированная высота (например, 15 пунктов), перенесённый текст просто не поместится — он останется обрезанным, хотя свойство переноса включено. Высота строки должна быть автоопределяемой, чтобы табличный документ мог расширить строку под количество строк текста.
Если макет используется для вывода через метод ПолучитьОбласть() и Вывести(), автоопределение высоты обычно работает корректно. Но если вы программно задаёте высоту области после вывода, это может перекрыть автоматику.
Принудительный перенос строки через Символы.ПС
Когда текст нужно разбить в конкретных местах, используйте символ перевода строки. Во встроенном языке 1С он доступен через системное перечисление Символы.ПС (перевод строки). Пример формирования многострочного адреса:
АдресТекстом = Контрагент.Индекс + Символы.ПС
+ Контрагент.Город + Символы.ПС
+ Контрагент.УлицаДом;
Область.Параметры.Адрес = АдресТекстом;
Такой текст при выводе в ячейку с включённым переносом отобразится в три строки. Важно: даже при принудительном переносе свойство «Размещение текста» ячейки должно быть «Переносить» — иначе символы ПС могут быть проигнорированы при отображении.
Перенос строки прямо в макете
Если текст статичен и задан прямо в ячейке макета, перевод строки вставляется сочетанием Ctrl+Enter при редактировании содержимого ячейки. Просто Enter завершит редактирование, поэтому используйте именно комбинацию с Ctrl.
Перенос в шаблоне ячейки
В ячейках с типом заполнения «Шаблон» можно комбинировать текст и параметры: Грузоотправитель: [Отправитель] и на следующей строке Грузополучатель: [Получатель]. Перевод строки между ними также вставляется через Ctrl+Enter при редактировании шаблона.
Перенос строки в макете СКД и в полях формы
В схеме компоновки данных перенос настраивается иначе. Откройте закладку «Настройки» → «Другие настройки» и найдите параметр «Расположение реквизитов» или свойство оформления поля. Для конкретного поля в настройках оформления есть параметр «Размещение» — установите «Переносить». Также в макетах СКД (закладка «Макеты») макет-поле оформляется как обычный табличный документ, и там работает то же свойство ячейки.
В управляемых формах для многострочных полей ввода используется свойство элемента формы «Многострочный режим» = Истина. Тогда пользователь может вводить текст с переводами строк через Enter, и эти переводы сохраняются в данных и корректно выводятся в макет.
Проверка результата и типичные ошибки
После настройки сформируйте печатную форму с реальными длинными данными — не с тестовой строкой «тест», а с фактическим наименованием из базы. Проверьте: текст виден полностью, строки не наезжают друг на друга, высота строк увеличилась пропорционально количеству переносов.
Ещё одна распространённая ситуация: перенос работает на экране, но при печати на бумаге текст обрезается. Такое бывает, когда область выходит за границы печатной страницы. Проверьте параметры страницы табличного документа (поля, масштаб, ориентацию) и при необходимости включите автомасштаб или уменьшите ширину колонок.
Как проверить результат
Весь текст отображается, строка увеличила высоту
Текст обрезан по нижней границе ячейки
Текст разбит именно там, где вставлен Символы.ПС
Весь текст в одну строку или разбит произвольно
На предпросмотре печати переносы сохранены
На экране перенос есть, при печати текст обрезан
Что выбрать в разных ситуациях
Как выбрать действие
Комбинировать способы можно и нужно: автоматический перенос страхует от слишком длинных значений, а принудительный — задаёт структуру вывода. В типовых конфигурациях для адресов и наименований обычно применяется именно связка обоих подходов.
Что важно запомнить
Перенос строки в макете 1С включается свойством ячейки «Размещение текста» = «Переносить» плюс автоопределение высоты строки. Принудительный разрыв делается через Символы.ПС или Ctrl+Enter при редактировании ячейки. Без автоопределяемой высоты перенос визуально не сработает.
Частые вопросы
Почему текст переносится, но строка не увеличивается по высоте?
У строки макета задана фиксированная высота. Выделите строку, откройте свойства и уберите конкретное значение высоты, чтобы включилось автоопределение. Тогда табличный документ сам подстроит высоту под количество строк текста.
Как вставить перенос строки в текст прямо в ячейке макета?
Войдите в режим редактирования содержимого ячейки (двойной щелчок или F2) и нажмите Ctrl+Enter в месте разрыва. Обычный Enter завершит редактирование без вставки перевода строки.
Символы.ПС в параметре не даёт переноса — в чём причина?
Проверьте два условия: у целевой ячейки должно стоять «Размещение текста» = «Переносить», и высота строки не должна быть зафиксирована. При значении «Обрезать» переводы строк в значении параметра игнорируются при отображении.
Работает ли перенос в объединённых ячейках?
Да, но свойство «Размещение текста» нужно устанавливать для всего объединённого диапазона, выделив его целиком. Если свойство задано только одной ячейке до объединения, поведение может отличаться — проверьте результат на печатной форме.
Как сделать перенос в макете, заполняемом через СКД?
Если используется макет СКД (закладка «Макеты»), макет-поле редактируется как обычный табличный документ — установите перенос в свойствах ячейки. Если макет не задан, настройте параметр оформления «Размещение» для нужного поля в настройках отчёта.
Чем Символы.ПС отличается от Символы.ВК?
Символы.ПС — это перевод строки (LF), Символы.ВК — возврат каретки (CR). Для печатных форм внутри 1С достаточно ПС. Комбинация ВК+ПС нужна в основном при выгрузке текстовых файлов для программ, ожидающих Windows-формат строк.