Документы и Печать · 11 мин
Как переносить текст в ячейке 1С
Как переносить текст в ячейке 1С: свойство «Размещение текста», символ ПС, перенос в табличном документе, макетах и печатных формах. Пошаговые инструкции.
Перенос текста в ячейке — одна из самых частых задач при работе с табличными документами 1С: длинное наименование товара, адрес или комментарий не помещаются в ширину колонки и либо обрезаются, либо «наползают» на соседние ячейки. Платформа 1С:Предприятие умеет переносить текст автоматически, но поведение зависит от того, где находится ячейка: в табличном документе на форме, в макете печатной формы или в таблице значений.
Существует несколько способов переноса: включение свойства «Размещение текста» у ячейки, принудительный разрыв строки символом перевода строки, автоподбор высоты строки и программная установка параметров через встроенный язык. Каждый способ решает свою задачу, и ошибка выбора приводит к тому, что печатная форма «разъезжается» или текст пропадает.
Ниже разобраны все рабочие варианты: от простой настройки мышкой до кода для разработчика, а также типичные проблемы — например, когда перенос включён, но высота строки не увеличивается и текст остаётся обрезанным.
Как включить перенос текста через свойства ячейки
Основной способ — свойство «Размещение текста» (в английской терминологии TextPlacement). Оно доступно у ячеек табличного документа, открытого на форме, и у ячеек макета в конфигураторе. По умолчанию стоит значение «Авто», при котором длинный текст либо обрезается по границе ячейки, либо отображается поверх соседних пустых ячеек.
Порядок действий: выделите нужную ячейку или диапазон, щёлкните правой кнопкой мыши и выберите «Свойства» (или нажмите Alt+Enter). В палитре свойств найдите пункт «Размещение текста» и установите значение «Переносить». Текст сразу перестроится по ширине ячейки, если высоте строки есть куда расти.
Если ячеек много — например, целая колонка с наименованиями — выделяйте диапазон целиком: свойство применится ко всем выделенным ячейкам одновременно. Это удобно при подготовке шаблонов отчётов и печатных форм.
- 1Откройте табличный документ или макет в конфигураторе
- 2Выделите ячейку или диапазон с длинным текстом
- 3Правый клик → «Свойства» (Alt+Enter)
- 4Найдите «Размещение текста» и установите «Переносить»
- 5Включите «Автовысота» у строки или задайте высоту вручную
- 6Проверьте результат в режиме предпросмотра печати
Почему текст переносится, но всё равно обрезан
Самая частая жалоба: свойство «Переносить» включено, а видимой части текста не прибавилось. Причина почти всегда в фиксированной высоте строки. Если высота задана жёстко (в свойствах строки стоит конкретное значение и снят флаг автовысоты), перенесённый текст просто не помещается по вертикали и обрезается снизу.
Решение — включить автоподбор высоты. В палитре свойств строки (выделите заголовок строки слева) установите свойство «Высота» в 0 или активируйте «Автовысота», если оно доступно в данной версии платформы. В макетах печатных форм автовысота срабатывает при выводе области, если высота строки макета не зафиксирована.
Вторая возможная причина — объединённые ячейки. Если ячейка объединена с соседними по горизонтали, перенос работает по суммарной ширине, но автовысота для объединённых областей иногда рассчитывается некорректно. В таком случае задайте высоту строки явно с запасом.
Как проверить результат
Весь текст виден в несколько строк внутри ячейки
Видна только первая строка, остальное обрезано
Строка автоматически увеличилась под объём текста
Высота не меняется — проверьте автовысоту
На листе текст перенесён и читается полностью
В предпросмотре текст обрезан или налезает на соседние области
Принудительный перенос строки в нужном месте
Автоматический перенос разбивает текст по ширине ячейки, но иногда нужно задать разрыв в конкретном месте: например, вывести адрес в две строки или отделить ФИО от должности. Для этого в текст вставляется символ перевода строки.
При ручном редактировании текста прямо в ячейке табличного документа нажмите Ctrl+Enter в том месте, где нужен разрыв. Внимание: одиночный Enter завершает редактирование ячейки, поэтому используйте именно комбинацию с Ctrl.
При программном формировании текста используйте конструкцию Символы.ПС (перевод строки) или Символы.ВК + Символы.ПС для совместимости при выгрузке во внешние форматы. Пример: ТекстЯчейки = "ООО ""Ромашка""" + Символы.ПС + "ИНН 7701234567"; — в ячейке появится две строки. Чтобы перенос отобразился, у ячейки всё равно должно быть включено свойство «Переносить» либо достаточная высота строки.
Перенос в макетах и печатных формах
При разработке печатной формы в конфигураторе перенос настраивается в макете табличного документа. Откройте макет, выделите ячейки с параметрами (например, {Наименование}) и установите «Размещение текста» — «Переносить». При выводе области методом ТабличныйДокумент.Вывести() платформа подставит значение параметра и перенесёт текст.
Если длина значения заранее неизвестна (комментарии, адреса, спецификации), не фиксируйте высоту строки макета: оставьте её минимальной, а автовысоту включите. Тогда область при выводе растянется под фактический объём текста, и печатная форма не «распадётся».
Для программной установки свойства используйте объект области: Область = ТабДок.Область("R5C2"); Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;. Это удобно, когда одна и та же форма печатается с разными настройками в зависимости от условий.
Область = ТабДок.Область("R5C2:R5C4");
Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
Область.Текст = "Длинное наименование" + Символы.ПС + "с уточнением";Перенос в таблицах на форме и в полях ввода
Важно различать табличный документ и таблицу формы (например, список товаров в документе). В таблице формы у колонки нет свойства «перенос» в том же виде: длинный текст в ячейке списка обычно обрезается с многоточием, и это нормальное поведение платформы. Полностью текст виден при входе в режим редактирования ячейки или через всплывающую подсказку.
Для многострочного ввода в поле формы используйте свойство поля «Многострочный режим» (МногострочноеПоле) — тогда пользователь сможет вводить текст с переносами через Enter, и поле отобразит несколько строк. Дополнительно свойство «Растягивать по вертикали» помогает полю подстраиваться под содержимое.
В динамических списках и отчётах СКД перенос настраивается через оформление: в настройках отчёта на вкладке «Другие настройки» есть параметр «Размещение текста», который можно установить в «Переносить» для выбранных полей. Это избавляет от необходимости править схему компоновки в конфигураторе.
Как выбрать действие
Частые ошибки и ограничения
Первая ошибка — включение переноса без автовысоты. Текст формально переносится, но видна только первая строка, и пользователь считает, что данные потерялись. Всегда проверяйте результат в предпросмотре печати, а не только на экране.
Вторая ошибка — перенос в ячейках, участвующих в объединении по вертикали. При объединении нескольких строк в одну ячейку автовысота отдельных строк перестаёт корректно работать, и текст может обрезаться. В таких случаях задавайте суммарную высоту явно.
Третья типичная ситуация — ожидание переноса в таблице значений или таблице формы. Эти объекты предназначены для данных, а не для оформления: «красивый» многострочный вывод делается через табличный документ или отчёт СКД. Попытки добиться переноса в списке формы — тупиковый путь.
Также учтите ограничение при выгрузке: при сохранении табличного документа в Excel переносы обычно сохраняются, а вот при выгрузке в текстовые форматы или CSV символы перевода строки могут нарушить структуру файла — перед выгрузкой заменяйте Символы.ПС на пробел или другое безопасное значение.
Проверка результата перед печатью и выгрузкой
После настройки переноса обязательно откройте предварительный просмотр печатной формы. Экранное отображение табличного документа и результат на листе могут отличаться: на печати учитываются поля, масштаб и разбиение на страницы, и перенесённый текст иногда сдвигает границы областей.
Проверьте крайние случаи: самое длинное наименование в базе, пустое значение, значение с уже встроенными переводами строк. Если форма выводится циклом (строки табличной части), убедитесь, что автовысота срабатывает для каждой строки, а не только для первой.
При изменении типовой печатной формы в конфигураторе помните о рисках: правки макета в типовой конфигурации усложняют обновление. Безопаснее использовать внешнюю печатную форму или расширение конфигурации — тогда доработка не потеряется при обновлении релиза.
Что важно запомнить
Перенос текста в ячейке 1С включается свойством «Размещение текста» = «Переносить» и работает только в паре с достаточной высотой строки. Принудительный разрыв задаётся символом Символы.ПС или Ctrl+Enter. В таблицах формы перенос недоступен — для многострочного вывода используйте табличный документ или отчёт СКД.
Частые вопросы
Почему свойство «Переносить» включено, а текст всё равно в одну строку?
Скорее всего, ширина ячейки достаточна для всего текста, и перенос просто не требуется. Если же текст явно длиннее ширины, но не переносится, проверьте, не объединена ли ячейка и не установлено ли размещение «Забивать» или «Обрезать» у соседних ячеек, влияющих на отображение.
Как перенести текст в ячейке макета, если значение подставляется параметром?
Настройте перенос у ячейки макета заранее: свойство применяется к ячейке, а не к тексту, поэтому при подстановке параметра длинное значение автоматически перенесётся. Дополнительно убедитесь, что у строки макета не зафиксирована высота.
Можно ли сделать перенос в ячейке табличной части документа?
Нет, таблица формы не поддерживает многострочное отображение ячеек. Длинный текст виден при входе в редактирование ячейки. Если нужен полноценный многострочный просмотр, добавьте на форму отдельное многострочное поле, связанное с тем же реквизитом.
Как программно узнать, поместится ли текст в ячейку?
Точного встроенного метода измерения текста под конкретный шрифт и ширину ячейки в платформе нет. Практический подход — включить перенос и автовысоту, чтобы платформа сама рассчитала размеры, либо ориентироваться на длину строки функцией СтрДлина() с запасом.
Сохранятся ли переносы при сохранении табличного документа в Excel?
Да, при сохранении в формате Excel переносы и многострочный текст в ячейках, как правило, сохраняются корректно. Проблемы возникают с текстовыми форматами (TXT, CSV), где символ перевода строки ломает структуру файла — там переносы лучше предварительно заменить.
Чем Символы.ПС отличается от Символы.ВК?
Символы.ПС — это перевод строки (LF), достаточный внутри платформы 1С. Символы.ВК — возврат каретки (CR), который в паре с ПС (CR+LF) используется в форматах Windows, например при обмене текстовыми файлами. Для отображения в ячейке табличного документа достаточно одного Символы.ПС.