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

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

Как сделать одинаковый размер ячеек в 1С

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

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

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

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

Как устроены размеры ячеек в табличном документе 1С

Табличный документ в 1С устроен как сетка из строк и колонок. У каждой колонки есть свойство «Ширина» (в условных единицах, близких к ширине символа), у каждой строки — «Высота» (в пунктах или пикселях в зависимости от режима). Ячейка на пересечении строки и колонки наследует эти размеры и не имеет собственных.

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

Выравнивание ширины колонок в открытом табличном документе

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

Порядок действий
  1. 1
    Выделите нужные колонки: щёлкните по заголовку первой колонки и, удерживая Shift или Ctrl, добавьте остальные
  2. 2
    Откройте меню «Таблица» (или «Формат» в зависимости от версии платформы) и выберите пункт «Ширина колонки»
  3. 3
    Введите одинаковое значение ширины для всех выделенных колонок и подтвердите
  4. 4
    Проверьте результат визуально и при необходимости через предварительный просмотр печати

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

Учтите ограничение: ручные изменения действуют только в текущем окне. После закрытия и повторного формирования документа размеры вернутся к значениям из макета или программного кода. Для постоянного результата правьте макет в конфигураторе.

Одинаковая высота строк

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

Отдельный случай — автоподбор высоты. Если в ячейках многострочный текст и включено свойство «АвтоВысотаСтроки» (или в свойствах ячейки установлено выравнивание по содержимому), строка сама растягивается под текст, и ручная высота игнорируется. Чтобы высота была строго одинаковой, отключите автоподбор и задайте фиксированное значение, либо убедитесь, что содержимое всех строк примерно одинаковой длины.

Настройка одинаковых ячеек в макете конфигуратора

Когда печатная форма формируется регулярно, правильное место для настройки — макет табличного документа в конфигураторе. Откройте конфигуратор, найдите нужный макет (у документа, отчёта или общий макет) и откройте его двойным щелчком.

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

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

Программное задание размеров ячеек

Во встроенном языке 1С размеры задаются через объект «ТабличныйДокумент» и его области. Типовой приём — получить область строк или колонок и установить им одинаковые параметры в цикле.

bsl
ТабДок = Новый ТабличныйДокумент;
Для НомерКолонки = 1 По 5 Цикл
    Область = ТабДок.Область(1, НомерКолонки);
    Область.ШиринаКолонки = 15;
КонецЦикла;
Для НомерСтроки = 1 По 10 Цикл
    Область = ТабДок.Область(НомерСтроки, 1);
    Область.ВысотаСтроки = 20;
КонецЦикла;

Также можно получить область по адресу вида «R1C1:R10C5» и задать свойства сразу для диапазона. Учтите, что свойство «ШиринаКолонки» применяется к колонке целиком, даже если вы обратились через одну ячейку, — это нормальное поведение платформы, а не ошибка кода.

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

Автоподбор размера как альтернатива

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

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

Сравнение вариантов

Фиксированные размеры

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

Автоподбор по содержимому

Подходит для экранных отчётов с текстом разной длины. Не даёт одинаковых размеров и может «ломать» сетку при печати

Программный расчёт ширины

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

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

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

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

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

Ширина колонок в свойствах
Норма

У всех целевых колонок одно и то же числовое значение

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

Значения отличаются хотя бы на десятые доли — ячейки визуально неравны

Предпросмотр печати
Норма

Сетка ровная, все колонки помещаются на лист

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

Часть колонок переносится на следующую страницу или текст обрезан

Объединённые ячейки
Норма

Объединения совпадают с границами выровненных колонок

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

Объединённая ячейка перекрывает колонки разной ширины — сетка выглядит ломаной

Типичные ошибки и ограничения

Типичные ошибки
01
Попытка задать размер одной ячейке — размер меняется у всей колонки или строки, и соседние ячейки тоже изменяются
02
Выравнивание мышью «на глаз» — значения ширины получаются разными на десятые доли, и на печати видны ступеньки; вводите числа вручную
03
Игнорирование автоподбора высоты — заданная вручную высота не применяется, пока включён автоподбор или перенос текста
04
Правка открытого документа вместо макета — после повторного формирования все изменения теряются
05
Забытые объединённые ячейки — они ломают визуальную сетку даже при одинаковой ширине колонок

Ещё одно ограничение касается защищённых документов: если у табличного документа включена защита или он открыт в режиме только для просмотра, изменить размеры через интерфейс не получится. Снимите защиту (если у вас есть права) или вносите правки в макет.

Итог

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

Размер в 1С задаётся строкам и колонкам, а не отдельным ячейкам. Одинаковые ячейки получаются выравниванием ширины колонок и высоты строк — вручную через меню, в макете конфигуратора или программно через свойства ШиринаКолонки и ВысотаСтроки. Разовые правки делайте в открытом документе, постоянные — в макете или расширении, и всегда проверяйте результат в предпросмотре печати.

Частые вопросы

Можно ли задать размер только одной ячейке, не меняя соседние?

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

Почему после выравнивания ячейки снова стали разными?

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

Как сделать одинаковую ширину колонок в динамической таблице отчёта на СКД?

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

В каких единицах задаётся ширина колонки и как перевести в миллиметры?

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

Текст обрезается после того, как я сделал ячейки одинаковыми. Что делать?

Включите перенос текста в свойствах ячеек (свойство «Размещение текста» или флажок переноса в макете) и разрешите автоподбор высоты строк — тогда строки вырастут под содержимое, а ширина колонок останется одинаковой. Либо увеличьте фиксированную ширину колонок.

Как быстро выровнять много колонок, не задавая каждую по отдельности?

Выделите сразу все нужные колонки (по заголовку первой, затем с Shift — последняя) и задайте ширину один раз — значение применится ко всем выделенным. Программно то же самое делает цикл по номерам колонок с присвоением одинакового значения свойству ШиринаКолонки.