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

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

Как переносить текст в ячейке 1С

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

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

Существует несколько способов переноса: включение свойства «Размещение текста» у ячейки, принудительный разрыв строки символом перевода строки, автоподбор высоты строки и программная установка параметров через встроенный язык. Каждый способ решает свою задачу, и ошибка выбора приводит к тому, что печатная форма «разъезжается» или текст пропадает.

Ниже разобраны все рабочие варианты: от простой настройки мышкой до кода для разработчика, а также типичные проблемы — например, когда перенос включён, но высота строки не увеличивается и текст остаётся обрезанным.

Как включить перенос текста через свойства ячейки

Основной способ — свойство «Размещение текста» (в английской терминологии TextPlacement). Оно доступно у ячеек табличного документа, открытого на форме, и у ячеек макета в конфигураторе. По умолчанию стоит значение «Авто», при котором длинный текст либо обрезается по границе ячейки, либо отображается поверх соседних пустых ячеек.

Порядок действий: выделите нужную ячейку или диапазон, щёлкните правой кнопкой мыши и выберите «Свойства» (или нажмите Alt+Enter). В палитре свойств найдите пункт «Размещение текста» и установите значение «Переносить». Текст сразу перестроится по ширине ячейки, если высоте строки есть куда расти.

Если ячеек много — например, целая колонка с наименованиями — выделяйте диапазон целиком: свойство применится ко всем выделенным ячейкам одновременно. Это удобно при подготовке шаблонов отчётов и печатных форм.

Порядок действий
  1. 1
    Откройте табличный документ или макет в конфигураторе
  2. 2
    Выделите ячейку или диапазон с длинным текстом
  3. 3
    Правый клик → «Свойства» (Alt+Enter)
  4. 4
    Найдите «Размещение текста» и установите «Переносить»
  5. 5
    Включите «Автовысота» у строки или задайте высоту вручную
  6. 6
    Проверьте результат в режиме предпросмотра печати

Почему текст переносится, но всё равно обрезан

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

Решение — включить автоподбор высоты. В палитре свойств строки (выделите заголовок строки слева) установите свойство «Высота» в 0 или активируйте «Автовысота», если оно доступно в данной версии платформы. В макетах печатных форм автовысота срабатывает при выводе области, если высота строки макета не зафиксирована.

Вторая возможная причина — объединённые ячейки. Если ячейка объединена с соседними по горизонтали, перенос работает по суммарной ширине, но автовысота для объединённых областей иногда рассчитывается некорректно. В таком случае задайте высоту строки явно с запасом.

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

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

Отображение текста
Норма

Весь текст виден в несколько строк внутри ячейки

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

Видна только первая строка, остальное обрезано

Высота строки
Норма

Строка автоматически увеличилась под объём текста

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

Высота не меняется — проверьте автовысоту

Предпросмотр печати
Норма

На листе текст перенесён и читается полностью

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

В предпросмотре текст обрезан или налезает на соседние области

Принудительный перенос строки в нужном месте

Автоматический перенос разбивает текст по ширине ячейки, но иногда нужно задать разрыв в конкретном месте: например, вывести адрес в две строки или отделить ФИО от должности. Для этого в текст вставляется символ перевода строки.

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

При программном формировании текста используйте конструкцию Символы.ПС (перевод строки) или Символы.ВК + Символы.ПС для совместимости при выгрузке во внешние форматы. Пример: ТекстЯчейки = "ООО ""Ромашка""" + Символы.ПС + "ИНН 7701234567"; — в ячейке появится две строки. Чтобы перенос отобразился, у ячейки всё равно должно быть включено свойство «Переносить» либо достаточная высота строки.

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

При разработке печатной формы в конфигураторе перенос настраивается в макете табличного документа. Откройте макет, выделите ячейки с параметрами (например, {Наименование}) и установите «Размещение текста» — «Переносить». При выводе области методом ТабличныйДокумент.Вывести() платформа подставит значение параметра и перенесёт текст.

Если длина значения заранее неизвестна (комментарии, адреса, спецификации), не фиксируйте высоту строки макета: оставьте её минимальной, а автовысоту включите. Тогда область при выводе растянется под фактический объём текста, и печатная форма не «распадётся».

