При разработке или редактировании печатных форм в 1С часто возникают вопросы, связанные с визуальным оформлением табличных документов — для этого подойдёт инструмент визуальной настройки макетов печатных форм. Макеты могут вести себя неочевидно, особенно когда дело касается динамических данных. В этой статье мы рассмотрим подробнее три самых распространенных вопроса: как сделать ширину столбца зависимой от содержимого, как настроить перенос текста по словам в шапке и что делать с загадочными пунктирными линиями. Разберем по шагам каждую из этих задач, чтобы вы могли уверенно управлять внешним видом ваших отчетов и документов.
Часто возникает необходимость, чтобы ширина колонки автоматически подстраивалась под длину текста, как мы привыкли это делать в офисных табличных редакторах. Проанализируем ситуацию с разных сторон, так как в 1С нет одной универсальной "волшебной кнопки" (поможет конструктор макетов печатных форм без программирования) для макетов обычных печатных форм, но есть несколько действенных подходов.
В пользовательском режиме
Если табличный документ уже сформирован и выведен на экран пользователя, вы можете дважды кликнуть левой кнопкой мыши по правой границе колонки в шапке (аналогично популярным табличным редакторам). Платформа 1С автоматически рассчитает и подгонит ширину столбца под самое длинное значение, которое в нем находится.
Использование возможностей СКД
Если ваш отчет строится на базе Системы компоновки данных (СКД), то там предусмотрены более гибкие настройки макетов. В настройках полей можно задать свойства МинимальнаяШирина и МаксимальнаяШирина. Это позволяет системе интеллектуально управлять размером колонок при выводе результата, автоматически расширяя их до заданного максимума, если текст слишком длинный.
Программный расчет (расчетный метод)
Для классических макетов встроенного свойства "автоширина" не существует. Однако мы можем решить эту задачу программно. Посмотрим на пример того, как можно вычислить количество символов и программно установить ширину колонки перед выводом области в документ:
// Примерный алгоритм расчета ширины колонки
ДлинаТекста = СтрДлина(ЗначениеДляВывода);
Коэффициент = 1.2; // Подбирается опытным путем в зависимости от шрифта
ШиринаКолонки = ДлинаТекста * Коэффициент;
// Установка ширины для конкретной области
ОбластьМакета.ШиринаКолонки = ШиринаКолонки;
ТабличныйДокумент.Вывести(ОбластьМакета);
Использование формата строк
Еще один важный механизм — ФорматСтрок. Если вам нужно изменить ширину колонки только для определенной области, чтобы не сломать сетку всего остального макета, выделите нужные строки целиком. Затем зажмите клавишу Ctrl и измените ширину ячейки. Платформа предложит создать новый формат строк. Таким образом, в одном и том же макете колонки в разных строках смогут иметь совершенно разную ширину.
Вторая частая проблема — текст обрезается или вылезает за границы, вместо того чтобы аккуратно переноситься на новую строку. Выясним причину и настроим правильное поведение ячеек.
РазмещениеТекста и установите его в значение Переносить. При этом высота самой строки должна оставаться в значении Авто. Если ширина колонки зафиксирована, текст начнет переноситься автоматически, увеличивая высоту всей строки.Шаблон (текст перемешан с параметрами в квадратных скобках, например "Договор № [Номер]"), в конфигураторе может визуально казаться, что текст не переносится. Это нормальное поведение. Итоговый расчет переносов и высоты произойдет только в режиме 1С:Предприятие, когда в шаблон подставятся реальные данные.Для улучшения визуального отображения переносимого текста рекомендуем также использовать настройку ВертикальноеПоложение (установив значение "Верх") и задать отступы (например, АвтоОтступ). Для этой задачи есть обработка оформления макетов сканами печатей и подписей.
Синие пунктирные линии в редакторе табличных документов 1С часто вызывают вопросы. Они могут появляться сами по себе и мешать визуально оценивать макет. Рассмотрим подробнее, что они означают и как их двигать.
Что это за линии?
Пунктирные линии отображают либо границы печати (показывают, сколько данных влезет на один лист формата А4 при текущих настройках принтера), либо жестко заданные ручные разрывы страниц. Также они могут обозначать "рабочую область" макета с учетом крайних измененных строк и столбцов.
Как сдвинуть или убрать границы печати:
Если линии показывают границы листа, их можно сдвинуть, изменив параметры страницы. Зайдите в главное меню: Файл -> Параметры страницы (или Таблица -> Параметры страницы). Попробуйте уменьшить поля (выставив их в 0), изменить масштаб или установить галочку "По ширине страницы". После сохранения настроек пунктирные линии автоматически сдвинутся.
Как удалить ручные разрывы страниц:
Если линия была поставлена вручную (принудительный разрыв), просто потянуть за нее мышкой не получится. Чтобы ее удалить, разберем по шагам правильные действия:
Что делать со "сломанными" макетами?
Иногда при долгом редактировании макета (когда вы много раз добавляли, объединяли и удаляли колонки) пунктирных линий становится слишком много. Они могут вести себя непредсказуемо из-за множественного пересечения форматов строк. В таких "запущенных" случаях программистам бывает проще выделить все нужные области, скопировать их и вставить в новый, чистый макет, чем пытаться выискивать и удалять фантомные разрывы.
Надеемся, что теперь работа с макетами в 1С станет для вас более предсказуемой и удобной — для оформления документов пригодится инструмент вывода факсимиле в табличные документы.