Разработка и Конфигурация · 10 мин
Как сделать одинаковый размер ячеек в 1С
Как выровнять ширину колонок и высоту строк в табличном документе 1С, задать одинаковый размер ячеек в макете и программно. Практические способы и типичные ошибки.
Одинаковый размер ячеек в 1С требуется в двух типовых ситуациях: при оформлении печатных форм и макетов, а также при работе с табличным документом, открытым на экране. В обоих случаях задача решается через свойства ширины колонок и высоты строк, но инструменты различаются: где-то достаточно мыши и диалога, где-то нужен макет в конфигураторе или программный код.
Ключевая особенность 1С в том, что размер ячейки не существует отдельно от строки и колонки. Нельзя задать «размер одной ячейки» — можно изменить только ширину всей колонки и высоту всей строки. Поэтому «одинаковые ячейки» на практике означают: у всех нужных колонок одинаковая ширина, у всех нужных строк одинаковая высота.
Ниже разобраны все рабочие способы: ручное выравнивание в открытом табличном документе, настройка макета в конфигураторе, программное задание размеров и автоподбор. Отдельно рассмотрены типичные ошибки, из-за которых ячейки «не слушаются», и способы проверить результат перед печатью.
Как устроены размеры ячеек в табличном документе 1С
Табличный документ в 1С устроен как сетка из строк и колонок. У каждой колонки есть свойство «Ширина» (в условных единицах, близких к ширине символа), у каждой строки — «Высота» (в пунктах или пикселях в зависимости от режима). Ячейка на пересечении строки и колонки наследует эти размеры и не имеет собственных.
Из этого следуют два практических вывода. Первый: если нужно сделать одинаковыми ячейки внутри одной строки, достаточно выровнять ширину соответствующих колонок. Второй: объединённые ячейки занимают несколько колонок или строк, и их размер складывается из размеров входящих в них колонок и строк — при выравнивании это нужно учитывать.
Выравнивание ширины колонок в открытом табличном документе
Если табличный документ уже открыт (например, сформирован отчёт или печатная форма) и разрешено редактирование, ширину колонок можно выровнять вручную. Это самый быстрый способ, когда правка разовая и сохранять её в конфигурации не требуется.
- 1Выделите нужные колонки: щёлкните по заголовку первой колонки и, удерживая Shift или Ctrl, добавьте остальные
- 2Откройте меню «Таблица» (или «Формат» в зависимости от версии платформы) и выберите пункт «Ширина колонки»
- 3Введите одинаковое значение ширины для всех выделенных колонок и подтвердите
- 4Проверьте результат визуально и при необходимости через предварительный просмотр печати
Альтернатива — перетаскивание границ колонок мышью. Если выделить несколько колонок и потянуть границу одной из них, платформа применит одинаковую ширину ко всем выделенным. Это удобно, когда нужно подобрать размер «на глаз», а не вводить точное число.
Учтите ограничение: ручные изменения действуют только в текущем окне. После закрытия и повторного формирования документа размеры вернутся к значениям из макета или программного кода. Для постоянного результата правьте макет в конфигураторе.
Одинаковая высота строк
Высота строк выравнивается аналогично: выделите нужные строки, откройте «Высота строки» в меню таблицы и задайте единое значение. Либо выделите строки и потяните границу одной из них — высота применится ко всем выделенным.
Отдельный случай — автоподбор высоты. Если в ячейках многострочный текст и включено свойство «АвтоВысотаСтроки» (или в свойствах ячейки установлено выравнивание по содержимому), строка сама растягивается под текст, и ручная высота игнорируется. Чтобы высота была строго одинаковой, отключите автоподбор и задайте фиксированное значение, либо убедитесь, что содержимое всех строк примерно одинаковой длины.
Настройка одинаковых ячеек в макете конфигуратора
Когда печатная форма формируется регулярно, правильное место для настройки — макет табличного документа в конфигураторе. Откройте конфигуратор, найдите нужный макет (у документа, отчёта или общий макет) и откройте его двойным щелчком.
Выделите колонки макета, которые должны быть одинаковой ширины, и в панели свойств задайте одинаковое значение «Ширина». Для строк аналогично используется свойство «Высота строки». Если нужна точность, вводите числа вручную, а не подбирайте мышью — так ширина будет гарантированно идентичной до десятых долей единицы.
Для именованных областей макета размеры берутся из тех строк и колонок, которые область пересекает. Поэтому достаточно один раз выровнять сетку макета — все области, выводимые из него, унаследуют одинаковые размеры автоматически.
Программное задание размеров ячеек
Во встроенном языке 1С размеры задаются через объект «ТабличныйДокумент» и его области. Типовой приём — получить область строк или колонок и установить им одинаковые параметры в цикле.
ТабДок = Новый ТабличныйДокумент;
Для НомерКолонки = 1 По 5 Цикл
Область = ТабДок.Область(1, НомерКолонки);
Область.ШиринаКолонки = 15;
КонецЦикла;
Для НомерСтроки = 1 По 10 Цикл
Область = ТабДок.Область(НомерСтроки, 1);
Область.ВысотаСтроки = 20;
КонецЦикла;Также можно получить область по адресу вида «R1C1:R10C5» и задать свойства сразу для диапазона. Учтите, что свойство «ШиринаКолонки» применяется к колонке целиком, даже если вы обратились через одну ячейку, — это нормальное поведение платформы, а не ошибка кода.
Программный способ удобен, когда ширина вычисляется динамически: например, общая ширина страницы делится поровну между колонками в зависимости от их количества в данных.
Автоподбор размера как альтернатива
Если цель — не строгая одинаковость, а аккуратный вид без обрезанного текста, рассмотрите автоподбор. В открытом табличном документе двойной щелчок по границе колонки подгоняет её ширину под содержимое. В макете и программно для этого служат свойства автоподбора ширины и высоты.
Автоподбор не делает ячейки одинаковыми — он делает каждую достаточной для своего содержимого. Для отчётов, которые только просматриваются на экране, это часто удобнее. Для печатных форм с жёсткой сеткой (бланки, этикетки, таблицы с рамками) лучше фиксированные одинаковые размеры.
Сравнение вариантов
Обязательны для бланков, этикеток и форм с рамками. Ограничение: длинный текст может обрезаться, если не включить перенос
Подходит для экранных отчётов с текстом разной длины. Не даёт одинаковых размеров и может «ломать» сетку при печати
Делит доступную ширину поровну между колонками. Требует доработки кода и тестирования на разных данных
Как проверить результат перед печатью
После выравнивания обязательно откройте предварительный просмотр печати: на экране табличный документ и на бумаге может выглядеть по-разному из-за масштаба, полей страницы и ориентации листа. Проверьте, что колонки не «уехали» на вторую страницу по ширине.
Как проверить результат
У всех целевых колонок одно и то же числовое значение
Значения отличаются хотя бы на десятые доли — ячейки визуально неравны
Сетка ровная, все колонки помещаются на лист
Часть колонок переносится на следующую страницу или текст обрезан
Объединения совпадают с границами выровненных колонок
Объединённая ячейка перекрывает колонки разной ширины — сетка выглядит ломаной
Типичные ошибки и ограничения
Ещё одно ограничение касается защищённых документов: если у табличного документа включена защита или он открыт в режиме только для просмотра, изменить размеры через интерфейс не получится. Снимите защиту (если у вас есть права) или вносите правки в макет.
Что важно запомнить
Размер в 1С задаётся строкам и колонкам, а не отдельным ячейкам. Одинаковые ячейки получаются выравниванием ширины колонок и высоты строк — вручную через меню, в макете конфигуратора или программно через свойства ШиринаКолонки и ВысотаСтроки. Разовые правки делайте в открытом документе, постоянные — в макете или расширении, и всегда проверяйте результат в предпросмотре печати.
Частые вопросы
Можно ли задать размер только одной ячейке, не меняя соседние?
Нет, платформа 1С этого не позволяет: размер — это свойство строки и колонки. Если нужна ячейка нестандартного размера, используют приём с объединением: дробят сетку на более мелкие колонки и объединяют их в разных комбинациях, получая ячейки разной ширины.
Почему после выравнивания ячейки снова стали разными?
Чаще всего документ был сформирован заново, и размеры вернулись из макета или кода. Реже причина в автоподборе высоты или в том, что изменения вносились в копию документа. Постоянный результат даёт только правка макета или программного формирования.
Как сделать одинаковую ширину колонок в динамической таблице отчёта на СКД?
В схеме компоновки данных ширина колонок в основном управляется автоматически и настройками оформления макета СКД. Для жёсткой сетки обычно формируют результат в табличный документ и затем программно выравнивают колонки через свойство ШиринаКолонки в цикле.
В каких единицах задаётся ширина колонки и как перевести в миллиметры?
Ширина задаётся в условных единицах платформы, а не в миллиметрах, и точного фиксированного пересчёта нет — он зависит от шрифта и масштаба. Практический способ: задать значение, открыть предпросмотр печати с линейкой и скорректировать число до нужного результата на бумаге.
Текст обрезается после того, как я сделал ячейки одинаковыми. Что делать?
Включите перенос текста в свойствах ячеек (свойство «Размещение текста» или флажок переноса в макете) и разрешите автоподбор высоты строк — тогда строки вырастут под содержимое, а ширина колонок останется одинаковой. Либо увеличьте фиксированную ширину колонок.
Как быстро выровнять много колонок, не задавая каждую по отдельности?
Выделите сразу все нужные колонки (по заголовку первой, затем с Shift — последняя) и задайте ширину один раз — значение применится ко всем выделенным. Программно то же самое делает цикл по номерам колонок с присвоением одинакового значения свойству ШиринаКолонки.