Для программной установки свойства используйте объект области: Область = ТабДок.Область("R5C2"); Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;. Это удобно, когда одна и та же форма печатается с разными настройками в зависимости от условий.

bsl
Область = ТабДок.Область("R5C2:R5C4");
Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
Область.Текст = "Длинное наименование" + Символы.ПС + "с уточнением";

Перенос в таблицах на форме и в полях ввода

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

Для многострочного ввода в поле формы используйте свойство поля «Многострочный режим» (МногострочноеПоле) — тогда пользователь сможет вводить текст с переносами через Enter, и поле отобразит несколько строк. Дополнительно свойство «Растягивать по вертикали» помогает полю подстраиваться под содержимое.

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

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

Как выбрать действие

Ячейка табличного документа или макетаУстановите «Размещение текста» = «Переносить» и включите автовысоту строки
Нужен разрыв строки в строго заданном местеВставьте Символы.ПС в коде или Ctrl+Enter при ручном вводе
Длинный текст в списке документа или справочникаОграничьтесь просмотром при редактировании — перенос в таблице формы платформой не поддерживается
Отчёт на СКД обрезает длинные поляВ настройках отчёта установите «Размещение текста» = «Переносить» для нужного поля

Частые ошибки и ограничения

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

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

Третья типичная ситуация — ожидание переноса в таблице значений или таблице формы. Эти объекты предназначены для данных, а не для оформления: «красивый» многострочный вывод делается через табличный документ или отчёт СКД. Попытки добиться переноса в списке формы — тупиковый путь.

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

Типичные ошибки
01
Включили «Переносить», но забыли автовысоту — текст обрезан снизу
02
Используют Enter вместо Ctrl+Enter при ручном вводе — редактирование завершается вместо переноса
03
Пытаются включить перенос в таблице формы — там это свойство недоступно
04
Оставляют Символы.ПС при выгрузке в CSV — строки файла «разваливаются»
05
Фиксируют высоту строки макета — печатная форма обрезает длинные значения

Проверка результата перед печатью и выгрузкой

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

Проверьте крайние случаи: самое длинное наименование в базе, пустое значение, значение с уже встроенными переводами строк. Если форма выводится циклом (строки табличной части), убедитесь, что автовысота срабатывает для каждой строки, а не только для первой.

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

Итог

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

Перенос текста в ячейке 1С включается свойством «Размещение текста» = «Переносить» и работает только в паре с достаточной высотой строки. Принудительный разрыв задаётся символом Символы.ПС или Ctrl+Enter. В таблицах формы перенос недоступен — для многострочного вывода используйте табличный документ или отчёт СКД.

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

Почему свойство «Переносить» включено, а текст всё равно в одну строку?

Скорее всего, ширина ячейки достаточна для всего текста, и перенос просто не требуется. Если же текст явно длиннее ширины, но не переносится, проверьте, не объединена ли ячейка и не установлено ли размещение «Забивать» или «Обрезать» у соседних ячеек, влияющих на отображение.

Как перенести текст в ячейке макета, если значение подставляется параметром?

Настройте перенос у ячейки макета заранее: свойство применяется к ячейке, а не к тексту, поэтому при подстановке параметра длинное значение автоматически перенесётся. Дополнительно убедитесь, что у строки макета не зафиксирована высота.

Можно ли сделать перенос в ячейке табличной части документа?

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

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

Точного встроенного метода измерения текста под конкретный шрифт и ширину ячейки в платформе нет. Практический подход — включить перенос и автовысоту, чтобы платформа сама рассчитала размеры, либо ориентироваться на длину строки функцией СтрДлина() с запасом.

Сохранятся ли переносы при сохранении табличного документа в Excel?

Да, при сохранении в формате Excel переносы и многострочный текст в ячейках, как правило, сохраняются корректно. Проблемы возникают с текстовыми форматами (TXT, CSV), где символ перевода строки ломает структуру файла — там переносы лучше предварительно заменить.

Чем Символы.ПС отличается от Символы.ВК?

Символы.ПС — это перевод строки (LF), достаточный внутри платформы 1С. Символы.ВК — возврат каретки (CR), который в паре с ПС (CR+LF) используется в форматах Windows, например при обмене текстовыми файлами. Для отображения в ячейке табличного документа достаточно одного Символы.ПС.