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

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

Как в 1С сделать перенос текста

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

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

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

Перенос строки в многострочном поле ввода

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

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

Как перенести строку в поле ввода
  1. 1
    Установите курсор в то место текста, где нужен разрыв строки.
  2. 2
    Нажмите Ctrl+Enter — курсор переместится на новую строку внутри поля.
  3. 3
    Продолжите ввод текста.
  4. 4
    Сохраните объект и откройте его повторно, чтобы убедиться, что переносы сохранились.

Перенос текста в ячейке табличного документа

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

В палитре свойств найдите параметр «Размещение текста» и установите значение «Переносить». После этого текст будет автоматически переноситься по словам внутри ячейки, а высота строки при выводе подстроится под содержимое, если не задана фиксированная высота. Если нужен принудительный разрыв в конкретном месте, вставьте в текст сам символ перевода строки — при редактировании ячейки это также делается через Ctrl+Enter.

Перенос строки в коде на встроенном языке

При формировании сообщений, текстов писем, файлов или строковых реквизитов программно перенос строки вставляется через системное перечисление Символы. Основные варианты: Символы.ПС (перевод строки), Символы.ВК (возврат каретки) и их сочетание Символы.ВК + Символы.ПС, которое соответствует стандартному разрыву строки в Windows (CRLF).

Пример формирования многострочного текста:

bsl
ТекстСообщения = "Первая строка" + Символы.ПС + "Вторая строка";
// Альтернатива без конкатенации — многострочный литерал:
Текст = "Первая строка
|Вторая строка
|Третья строка";

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

Перенос текста в макете печатной формы

При доработке печатной формы перенос настраивается в макете, который открывается через конфигуратор: «Конфигурация» → нужный объект → «Макеты». Для ячеек с длинными значениями (например, «Наименование товара» или «Адрес») установите «Размещение текста» = «Переносить», чтобы содержимое не обрезалось при выводе на печать.

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

Типичные ошибки
01
Включили перенос в макете, но не проверили печатную форму на реальных длинных данных — текст обрезался из-за фиксированной высоты строки.
02
Использовали в коде только Символы.ВК без ПС — в части форм такой перенос не отображается.
03
Пытаются переносить текст в однострочном поле — нужно менять свойство «МногострочныйРежим» поля формы, а не искать клавишу переноса.
04
Копируют текст с переносами из Word, и невидимые символы ломают выравнивание в табличном документе.

Перенос в наименованиях и содержимом табличных частей

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

Если требуется вывести длинное описание в несколько строк, используйте реквизиты с неограниченной длиной строки и многострочным режимом — например, «Описание», «Комментарий», «Дополнительная информация». Именно для таких полей и предназначен Ctrl+Enter.

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

Как выбрать способ переноса

Нужно разбить текст при ручном заполнении поляИспользуйте Ctrl+Enter внутри многострочного поля
Текст обрезается в отчёте или печатной формеУстановите для ячейки макета «Размещение текста» = «Переносить»
Строка формируется программноВставляйте Символы.ПС или многострочный литерал с символом «|»
Нужен перенос в поле, которое не принимает EnterПроверьте свойство «МногострочныйРежим» поля формы в конфигураторе

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

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

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

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

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

Отображение длинного текста в печатной форме
Норма

Текст переносится по словам, строка увеличивается по высоте, ничего не обрезано

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

Текст уходит за границу ячейки или виден только фрагмент

Сохранённое поле с переносами после повторного открытия
Норма

Разрывы строк на месте

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

Текст слипся в одну строку — поле однострочное

Строка, сформированная в коде
Норма

Каждый фрагмент на своей строке

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

Всё в одну строку — проверьте, что использован Символы.ПС, а не пробел

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

Почему Enter не переносит строку, а закрывает поле?

Во многих формах Enter подтверждает ввод и перемещает фокус. Для перевода строки внутри многострочного поля используйте Ctrl+Enter. Если и это не работает — поле однострочное, и его поведение может изменить только разработчик через свойство «МногострочныйРежим».

Как перенести текст в ячейке при работе в веб-клиенте?

В веб-клиенте сочетание Ctrl+Enter в многострочных полях также работает. Свойства ячеек табличного документа редактируются через контекстное меню «Свойства» аналогично тонкому клиенту, если конфигурация открывает табличный документ на редактирование.

Чем Символы.ПС отличается от Символ(10)?

Символы.ПС — это именованное обращение к символу с кодом 10 (перевод строки), то есть по сути это одно и то же. Использование Символы.ПС предпочтительнее, потому что код читается понятнее и не требует запоминания числовых кодов.

Переносится ли текст с переносами при обмене данными между базами?

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

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

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

Почему после копирования текста из Word в 1С появились лишние пустые строки?

Word использует комбинацию символов возврата каретки и перевода строки, а также скрытые символы абзацев. При вставке они могут дублироваться. Вставляйте текст через «Вставить как текст» или предварительно очищайте его через «Блокнот».

Итог

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

Перенос текста в 1С зависит от контекста: Ctrl+Enter — в многострочных полях, свойство «Размещение текста» = «Переносить» — в ячейках табличных документов и макетов, Символы.ПС или литерал с «|» — в коде. Результат всегда проверяйте на длинных реальных данных.