Как настроить макет табличного документа в 1С: автоширина колонок, перенос текста и управление пунктирными линиями?

Программист IT и автоматизация бизнеса
← На главную

При разработке или редактировании печатных форм в 1С часто возникают вопросы, связанные с визуальным оформлением табличных документов — для этого подойдёт инструмент визуальной настройки макетов печатных форм. Макеты могут вести себя неочевидно, особенно когда дело касается динамических данных. В этой статье мы рассмотрим подробнее три самых распространенных вопроса: как сделать ширину столбца зависимой от содержимого, как настроить перенос текста по словам в шапке и что делать с загадочными пунктирными линиями. Разберем по шагам каждую из этих задач, чтобы вы могли уверенно управлять внешним видом ваших отчетов и документов.

1. Настройка ширины колонки в зависимости от содержимого

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

В пользовательском режиме

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

Использование возможностей СКД

Если ваш отчет строится на базе Системы компоновки данных (СКД), то там предусмотрены более гибкие настройки макетов. В настройках полей можно задать свойства МинимальнаяШирина и МаксимальнаяШирина. Это позволяет системе интеллектуально управлять размером колонок при выводе результата, автоматически расширяя их до заданного максимума, если текст слишком длинный.

Программный расчет (расчетный метод)

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


// Примерный алгоритм расчета ширины колонки
ДлинаТекста = СтрДлина(ЗначениеДляВывода);
Коэффициент = 1.2; // Подбирается опытным путем в зависимости от шрифта
ШиринаКолонки = ДлинаТекста * Коэффициент;

// Установка ширины для конкретной области
ОбластьМакета.ШиринаКолонки = ШиринаКолонки;
ТабличныйДокумент.Вывести(ОбластьМакета);

Использование формата строк

Еще один важный механизм — ФорматСтрок. Если вам нужно изменить ширину колонки только для определенной области, чтобы не сломать сетку всего остального макета, выделите нужные строки целиком. Затем зажмите клавишу Ctrl и измените ширину ячейки. Платформа предложит создать новый формат строк. Таким образом, в одном и том же макете колонки в разных строках смогут иметь совершенно разную ширину.

2. Как сделать перенос текста в ячейке по словам

Вторая частая проблема — текст обрезается или вылезает за границы, вместо того чтобы аккуратно переноситься на новую строку. Выясним причину и настроим правильное поведение ячеек.

  1. Базовая настройка свойств: Выделите нужную ячейку (например, в области "ШапкаТаблицы"). В палитре свойств найдите свойство РазмещениеТекста и установите его в значение Переносить. При этом высота самой строки должна оставаться в значении Авто. Если ширина колонки зафиксирована, текст начнет переноситься автоматически, увеличивая высоту всей строки.
  2. Нюанс с объединенными ячейками: Базовая настройка отлично работает для одиночных ячеек. Но если ваша ячейка объединенная по горизонтали, платформа 1С часто не может корректно рассчитать автоматическую высоту строки, и часть текста "съедается". Разработчики обходят это так: создают невидимую (скрытую) одиночную колонку нужной ширины рядом, дублируют в нее этот же текст и устанавливают перенос. Невидимая колонка раздвигает строку по высоте правильно, и текст в объединенной ячейке отображается полностью.
  3. Особенности ячеек типа "Шаблон": Если в ячейке установлен тип заполнения Шаблон (текст перемешан с параметрами в квадратных скобках, например "Договор № [Номер]"), в конфигураторе может визуально казаться, что текст не переносится. Это нормальное поведение. Итоговый расчет переносов и высоты произойдет только в режиме 1С:Предприятие, когда в шаблон подставятся реальные данные.
  4. Дополнительные символы: В крайних случаях (или если текст статический) можно добавлять в текст ячейки символы возврата каретки (ВК), принудительно разрывая строку в нужных местах.

Для улучшения визуального отображения переносимого текста рекомендуем также использовать настройку ВертикальноеПоложение (установив значение "Верх") и задать отступы (например, АвтоОтступ). Для этой задачи есть обработка оформления макетов сканами печатей и подписей.

3. Как управлять пунктирными линиями в макете

Синие пунктирные линии в редакторе табличных документов 1С часто вызывают вопросы. Они могут появляться сами по себе и мешать визуально оценивать макет. Рассмотрим подробнее, что они означают и как их двигать.

Что это за линии?

Пунктирные линии отображают либо границы печати (показывают, сколько данных влезет на один лист формата А4 при текущих настройках принтера), либо жестко заданные ручные разрывы страниц. Также они могут обозначать "рабочую область" макета с учетом крайних измененных строк и столбцов.

Как сдвинуть или убрать границы печати:

Если линии показывают границы листа, их можно сдвинуть, изменив параметры страницы. Зайдите в главное меню: Файл -> Параметры страницы (или Таблица -> Параметры страницы). Попробуйте уменьшить поля (выставив их в 0), изменить масштаб или установить галочку "По ширине страницы". После сохранения настроек пунктирные линии автоматически сдвинутся.

Как удалить ручные разрывы страниц:

Если линия была поставлена вручную (принудительный разрыв), просто потянуть за нее мышкой не получится. Чтобы ее удалить, разберем по шагам правильные действия:

  1. Выделите ячейку, которая находится строго под горизонтальной пунктирной линией (или справа от вертикальной линии).
  2. Перейдите в меню: Таблица -> Настройки печати.
  3. Нажмите кнопку Удалить разрыв страницы.

Что делать со "сломанными" макетами?

Иногда при долгом редактировании макета (когда вы много раз добавляли, объединяли и удаляли колонки) пунктирных линий становится слишком много. Они могут вести себя непредсказуемо из-за множественного пересечения форматов строк. В таких "запущенных" случаях программистам бывает проще выделить все нужные области, скопировать их и вставить в новый, чистый макет, чем пытаться выискивать и удалять фантомные разрывы.

Надеемся, что теперь работа с макетами в 1С станет для вас более предсказуемой и удобной — для оформления документов пригодится инструмент вывода факсимиле в табличные документы.

← На главную