Разработка и Конфигурация · 11 мин
Сквозное выравнивание в 1С: что это и как использовать в макетах
Сквозное выравнивание в 1С — свойство макета печатной формы, выравнивающее ширину колонок в разных областях. Как включить, когда нужно и какие ошибки бывают.
Сквозное выравнивание в 1С — это свойство областей макета табличного документа, которое заставляет платформу выравнивать ширину колонок в разных секциях печатной формы по единой сетке. Без него каждая область (шапка, строка таблицы, подвал) живёт со своими собственными ширинами колонок, и на печати колонки табличной части «уезжают» относительно заголовков. Свойство решает именно эту проблему: колонки с одинаковыми именами в разных областях получают одинаковую ширину.
Свойство чаще всего встречается разработчикам, которые создают или дорабатывают печатные формы документов: счета, акты, накладные, заказ-наряды. Типичная ситуация — в макете есть область «ШапкаТаблицы» с заголовками колонок и область «Строка», которая выводится в цикле. Если ширина колонок в этих областях задана по-разному, итоговый документ выглядит неаккуратно, а при определённых условиях колонки вообще не совпадают.
Найти свойство можно в конфигураторе: откройте макет табличного документа, выделите нужную именованную область, вызовите палитру свойств (правой кнопкой — «Свойства») и найдите пункт «Сквозное выравнивание». Он может принимать значение «Использовать», «Не использовать» или «Авто» в зависимости от версии платформы и контекста. Ниже разберём, как свойство работает, когда его включать и какие ошибки допускают чаще всего.
Как работает сквозное выравнивание в макете
Макет табличного документа в 1С состоит из именованных областей: горизонтальных (строки) и вертикальных (колонки). Каждая область хранит собственные параметры форматирования, включая ширину колонок. Когда программный код выводит области одну за другой через методы ПолучитьОбласть() и Вывести(), платформа по умолчанию не обязана согласовывать их ширины — каждая область отрисовывается так, как настроена в макете.
Если у областей включено сквозное выравнивание и в них есть колонки с одинаковыми именами, платформа при выводе подгоняет ширину этих колонок под общее значение. Фактически создаётся единая вертикальная сетка: колонка «Номенклатура» в шапке, в каждой строке таблицы и в подвале будет иметь одинаковую ширину независимо от того, что задано в отдельных областях.
Важно понимать: выравнивание работает по именам колонок, а не по их порядковому положению. Если в одной области колонка называется «Количество», а в другой — «Колво», платформа не свяжет их между собой, и выравнивания не произойдёт. Это одна из самых частых причин, почему «включил свойство, а ничего не изменилось».
Когда свойство нужно включать
Главный сценарий — печатные формы с табличными частями, где данные выводятся несколькими разными областями. Например, в накладной шапка таблицы выводится один раз, строки номенклатуры — в цикле, итоги — отдельной областью «Подвал». Если ширины колонок в этих трёх областях хоть немного различаются, на печати границы колонок не совпадут, и документ будет выглядеть небрежно.
Второй сценарий — макеты с объединёнными ячейками и сложной шапкой. Когда шапка таблицы собрана из объединённых ячеек (например, «Количество» и «Цена» объединены под общим заголовком «Поставка»), ручное согласование ширин становится трудоёмким. Сквозное выравнивание снимает эту задачу: достаточно одинаково назвать колонки и включить свойство.
Третий случай — динамические формы, где ширина колонок зависит от содержимого. Если в макете используется автоподбор ширины или содержимое ячеек сильно различается по длине, единая сетка помогает сохранить читаемость документа при любом наборе данных.
Как включить сквозное выравнивание пошагово
Настройка выполняется в конфигураторе и занимает несколько минут. Порядок действий одинаков для большинства типовых конфигураций и самописных решений.
- 1Откройте конфигуратор и найдите нужный макет: в дереве конфигурации это ветка «Макеты» у документа или в разделе «Общие макеты».
- 2Откройте макет — появится редактор табличного документа с именованными областями слева.
- 3Выделите именованную область (например, «ШапкаТаблицы»), кликнув по её имени в левой панели.
- 4Откройте палитру свойств: правой кнопкой по области — «Свойства» или через меню «Правка — Свойства».
- 5Найдите свойство «Сквозное выравнивание» и установите значение «Использовать».
- 6Повторите для всех областей, которые должны иметь общую сетку колонок: строка, подвал, итоги.
- 7Проверьте, что имена колонок в этих областях совпадают: выделите колонку и посмотрите её имя в свойствах.
- 8Обновите конфигурацию базы данных (F7) и сформируйте печатную форму для проверки.
После включения свойства обязательно проверьте результат на реальных данных. Откройте документ с заполненной табличной частью, сформируйте печатную форму и визуально убедитесь, что вертикальные границы колонок проходят ровно от шапки до подвала. Если данные длинные, проверьте и случай с переносом строк — ширина колонок не должна «прыгать» между строками.
Почему выравнивание не срабатывает: типичные причины
Самая распространённая причина — разные имена колонок. Разработчик назвал колонку в шапке «Сумма», а в области строки — «СуммаСтроки». Для человека смысл очевиден, для платформы это разные колонки, и выравнивать нечего. Решение — привести имена к единому виду во всех областях.
Вторая причина — свойство включено не для всех областей. Если сквозное выравнивание стоит у шапки и строки, но не у подвала, итоговая строка может выводиться со своими ширинами. Свойство должно быть включено у каждой области, участвующей в общей сетке.
Третья группа проблем — объединённые ячейки и колонки, созданные программно. Если часть колонок добавляется в табличный документ кодом после вывода областей, они не участвуют в сквозном выравнивании макета. Также сложности возникают, когда в одной области колонка объединена с соседней, а в другой — нет: платформа не всегда может корректно сопоставить такие структуры.
Проверка результата после настройки
После включения свойства недостаточно просто открыть печатную форму — нужно проверить её на разных наборах данных. Сформируйте документ с короткими наименованиями, затем с длинными, затем с большим количеством строк. Во всех случаях вертикальные границы колонок должны совпадать от шапки до подвала.
Дополнительно проверьте поведение при печати и экспорте. Откройте предварительный просмотр, сохраните форму в PDF или Excel и убедитесь, что сетка колонок сохраняется в выгруженном файле. Иногда визуально в табличном документе всё ровно, а при экспорте ширины пересчитываются — такие случаи требуют ручной подгонки ширин в макете как запасного варианта.
Как проверить результат
Вертикальные линии колонок идут ровно от шапки до подвала на любых данных
Границы колонок смещаются между шапкой, строками и итогами
Имена совпадают символ в символ во всех областях сетки
В разных областях колонки названы по-разному
В PDF и Excel ширины колонок сохраняются
В выгруженном файле колонки съезжают
Перенос текста не ломает ширину колонок
При длинном тексте колонки расширяются по-разному
Ограничения и альтернативные подходы
Сквозное выравнивание — не универсальное решение. Оно не работает для колонок, добавленных программно после вывода областей, плохо сочетается с различающимися структурами объединённых ячеек и не управляет высотой строк — только шириной колонок. Если задача выходит за эти рамки, нужны другие приёмы.
Основная альтернатива — ручное задание одинаковой ширины колонок во всех областях макета. Способ надёжен, но требует дисциплины: при каждом изменении макета ширины нужно синхронизировать заново. Второй вариант — программная установка ширины через свойство ШиринаКолонки у области табличного документа после вывода всех секций. Это даёт полный контроль, но усложняет код печатной формы.
Для совсем сложных форм иногда целесообразно перейти на другой тип макета — например, использовать макет офисного документа (DOCX), где сетка таблицы задаётся единым объектом и не зависит от областей. Такой подход меняет всю технологию формирования печати, поэтому его выбирают при существенной переработке форм, а не ради одной проблемы с шириной.
Сравнение подходов
Подходит для типовых макетов с областями и одноимёнными колонками. Ограничение: не действует на программно добавленные колонки.
Простой и предсказуемый вариант для статичных форм. Ограничение: ширины нужно синхронизировать вручную при каждом изменении макета.
Даёт полный контроль, включая динамические колонки. Ограничение: усложняет код и требует поддержки при доработках.
Единая сетка таблицы внутри DOCX. Ограничение: меняется вся технология формирования печатной формы.
Риски при доработке макетов типовых конфигураций
Если печатная форма принадлежит типовой конфигурации на поддержке, прямое изменение макета снимет объект с поддержки или усложнит обновления. При обновлении конфигурации изменённый макет может быть затёрт типовым, и настройка сквозного выравнивания пропадёт. Безопасный путь — выносить доработанные макеты во внешние печатные формы или использовать расширения конфигурации.
Перед любыми изменениям макета сделайте копию: сохраните макет в файл или скопируйте область в отдельный макет. Это позволит быстро откатиться, если выравнивание даст неожиданный эффект на смежных областях формы. Изменения ширин иногда влияют на перенос строк и общую высоту документа, что критично для форм с жёсткими требованиями к расположению на листе.
Частые вопросы о сквозном выравнивании
Сквозное выравнивание влияет на высоту строк?
Нет. Свойство управляет только шириной одноимённых колонок в разных областях. Высота строк определяется отдельными настройками областей и содержимым ячеек, включая перенос текста.
Почему свойство включено, но колонки всё равно разной ширины?
Чаще всего причина в разных именах колонок в областях — платформа связывает колонки строго по имени. Также проверьте, что свойство включено у всех областей сетки, а не только у одной, и что колонки не добавляются программно после вывода областей.
Работает ли сквозное выравнивание при экспорте в Excel или PDF?
В большинстве случаев выровненная сетка сохраняется при экспорте, но бывают исключения: при сохранении ширины могут пересчитываться. Проверяйте результат не только в предпросмотре, но и в выгруженном файле.
Можно ли использовать свойство для вертикальных областей?
Сквозное выравнивание применяется к горизонтальным областям и выравнивает ширину их колонок. Для вертикальных областей механизм не предназначен — там ширина задаётся структурой самого макета.
Что лучше: сквозное выравнивание или ручная ширина колонок?
Для форм с несколькими областями и частыми доработками удобнее сквозное выравнивание — оно поддерживает сетку автоматически. Для простых статичных макетов достаточно один раз задать одинаковые ширины вручную.
Что важно запомнить
Сквозное выравнивание выравнивает ширину одноимённых колонок в разных областях макета печатной формы. Включайте его у всех областей сетки, следите за совпадением имён колонок и проверяйте результат на реальных данных и при экспорте. Типовые макеты дорабатывайте через внешние печатные формы или расширения.