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