К статье
Практический материал

Разработка и Конфигурация · 11 мин

Сквозное выравнивание в 1С: что это и как использовать в макетах

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

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

Свойство чаще всего встречается разработчикам, которые создают или дорабатывают печатные формы документов: счета, акты, накладные, заказ-наряды. Типичная ситуация — в макете есть область «ШапкаТаблицы» с заголовками колонок и область «Строка», которая выводится в цикле. Если ширина колонок в этих областях задана по-разному, итоговый документ выглядит неаккуратно, а при определённых условиях колонки вообще не совпадают.

Найти свойство можно в конфигураторе: откройте макет табличного документа, выделите нужную именованную область, вызовите палитру свойств (правой кнопкой — «Свойства») и найдите пункт «Сквозное выравнивание». Он может принимать значение «Использовать», «Не использовать» или «Авто» в зависимости от версии платформы и контекста. Ниже разберём, как свойство работает, когда его включать и какие ошибки допускают чаще всего.

Как работает сквозное выравнивание в макете

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

Если у областей включено сквозное выравнивание и в них есть колонки с одинаковыми именами, платформа при выводе подгоняет ширину этих колонок под общее значение. Фактически создаётся единая вертикальная сетка: колонка «Номенклатура» в шапке, в каждой строке таблицы и в подвале будет иметь одинаковую ширину независимо от того, что задано в отдельных областях.

Важно понимать: выравнивание работает по именам колонок, а не по их порядковому положению. Если в одной области колонка называется «Количество», а в другой — «Колво», платформа не свяжет их между собой, и выравнивания не произойдёт. Это одна из самых частых причин, почему «включил свойство, а ничего не изменилось».

Когда свойство нужно включать

Главный сценарий — печатные формы с табличными частями, где данные выводятся несколькими разными областями. Например, в накладной шапка таблицы выводится один раз, строки номенклатуры — в цикле, итоги — отдельной областью «Подвал». Если ширины колонок в этих трёх областях хоть немного различаются, на печати границы колонок не совпадут, и документ будет выглядеть небрежно.

Второй сценарий — макеты с объединёнными ячейками и сложной шапкой. Когда шапка таблицы собрана из объединённых ячеек (например, «Количество» и «Цена» объединены под общим заголовком «Поставка»), ручное согласование ширин становится трудоёмким. Сквозное выравнивание снимает эту задачу: достаточно одинаково назвать колонки и включить свойство.

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

Как включить сквозное выравнивание пошагово

Настройка выполняется в конфигураторе и занимает несколько минут. Порядок действий одинаков для большинства типовых конфигураций и самописных решений.

Порядок действий
  1. 1
    Откройте конфигуратор и найдите нужный макет: в дереве конфигурации это ветка «Макеты» у документа или в разделе «Общие макеты».
  2. 2
    Откройте макет — появится редактор табличного документа с именованными областями слева.
  3. 3
    Выделите именованную область (например, «ШапкаТаблицы»), кликнув по её имени в левой панели.
  4. 4
    Откройте палитру свойств: правой кнопкой по области — «Свойства» или через меню «Правка — Свойства».
  5. 5
    Найдите свойство «Сквозное выравнивание» и установите значение «Использовать».
  6. 6
    Повторите для всех областей, которые должны иметь общую сетку колонок: строка, подвал, итоги.
  7. 7
    Проверьте, что имена колонок в этих областях совпадают: выделите колонку и посмотрите её имя в свойствах.
  8. 8
    Обновите конфигурацию базы данных (F7) и сформируйте печатную форму для проверки.

После включения свойства обязательно проверьте результат на реальных данных. Откройте документ с заполненной табличной частью, сформируйте печатную форму и визуально убедитесь, что вертикальные границы колонок проходят ровно от шапки до подвала. Если данные длинные, проверьте и случай с переносом строк — ширина колонок не должна «прыгать» между строками.

Почему выравнивание не срабатывает: типичные причины

Самая распространённая причина — разные имена колонок. Разработчик назвал колонку в шапке «Сумма», а в области строки — «СуммаСтроки». Для человека смысл очевиден, для платформы это разные колонки, и выравнивать нечего. Решение — привести имена к единому виду во всех областях.

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

Третья группа проблем — объединённые ячейки и колонки, созданные программно. Если часть колонок добавляется в табличный документ кодом после вывода областей, они не участвуют в сквозном выравнивании макета. Также сложности возникают, когда в одной области колонка объединена с соседней, а в другой — нет: платформа не всегда может корректно сопоставить такие структуры.

