Разработка и Конфигурация · 9 мин
Размещение текста в 1С: как настроить перенос и отображение строк
Что такое размещение текста в 1С: свойства ячеек табличного документа, автоперенос, обрезка строк, настройка макетов и печатных форм с примерами кода.
При работе с табличными документами и макетами в 1С пользователи часто сталкиваются с ситуацией: длинный текст в ячейке обрезается, наезжает на соседние колонки или вовсе не отображается полностью. За это поведение отвечает свойство «Размещение текста» — параметр, который определяет, как строка умещается в границы ячейки.
Запрос «размещение текста забивать» обычно возникает в двух случаях: когда нужно «забить» (заполнить) ячейку текстом так, чтобы он корректно переносился, и когда нужно разобраться с параметром РазмещениеТекста в свойствах ячейки табличного документа. Ниже разобраны оба сценария — и через интерфейс конфигуратора, и программно на встроенном языке.
Материал применим к управляемым и обычным формам, макетам печатных форм, а также к программному формированию табличных документов в типовых и самописных конфигурациях.
Что такое свойство «Размещение текста» в 1С
У каждой ячейки табличного документа есть набор свойств оформления: шрифт, цвет, границы, горизонтальное и вертикальное положение. Среди них — параметр «Размещение текста» (во встроенном языке — РазмещениеТекста, тип ТипРазмещенияТекстаТабличногоДокумента). Он определяет поведение строки, которая не помещается в ширину ячейки.
Доступны три основных варианта размещения:
Именно вариант «Забивать» чаще всего вызывает вопросы. Он полезен, когда значение должно визуально занять несколько колонок без объединения ячеек: например, длинное наименование товара в печатной форме, где соседние колонки пусты. Если соседняя ячейка заполнена, текст обрежется на её границе.
Настройка размещения текста через конфигуратор
Самый простой способ — изменить свойство в макете. Откройте конфигуратор, найдите нужный макет (общий макет или макет объекта), выделите ячейку или диапазон и откройте палитру свойств по правой кнопке мыши.
- 1Откройте макет табличного документа в конфигураторе
- 2Выделите ячейку или диапазон ячеек с текстом
- 3В палитре свойств найдите параметр «Размещение текста»
- 4Выберите значение: Переносить, Обрезать или Забивать
- 5Проверьте высоту строки — для переноса включите автоподбор или задайте достаточную высоту
- 6Сохраните макет и сформируйте печатную форму для проверки
Обратите внимание: свойство применяется к ячейке, а не к области целиком. Если макет состоит из именованных областей, менять параметр нужно в каждой области, где выводится длинный текст — например, в строке табличной части и в итоговой строке.
Если текст выводится через параметр макета (фигурные скобки в ячейке, например [НаименованиеТовара]), размещение текста настраивается у той ячейки, где размещён параметр, а не у значения в коде.
Программное управление размещением текста
При формировании табличного документа кодом свойство задаётся через объект ОбластьЯчеекТабличногоДокумента. Типовой пример:
ТабДок = Новый ТабличныйДокумент;
Область = ТабДок.Область("R2C2");
Область.Текст = "Длинное наименование номенклатуры с характеристикой";
Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
Для режима «Забивать» используется значение ТипРазмещенияТекстаТабличногоДокумента.Забивать, для обрезки — Обрезать. Свойство можно менять и у областей, полученных из макета методом ПолучитьОбласть, до их вывода в итоговый документ.
Если текст переносится, но обрезается по вертикали, проблема не в размещении, а в высоте строки. В этом случае задайте свойству ВысотаСтроки области значение 0 (автоподбор) либо увеличьте высоту вручную. Для макетов также проверьте, не зафиксирована ли высота строки в самом макете.
Когда использовать «Забивать», а когда — перенос или объединение
Выбор режима зависит от структуры печатной формы. Один и тот же результат можно получить разными способами, но с разными ограничениями.
Сравнение подходов
Подходит, когда соседние ячейки пусты. Ограничение: текст обрежется, если соседняя ячейка заполнена или имеет границы.
Подходит для многострочного вывода в фиксированной колонке. Ограничение: требует достаточной высоты строки, увеличивает высоту документа.
Надёжный вариант для шапок и итогов. Ограничение: меняет структуру макета, усложняет программную адресацию областей.
Подходит для служебных колонок, где важно начало строки. Ограничение: часть данных пользователь не увидит.
Практическое правило: в строках табличной части с переменной длиной данных используйте перенос с автовысотой, в шапках и подписях — объединение, а «Забивать» — только там, где соседние колонки гарантированно пусты, например в примечаниях к документу.
Типичные проблемы и их диагностика
Чаще всего жалобы выглядят так: текст обрезан, текст наезжает на соседнюю колонку, печатная форма «расползается» по высоте. Каждый симптом указывает на конкретную причину.
Как проверить результат
Вся строка видна, переносы на границах слов
Текст обрывается многоточием или на середине слова
В предпросмотре строка выглядит так же, как в табличном документе
При печати или в PDF текст обрезается сильнее — проверьте масштаб и поля страницы
Текст занимает пустые соседние колонки полностью
Текст обрывается на границе — соседняя ячейка заполнена или содержит пробел
Многострочный текст виден целиком
Видна только первая строка — зафиксирована высота строки
Отдельный случай — невидимые символы. Если ячейка в режиме «Забивать» неожиданно обрезается, проверьте соседние ячейки на пробелы и пустые строки: формально заполненная пробелом ячейка считается занятой и блокирует забивание. Очистите её содержимое полностью.
Ограничения и риски при изменении макетов
При доработке типовых макетов помните: изменения в конфигурации поставщика могут быть потеряны при обновлении, если объект не снят с поддержки корректно или не вынесен в расширение. Рекомендуемый путь — доработка печатных форм через расширение конфигурации или через механизм внешних печатных форм, если он предусмотрен в вашей конфигурации.
Также учтите, что режим «Забивать» не работает через границы объединённых областей и ячеек с явно заданными рамками — визуально текст остановится на линии. Если печатная форма строго регламентирована (счета-фактуры, УПД), сверяйте результат с утверждённым образцом.
Что важно запомнить
Размещение текста в 1С управляется свойством ячейки с тремя режимами: Переносить, Обрезать, Забивать. «Забивать» растягивает текст на пустые соседние ячейки, перенос требует автовысоты строки, а надёжнее всего проверять результат в предпросмотре печати на длинных тестовых данных.
Частые вопросы
Почему текст переносится, но всё равно обрезан?
Почти всегда причина в фиксированной высоте строки. Установите высоту строки области в 0 (автоподбор) или увеличьте её вручную. Проверьте также, что перенос включён именно у той ячейки, где выводится параметр.
Чем «Забивать» отличается от объединения ячеек?
«Забивать» не меняет структуру макета: текст просто отображается поверх пустых соседних ячеек. Объединение физически создаёт одну большую ячейку, что надёжнее, но усложняет программную адресацию областей.
Почему «Забивать» обрезает текст, хотя соседняя ячейка пустая?
Проверьте соседнюю ячейку на пробелы и пустые строки — формально заполненная ячейка блокирует забивание. Также текст остановится на ячейке с заданными границами или входящей в объединённую область.
Как задать размещение текста программно?
Через свойство области: Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;. Свойство доступно у любой области табличного документа, включая области, полученные из макета.
Влияет ли размещение текста на выгрузку в Excel?
При сохранении табличного документа в Excel перенос и обрезка обычно сохраняются как свойства ячейки, но режим «Забивать» может отобразиться иначе. Проверяйте выгруженный файл, если он передаётся дальше.
Можно ли настроить размещение текста без доработки конфигурации?
Да, если конфигурация поддерживает редактирование печатных форм пользователем или внешние печатные формы. В остальных случаях потребуется изменение макета в конфигураторе или расширение.