Обучение и Решения · 11 мин
Как переносить текст в 1С: строки, ячейки и печатные формы
Как переносить текст в 1С: перенос строки в ячейке и печатной форме, символы ПС и ВК, перенос длинного текста в таблицах и макетах, типичные ошибки и проверка результата.
Под переносом текста в 1С обычно понимают три разные задачи: сделать перенос строки внутри многострочного поля, заставить длинный текст переноситься по словам в табличном документе или печатной форме и перенести текстовые данные между объектами конфигурации. У каждой задачи свой механизм, и путаница между ними — главная причина вопросов у пользователей и начинающих разработчиков.
В пользовательском режиме перенос строки делается клавишами, в режиме разработки — свойствами элементов формы и макета либо программно через системные символы. Ниже разобраны все три сценария с конкретными действиями, ограничениями и способами проверить результат.
Как понять, какой именно перенос текста вам нужен
Прежде чем что-то настраивать, определите тип задачи. Если текст обрезается в ячейке табличной части документа — это вопрос свойств колонки формы. Если в печатной форме длинное наименование накладывается на соседние колонки — это настройка макета. Если нужно вставить в поле несколько строк вручную — это работа с клавиатурой. Если строки склеиваются при программной обработке — это вопрос кода.
Как выбрать действие
Отдельный случай — перенос текстовых данных между базами или из внешних файлов. Там ключевую роль играет кодировка и корректная обработка символов конца строки, иначе весь текст сливается в одну строку или разваливается на лишние фрагменты.
Перенос строки в поле ввода вручную
В многострочных полях 1С (комментарии, описания, дополнительная информация) обычный Enter часто не переносит строку, а завершает ввод или перемещает фокус на следующий элемент. Стандартное сочетание для перевода строки внутри поля — Ctrl+Enter. В ряде полей работает и Shift+Enter.
Чтобы проверить, многострочное ли поле, посмотрите на его высоту и наличие полосы прокрутки. Однострочное поле (например, «Наименование») физически не может хранить переносы строк — платформа их удалит или заменит. Если вам нужно хранить длинный структурированный текст, используйте предназначенные для этого реквизиты: «Комментарий», «Описание», «Дополнительная информация».
- 1Установите курсор в многострочное поле (комментарий, описание)
- 2Наберите первую строку текста
- 3Нажмите Ctrl+Enter — курсор перейдёт на новую строку внутри того же поля
- 4Введите следующую строку, при необходимости повторите
- 5Запишите объект и откройте его заново, чтобы убедиться, что переносы сохранились
Если после сохранения переносы пропали — значит, реквизит имеет ограничение длины или однострочный тип, либо прикладной код очищает текст при записи. Это повод проверить настройку реквизита, а не вводить текст повторно.
Автоматический перенос текста в таблицах на форме
Когда длинное наименование или комментарий не помещается в колонку табличной части, платформа по умолчанию обрезает его многоточием. Чтобы текст переносился по словам, нужно изменить свойства колонки. В пользовательском режиме это делается через «Ещё → Изменить форму» (в типовых конфигурациях на управляемых формах): выделите колонку и найдите свойство, отвечающее за перенос текста.
В конфигураторе за поведение отвечает свойство поля ввода «Автоотметка незаполненного» не при чём — нужны «Высота» элемента и свойство таблицы «Режим отображения», а ключевое — установить у поля ввода в колонке многострочный режим отображения. На практике для колонки табличного поля включают свойство «Переносить» (в обычных формах) либо настраивают высоту строк таблицы на управляемой форме, где автоматический перенос в таблицах ограничен.
Учтите, что изменение формы через «Изменить форму» сохраняется в настройках пользователя и может сброситься при обновлении конфигурации. Если перенос нужен всем пользователям постоянно, правильнее доработать форму в расширении конфигурации, а не в настройках каждого рабочего места.
Перенос текста в печатных формах и макетах
Печатные формы в 1С строятся на табличных документах, и именно здесь перенос текста настраивается наиболее полно. Откройте макет (в типовых конфигурациях — через конфигуратор или механизм пользовательских макетов, если он предусмотрен прикладным решением), выделите нужную ячейку и вызовите палитру свойств.
Ключевые свойства ячейки табличного документа:
- Размещение текста — определяет, будет ли текст переноситься по словам, обрезаться или забиваться (уменьшением шрифта). Для переноса выбирайте вариант «Переносить».
- Автовысота строки — позволяет строке макета увеличивать высоту под объём перенесённого текста. Без неё перенесённый текст просто не поместится визуально.
- Растягивать по горизонтали/вертикали — влияет на поведение области при выводе.
Как проверить результат
Текст переносится на 2–3 строки, высота строки увеличилась, соседние колонки не задеты
Текст обрезан, налезает на соседнюю ячейку или исчезает за границей
Строка автоматически подстраивается под объём текста
Видна только первая строка текста при фиксированной высоте
Все данные читаемы, разрывы страниц логичны
Часть текста уходит за поля страницы или обрезается
После изменения макета обязательно сформируйте печатную форму на реальных данных с максимально длинным текстом из вашей базы — короткие тестовые значения не покажут проблему. Проверяйте именно предпросмотр или PDF, а не только вид макета в редакторе.
Программный перенос строк: Символы.ПС и Символы.ВК
При формировании текста кодом строки соединяют через системный набор символов. Основные варианты: Символы.ПС (перевод строки, LF), Символы.ВК (возврат каретки, CR) и их комбинация Символы.ВК + Символы.ПС, соответствующая стандарту Windows. Для вывода в поля формы и табличные документы обычно достаточно Символы.ПС.
ТекстСообщения = "Первая строка" + Символы.ПС + "Вторая строка";
МногострочныйТекст = "Строка1" + Символы.ВК + Символы.ПС + "Строка2"; // для файлов WindowsТипичная ситуация: текст, сформированный с Символы.ПС, корректно выглядит в 1С, но при выгрузке в текстовый файл и открытии в некоторых редакторах отображается одной строкой. Это признак того, что приёмник ожидает пару CR+LF. Обратная проблема — при чтении файлов, созданных в Linux или macOS, где строки разделены только LF.
Для разборки многострочного текста используйте СтрЧислоСтрок() и СтрПолучитьСтроку() — они корректно работают с обоими вариантами разделителей и избавляют от ручного поиска символов.
Перенос текста между объектами и из внешних источников
При копировании текста между документами (например, из комментария заказа в комментарий реализации) в типовых конфигурациях работает обычное копирование через буфер обмена: Ctrl+C / Ctrl+V с сохранением переносов строк, если оба поля многострочные. При вставке из Word или браузера в многострочное поле переносы обычно сохраняются, но форматирование (шрифты, таблицы) — нет, поле хранит только простой текст.
Если текст переносится загрузкой из файла (CSV, Excel, txt), заранее проверьте три вещи: кодировку файла (UTF-8 — наиболее безопасный вариант), разделитель строк внутри ячеек и наличие кавычек-ограничителей в CSV, внутри которых переносы строк допустимы. Загрузка файла с переносами внутри неэкранированных значений развалит структуру строк.
При обмене между базами 1С (через правила конвертации, EnterpriseData или самописные выгрузки) символы переноса строк в XML иногда нормализуются — после загрузки проверяйте пару документов с многострочными комментариями. Если переносы превратились в пробелы, корректировать нужно правило выгрузки, а не данные в базе-приёмнике.
Ограничения и частые проблемы
Несколько границ, о которых полезно знать заранее. Длина строковых реквизитов ограничена настройкой в конфигураторе; строки неограниченной длины нельзя индексировать и использовать в некоторых отборах, поэтому для длинных текстов выбирают осознанно. В веб-клиенте сочетания клавиш могут перехватываться браузером — если Ctrl+Enter не срабатывает, проверьте поведение в тонком клиенте.
В мобильном клиенте и на части управляемых форм многострочный ввод выглядит иначе, а перенос в таблицах может не поддерживаться вовсе. Если печатная форма критична, финальную проверку всегда делайте на том клиенте и с теми данными, с которыми работают пользователи.
Что важно запомнить
Ручной перенос строки — Ctrl+Enter в многострочном поле; в печатных формах включают «Размещение текста — Переносить» плюс автовысоту строки; в коде строки разделяют через Символы.ПС. Любые массовые изменения текста и правки макетов делайте после резервной копии и проверяйте на реальных длинных данных.
Частые вопросы
Почему Enter не переносит строку в поле комментария?
Enter в управляемых формах часто завершает редактирование или переводит фокус. Используйте Ctrl+Enter — это штатное сочетание для перевода строки внутри многострочного поля. Если и оно не работает, проверьте, не перехватывает ли сочетание браузер (в веб-клиенте) или настройки самого поля.
Как сделать, чтобы длинное наименование переносилось в печатной форме счёта?
Откройте макет печатной формы, выделите ячейку с наименованием, в свойствах установите «Размещение текста» — «Переносить» и включите автовысоту строки. После этого сформируйте документ с самым длинным наименованием из базы и проверьте предпросмотр.
Чем Символы.ПС отличается от Символы.ВК?
Символы.ПС — это перевод строки (LF), Символы.ВК — возврат каретки (CR). Для отображения внутри 1С достаточно ПС; для текстовых файлов, которые будут открывать в Windows, надёжнее комбинация ВК+ПС. Использование одного только ВК переноса не даёт.
Почему после загрузки из файла весь текст оказался в одной строке?
Чаще всего файл создан в системе, где строки разделены только LF или только CR, а обработка загрузки ожидает другой разделитель. Проверьте разделители в исходном файле и используйте СтрЧислоСтрок()/СтрПолучитьСтроку(), которые понимают оба варианта, либо приведите файл к единому формату перед загрузкой.
Можно ли хранить переносы строк в реквизите «Наименование»?
Нет, наименование — однострочный реквизит, платформа удалит символы переноса при записи. Для многострочного текста используйте реквизиты типа «Комментарий», «Описание» или добавьте собственный строковый реквизит неограниченной длины с многострочным режимом.
Изменения макета пропали после обновления конфигурации. Что делать?
Вы правили типовой макет напрямую, и обновление вернуло его к поставляемому виду. Восстановите правки и перенесите их в расширение конфигурации или в механизм пользовательских макетов, если конфигурация его поддерживает — тогда изменения переживут обновления.