При разработке или доработке печатных форм в 1С:Предприятие, особенно при создании расширений для типовых конфигураций (например, "Управление торговлей", "ERP", "Бухгалтерия") или разработке внешней печатной формы на БСП, мы часто сталкиваемся с задачей добавления новых секций. Это могут быть рекламные блоки, условия договора, факсимиле или дополнительные подписи в подвале документа.
Нередко возникает ситуация: в макете (в конфигураторе) мы нарисовали красивую область, объединили ячейки, написали текст, и все выглядит идеально. Однако при формировании печатной формы в пользовательском режиме верстка "ломается". Широкая ячейка с текстом внезапно сужается, текст переносится некорректно или превращается в узкую колонку. Чтобы понять, как это исправить, важно изучить общие принципы редактирования печатных форм в программах 1С.
Для начала проанализируем, как работает объект ТабличныйДокумент. По умолчанию он пытается построить единую сетку колонок для всего документа сверху донизу. Когда мы выводим области последовательно (Шапка -> Таблица товаров -> Подвал), платформа пытается состыковать ширину колонок новой области с уже выведенными. Иногда это мешает реализовать макет табличного документа с заданными группировками, где требуется особая структура.
Представим ситуацию:
Код вывода области обычно стандартный и выглядит так:
Область = Макет.ПолучитьОбласть("УсловияСчетДоговора");
ТабличныйДокумент.Вывести(Область);
Проблема здесь не в коде, а в настройках самого макета.
Самый правильный и профессиональный способ решения этой проблемы — использование свойства ФорматСтрок (Format rows). Это свойство сообщает платформе, что для конкретных строк макета нужно использовать собственную ширину колонок, игнорируя то, что было выведено выше.
Давайте выполним настройку по шагам:
После установки этого свойства вы увидите визуальное изменение на линейке слева: рядом с номерами строк появится красная скобка или черта. Это означает, что ширина колонок в этой области теперь независима. Вы можете двигать границы колонок в этой секции как угодно, и это не повлияет на другие области, а при печати текст будет отображаться именно так, как вы его настроили.
Если вы новичок и боитесь запутаться в свойствах, можно воспользоваться методом "подглядывания". В типовых макетах уже есть области, которые ведут себя корректно. Например, область "Сумма прописью" или стандартный подвал с подписями.
Эти области уже настроены с включенным Форматом строк. Мы можем поступить следующим образом:
При копировании строк свойство ФорматСтрок переносится вместе с ними, что гарантирует корректное отображение.
Иногда нам нужно вывести большой блок текста (например, публичную оферту, длинную рекламу или очень подробные условия поставки), который вообще не должен зависеть от ячеек таблицы. В этом случае попытки "попасть" в ячейки могут быть утомительными. В сложных случаях, когда возможностей стандартного табличного документа не хватает, разработчики часто используют универсальную печать по шаблонам Word или Libre Office.
Рассмотрим альтернативный вариант — вставку текстового блока как графического объекта:
Преимущества этого метода:
Недостатки:
Даже если вы настроили формат строк, текст может не отображаться полностью. Убедитесь, что выполнены следующие настройки ячеек:
Размещение в значение Переносить. Это позволит тексту занимать несколько строк по высоте, если он не влезает в одну.АвтовысотаСтроки установлено в Истина. Без этого текст обрежется по нижней границе, даже если включен перенос слов.Если ваша добавленная область в печатной форме "плющится" или искажается:
1. Проверьте свойство Формат строк у строк вашей области.
2. Убедитесь, что для ячейки включен Перенос текста.
3. Убедитесь, что у строки включена Автовысота.
Использование свойства ФорматСтрок — это золотой стандарт верстки сложных документов в 1С, позволяющий комбинировать в одном документе таблицы с разной структурой колонок. Это особенно актуально, если вы готовите документацию и вам необходима печать книжкой, либо когда требуется тонкая параметризация печатных форм под контрагентов.