Типичные ошибки
01
Разные имена колонок в областях — выравнивание молча не срабатывает, потому что платформа связывает колонки только по именам.
02
Свойство включено только у одной области — остальные области продолжают выводиться со своими ширинами.
03
Попытка исправить ширины вручную в каждой области вместо включения свойства — при первом же изменении макета ширины снова разъезжаются.
04
Проверка результата только на пустом документе — с реальными длинными данными колонки ведут себя иначе, и проблема всплывает у пользователей.
05
Ожидание, что свойство выровняет колонки, добавленные программно после вывода областей, — на такие колонки оно не распространяется.

Проверка результата после настройки

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

Дополнительно проверьте поведение при печати и экспорте. Откройте предварительный просмотр, сохраните форму в PDF или Excel и убедитесь, что сетка колонок сохраняется в выгруженном файле. Иногда визуально в табличном документе всё ровно, а при экспорте ширины пересчитываются — такие случаи требуют ручной подгонки ширин в макете как запасного варианта.

Контрольные точки

Как проверить результат

Совпадение границ колонок
Норма

Вертикальные линии колонок идут ровно от шапки до подвала на любых данных

Тревожный признак

Границы колонок смещаются между шапкой, строками и итогами

Имена колонок в областях
Норма

Имена совпадают символ в символ во всех областях сетки

Тревожный признак

В разных областях колонки названы по-разному

Поведение при экспорте
Норма

В PDF и Excel ширины колонок сохраняются

Тревожный признак

В выгруженном файле колонки съезжают

Длинные данные
Норма

Перенос текста не ломает ширину колонок

Тревожный признак

При длинном тексте колонки расширяются по-разному

Ограничения и альтернативные подходы

Сквозное выравнивание — не универсальное решение. Оно не работает для колонок, добавленных программно после вывода областей, плохо сочетается с различающимися структурами объединённых ячеек и не управляет высотой строк — только шириной колонок. Если задача выходит за эти рамки, нужны другие приёмы.

Основная альтернатива — ручное задание одинаковой ширины колонок во всех областях макета. Способ надёжен, но требует дисциплины: при каждом изменении макета ширины нужно синхронизировать заново. Второй вариант — программная установка ширины через свойство ШиринаКолонки у области табличного документа после вывода всех секций. Это даёт полный контроль, но усложняет код печатной формы.

Для совсем сложных форм иногда целесообразно перейти на другой тип макета — например, использовать макет офисного документа (DOCX), где сетка таблицы задаётся единым объектом и не зависит от областей. Такой подход меняет всю технологию формирования печати, поэтому его выбирают при существенной переработке форм, а не ради одной проблемы с шириной.

Сравнение подходов

Сквозное выравнивание

Подходит для типовых макетов с областями и одноимёнными колонками. Ограничение: не действует на программно добавленные колонки.

Ручная ширина в макете

Простой и предсказуемый вариант для статичных форм. Ограничение: ширины нужно синхронизировать вручную при каждом изменении макета.

Программная установка ширины

Даёт полный контроль, включая динамические колонки. Ограничение: усложняет код и требует поддержки при доработках.

Макет офисного документа

Единая сетка таблицы внутри DOCX. Ограничение: меняется вся технология формирования печатной формы.

Риски при доработке макетов типовых конфигураций

Если печатная форма принадлежит типовой конфигурации на поддержке, прямое изменение макета снимет объект с поддержки или усложнит обновления. При обновлении конфигурации изменённый макет может быть затёрт типовым, и настройка сквозного выравнивания пропадёт. Безопасный путь — выносить доработанные макеты во внешние печатные формы или использовать расширения конфигурации.

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

Частые вопросы о сквозном выравнивании

Сквозное выравнивание влияет на высоту строк?

Нет. Свойство управляет только шириной одноимённых колонок в разных областях. Высота строк определяется отдельными настройками областей и содержимым ячеек, включая перенос текста.

Почему свойство включено, но колонки всё равно разной ширины?

Чаще всего причина в разных именах колонок в областях — платформа связывает колонки строго по имени. Также проверьте, что свойство включено у всех областей сетки, а не только у одной, и что колонки не добавляются программно после вывода областей.

Работает ли сквозное выравнивание при экспорте в Excel или PDF?

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

Можно ли использовать свойство для вертикальных областей?

Сквозное выравнивание применяется к горизонтальным областям и выравнивает ширину их колонок. Для вертикальных областей механизм не предназначен — там ширина задаётся структурой самого макета.

Что лучше: сквозное выравнивание или ручная ширина колонок?

Для форм с несколькими областями и частыми доработками удобнее сквозное выравнивание — оно поддерживает сетку автоматически. Для простых статичных макетов достаточно один раз задать одинаковые ширины вручную.

Итог

Что важно запомнить

Сквозное выравнивание выравнивает ширину одноимённых колонок в разных областях макета печатной формы. Включайте его у всех областей сетки, следите за совпадением имён колонок и проверяйте результат на реальных данных и при экспорте. Типовые макеты дорабатывайте через внешние печатные формы или расширения.