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