Ширина и выравнивание колонок в 1С 8.3: формы, отчёты, СКД и печать
Содержание
Чтобы выровнять столбцы в 1С, сначала поймите, где они живут. В списке документов или справочника ширину меняют мышью или через Ещё → Изменить форму. В отчёте на СКД — через оформление полей в настройках варианта. В печатной форме и любом табличном документе — в макете или кодом через свойство ШиринаКолонки.
Типичная ситуация: бухгалтер открывает оборотно-сальдовую ведомость, а суммы в колонке «Дебет» обрезаны до решёток, наименования контрагентов растянуты на пол-экрана. Или программист выводит печатную форму, и столбцы «Количество» и «Сумма» встают криво относительно шапки. Ниже — способы для пользователя и для разработчика, от самого простого к самому гибкому. Всё описано для платформы 8.3 с интерфейсом «Такси», механизмы общие для БП 3.0, ЗУП 3.1, УТ 11 и других типовых.
Где именно нужно выровнять колонки: три разных механизма
В 1С «столбцы» встречаются в трёх разных объектах. У каждого свои настройки, и приём из одного не работает в другом.
| Что на экране | Объект платформы | Как узнать | Чем управлять |
|---|---|---|---|
| Список документов, справочник, табличная часть документа | Таблица управляемой формы | Строки выделяются, есть сортировка по клику на заголовок | Настройки формы, свойства элемента |
| Отчёт с кнопкой «Сформировать» и «Настройки» | Табличный документ, выведенный СКД | Видна сетка ячеек, как в Excel | Оформление полей СКД, условное оформление |
| Печатная форма (счёт, акт, ТОРГ-12) | Табличный документ из макета | Открывается из кнопки «Печать» | Макет в Конфигураторе или код |
💡 Быстрая проверка: если ширину колонки можно поменять, а после закрытия и повторного открытия она сохранилась — перед вами форма. Если после пересоздания отчёта всё сбросилось — это табличный документ, и править нужно настройки отчёта.
Как выровнять столбцы в списках и формах без программиста
Пользовательские правки сохраняются в персональных настройках. Коллеги их не видят, и конфигурацию они не меняют.
Мышью
- Наведите курсор на границу между заголовками двух колонок — он станет двусторонней стрелкой.
- Потяните границу вправо или влево.
- Закройте форму и откройте снова: ширина запомнится.
Колонки можно и переставлять: возьмите заголовок мышью и перетащите на новое место.
Через «Изменить форму»
Когда колонок много и тянуть их по одной неудобно:
- В форме списка нажмите
Ещё → Изменить форму. - Слева в дереве элементов выберите нужную колонку.
- Справа появятся её свойства. Задайте ширину числом и при необходимости включите растягивание по горизонтали.
- Снимите флажки у колонок, которые не нужны, — оставшиеся займут освободившееся место.
- Нажмите «ОК».
Ширина задаётся в условных единицах — примерно в символах среднего шрифта. Для суммы до миллиона с копейками хватает 12–14, для ИНН — 12, для наименования контрагента — 30–40.
Если вы «перекрутили» настройки и форма стала неудобной, в том же окне нажмите Ещё → Установить стандартные настройки. Форма вернётся к виду, заложенному разработчиком.
Колонки в табличной части документа
В табличной части накладной или авансового отчёта действуют те же приёмы. Отличие одно: настройки сохраняются отдельно для каждого вида документа. Выровняли колонки в «Реализации товаров и услуг» — в «Поступлении» они останутся прежними.
Выравнивание колонок в отчётах на СКД
Почти все отчёты типовых конфигураций построены на системе компоновки данных. Перетаскивание границ в готовом отчёте работает, но живёт до следующего нажатия «Сформировать». Чтобы ширина держалась, её задают в оформлении поля.
Через пользовательские настройки отчёта
- Откройте отчёт и нажмите «Настройки».
- Переключите вид на расширенный, если он доступен в этом отчёте.
- Перейдите на вкладку «Условное оформление» и добавьте новое правило.
- В «Оформлении» отметьте нужные параметры: минимальную ширину, максимальную ширину, горизонтальное положение.
- В «Оформляемых полях» выберите колонку. Условие оставьте пустым — тогда правило применится ко всем строкам.
- Сформируйте отчёт и сохраните вариант через «Сохранить вариант отчёта», чтобы настройка не потерялась.
Параметры оформления СКД, которые отвечают за колонки:
- 📏 Минимальная ширина — колонка не станет уже указанного числа, даже если данные короткие;
- 📐 Максимальная ширина — длинный текст не растянет колонку на весь экран ;
- ↔️ Горизонтальное положение — влево, по центру, вправо; числа удобно прижимать вправо, чтобы разряды стояли друг под другом;
- 🔁 Размещение — перенос длинного текста на несколько строк вместо обрезки;
- 🔢 Формат — количество знаков после запятой и разделитель групп разрядов, от которого зависит, поместится ли сумма.
💡 Задайте минимальную и максимальную ширину одинаковыми — получите жёсткую колонку, которая не «пляшет» от периода к периоду.
В Конфигураторе, в схеме компоновки
Если вы дорабатываете отчёт, то же самое можно заложить в схему, и оно будет у всех пользователей:
- Откройте схему компоновки данных отчёта.
- На вкладке «Настройки» выберите нужную группировку или весь отчёт.
- В нижней части перейдите на «Условное оформление» или задайте оформление прямо у поля в наборе данных.
- Укажите ширину и горизонтальное положение.
Оформление у поля набора данных действует везде, где это поле выводится. Условное оформление варианта — только в этом варианте.
Код: ширина и выравнивание в табличном документе
Когда отчёт или печатная форма формируются программно, колонки выравнивают через объект ОбластьЯчеекТабличногоДокумента. Колонку адресуют строкой вида "C3", диапазон колонок — "C3:C5".
// ТабДок — объект ТабличныйДокумент после вывода всех областей
// Колонка 2 — наименование, 3-5 — количество, цена, сумма
ТабДок.Область("C2").ШиринаКолонки = 40;
ТабДок.Область("C3:C5").ШиринаКолонки = 14;
// Прижимаем числа вправо, чтобы разряды стояли ровно
ТабДок.Область("C3:C5").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
// Шапку центрируем
ТабДок.Область("R1:R2").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
// Закрепляем шапку и первую колонку при прокрутке
ТабДок.ФиксацияСверху = 2;
ТабДок.ФиксацияСлева = 1;
Три приёма, которые экономят время разработчику:
- Задавайте ширину после вывода всех областей. При выводе областей из макета ширина колонок берётся из макета. Если поменять её до вывода, следующая выведенная область может принести свою ширину.
- Правьте сам макет, а не результат. Если ширина одинакова всегда, проще выставить её в макете: выделите колонки по заголовкам, откройте палитру свойств и задайте ширину. Кода меньше, поддержка проще.
- Типовую печатную форму не меняйте в основной конфигурации. Используйте расширение конфигурации или механизм пользовательских макетов печатных форм в типовых решениях. Так доработка переживёт обновление.
Разная ширина колонок в одном документе
Частая задача: шапка счёта свёрстана в одной сетке, табличная часть — в другой. В табличном документе 1С строки могут иметь собственный формат колонок, поэтому шапка и таблица уживаются в одном листе. Если после вывода колонки шапки съехали, проверьте в макете, не «разъехались» ли форматы строк у областей. Надёжный путь — верстать шапку объединёнными ячейками поверх единой сетки таблицы.
Динамические списки и таблицы формы: настройки для разработчика
В управляемой форме колонка — это элемент ПолеФормы внутри таблицы. Ширину и выравнивание задают в его свойствах в редакторе формы или кодом при создании формы.
| Свойство | Что делает | Когда нужно |
|---|---|---|
| Ширина | Базовая ширина колонки | Всегда, если важна сетка |
| Растягивать по горизонтали | Разрешает колонке забирать свободное место | Для наименований и комментариев |
| Автомаксимальная ширина / Максимальная ширина | Ограничивает растягивание | Чтобы длинные строки не съедали экран |
| Горизонтальное положение | Выравнивание значения внутри ячейки | Числа и даты |
| Группа колонок | Объединяет несколько колонок под одной шапкой или в одной ячейке | Компактные списки |
Пример в обработчике ПриСозданииНаСервере:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.СписокСуммаДокумента.Ширина = 14;
Элементы.СписокСуммаДокумента.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Право;
Элементы.СписокКонтрагент.РастягиватьПоГоризонтали = Истина;
КонецПроцедуры
Учтите приоритет: если пользователь уже подвинул колонку мышью, его сохранённые настройки применяются поверх значений из конфигурации. Поэтому «программист поменял, а у бухгалтера всё по-старому» — нормальное поведение. Пользователю достаточно сбросить настройки формы.
В БСП есть обработка «Настройки пользователей» в разделе Администрирование → Настройки пользователей и прав. Через неё администратор может очистить настройки внешнего вида конкретного сотрудника, не заходя под его учётной записью.
Печать, PDF и Excel: чтобы столбцы не уехали
На экране всё ровно, а на бумаге последняя колонка ушла на второй лист — классика. Причина почти всегда в сумме ширин, которая не влезает в формат страницы.
Параметры страницы
- В открытом табличном документе нажмите
Ещё → Параметры страницы(или откройте их из предварительного просмотра). - Для широких отчётов выберите альбомную ориентацию.
- В блоке масштаба включите вариант «По ширине страницы» — 1С сама уменьшит масштаб так, чтобы все колонки встали на лист.
- Проверьте результат в предварительном просмотре, прежде чем печатать или сохранять.
То же кодом, если форма печатается часто:
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПолеСлева = 10;
ТабДок.ПолеСправа = 10;
Сохранение в PDF и Excel
Сохранить документ можно кнопкой с дискетой или через Ещё → Сохранить как, выбрав нужный тип файла.
| Формат | Что происходит с колонками | На что смотреть |
|---|---|---|
| Повторяет печатный вид с учётом параметров страницы | Сначала настройте масштаб «По ширине страницы» | |
| XLSX | Ширина переносится примерно, в единицах Excel | Объединённые ячейки мешают сортировке и фильтрам |
| MXL | Родной формат 1С, всё сохраняется как есть | Откроется только в 1С или бесплатном просмотрщике файлов 1С |
💡 Если отчёт идёт в Excel для дальнейшей обработки, перед выгрузкой отключите в настройках отчёта лишние группировки и итоги. Плоская таблица выгружается ровнее, чем многоуровневая.
Почему колонки не выравниваются: разбор симптомов
Если не помогло
- Проверьте, не включено ли у поля СКД оформление из другого правила с условием: правила условного оформления применяются по порядку, и более позднее может перебить ширину.
- Откройте отчёт под другим пользователем. Если там всё ровно — дело в персональных настройках, а не в конфигурации.
- Для внешней печатной формы убедитесь, что используется последняя версия файла, а не старая копия, подключённая в справочнике дополнительных отчётов и обработок.
Частые вопросы
Можно ли выровнять ширину сразу всех колонок отчёта одной настройкой?
В каких единицах в 1С задаётся ширина колонки?
Увидят ли коллеги мои настройки ширины колонок?
Почему в тонком клиенте и в веб-клиенте ширина колонок выглядит по-разному?
Как закрепить заголовки колонок при прокрутке длинного отчёта?
ФиксацияСверху и ФиксацияСлева.