Ширина и выравнивание колонок в 1С 8.3: формы, отчёты, СКД и печать

· 9 мин

Содержание

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

Типичная ситуация: бухгалтер открывает оборотно-сальдовую ведомость, а суммы в колонке «Дебет» обрезаны до решёток, наименования контрагентов растянуты на пол-экрана. Или программист выводит печатную форму, и столбцы «Количество» и «Сумма» встают криво относительно шапки. Ниже — способы для пользователя и для разработчика, от самого простого к самому гибкому. Всё описано для платформы 8.3 с интерфейсом «Такси», механизмы общие для БП 3.0, ЗУП 3.1, УТ 11 и других типовых.

Где именно нужно выровнять колонки: три разных механизма

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

Что на экранеОбъект платформыКак узнатьЧем управлять
Список документов, справочник, табличная часть документаТаблица управляемой формыСтроки выделяются, есть сортировка по клику на заголовокНастройки формы, свойства элемента
Отчёт с кнопкой «Сформировать» и «Настройки»Табличный документ, выведенный СКДВидна сетка ячеек, как в ExcelОформление полей СКД, условное оформление
Печатная форма (счёт, акт, ТОРГ-12)Табличный документ из макетаОткрывается из кнопки «Печать»Макет в Конфигураторе или код

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

Как выровнять столбцы в списках и формах без программиста

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

Мышью

  1. Наведите курсор на границу между заголовками двух колонок — он станет двусторонней стрелкой.
  2. Потяните границу вправо или влево.
  3. Закройте форму и откройте снова: ширина запомнится.

Колонки можно и переставлять: возьмите заголовок мышью и перетащите на новое место.

Через «Изменить форму»

Когда колонок много и тянуть их по одной неудобно:

  1. В форме списка нажмите Ещё → Изменить форму.
  2. Слева в дереве элементов выберите нужную колонку.
  3. Справа появятся её свойства. Задайте ширину числом и при необходимости включите растягивание по горизонтали.
  4. Снимите флажки у колонок, которые не нужны, — оставшиеся займут освободившееся место.
  5. Нажмите «ОК».

Ширина задаётся в условных единицах — примерно в символах среднего шрифта. Для суммы до миллиона с копейками хватает 12–14, для ИНН — 12, для наименования контрагента — 30–40.

Если вы «перекрутили» настройки и форма стала неудобной, в том же окне нажмите Ещё → Установить стандартные настройки. Форма вернётся к виду, заложенному разработчиком.

Колонки в табличной части документа

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

Выравнивание колонок в отчётах на СКД

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

Через пользовательские настройки отчёта

  1. Откройте отчёт и нажмите «Настройки».
  2. Переключите вид на расширенный, если он доступен в этом отчёте.
  3. Перейдите на вкладку «Условное оформление» и добавьте новое правило.
  4. В «Оформлении» отметьте нужные параметры: минимальную ширину, максимальную ширину, горизонтальное положение.
  5. В «Оформляемых полях» выберите колонку. Условие оставьте пустым — тогда правило применится ко всем строкам.
  6. Сформируйте отчёт и сохраните вариант через «Сохранить вариант отчёта», чтобы настройка не потерялась.

Параметры оформления СКД, которые отвечают за колонки:

  • 📏 Минимальная ширина — колонка не станет уже указанного числа, даже если данные короткие;
  • 📐 Максимальная ширина — длинный текст не растянет колонку на весь экран ;
  • ↔️ Горизонтальное положение — влево, по центру, вправо; числа удобно прижимать вправо, чтобы разряды стояли друг под другом;
  • 🔁 Размещение — перенос длинного текста на несколько строк вместо обрезки;
  • 🔢 Формат — количество знаков после запятой и разделитель групп разрядов, от которого зависит, поместится ли сумма.

💡 Задайте минимальную и максимальную ширину одинаковыми — получите жёсткую колонку, которая не «пляшет» от периода к периоду.

В Конфигураторе, в схеме компоновки

Если вы дорабатываете отчёт, то же самое можно заложить в схему, и оно будет у всех пользователей:

  1. Откройте схему компоновки данных отчёта.
  2. На вкладке «Настройки» выберите нужную группировку или весь отчёт.
  3. В нижней части перейдите на «Условное оформление» или задайте оформление прямо у поля в наборе данных.
  4. Укажите ширину и горизонтальное положение.

Оформление у поля набора данных действует везде, где это поле выводится. Условное оформление варианта — только в этом варианте.

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

Когда отчёт или печатная форма формируются программно, колонки выравнивают через объект ОбластьЯчеекТабличногоДокумента. Колонку адресуют строкой вида "C3", диапазон колонок — "C3:C5".

// ТабДок — объект ТабличныйДокумент после вывода всех областей
// Колонка 2 — наименование, 3-5 — количество, цена, сумма
ТабДок.Область("C2").ШиринаКолонки = 40;
ТабДок.Область("C3:C5").ШиринаКолонки = 14;

// Прижимаем числа вправо, чтобы разряды стояли ровно
ТабДок.Область("C3:C5").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;

// Шапку центрируем
ТабДок.Область("R1:R2").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;

// Закрепляем шапку и первую колонку при прокрутке
ТабДок.ФиксацияСверху = 2;
ТабДок.ФиксацияСлева = 1;

Три приёма, которые экономят время разработчику:

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

Разная ширина колонок в одном документе

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

Динамические списки и таблицы формы: настройки для разработчика

В управляемой форме колонка — это элемент ПолеФормы внутри таблицы. Ширину и выравнивание задают в его свойствах в редакторе формы или кодом при создании формы.

СвойствоЧто делаетКогда нужно
ШиринаБазовая ширина колонкиВсегда, если важна сетка
Растягивать по горизонталиРазрешает колонке забирать свободное местоДля наименований и комментариев
Автомаксимальная ширина / Максимальная ширинаОграничивает растягиваниеЧтобы длинные строки не съедали экран
Горизонтальное положениеВыравнивание значения внутри ячейкиЧисла и даты
Группа колонокОбъединяет несколько колонок под одной шапкой или в одной ячейкеКомпактные списки

Пример в обработчике ПриСозданииНаСервере:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Элементы.СписокСуммаДокумента.Ширина = 14;
	Элементы.СписокСуммаДокумента.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Право;

	Элементы.СписокКонтрагент.РастягиватьПоГоризонтали = Истина;

КонецПроцедуры

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

В БСП есть обработка «Настройки пользователей» в разделе Администрирование → Настройки пользователей и прав. Через неё администратор может очистить настройки внешнего вида конкретного сотрудника, не заходя под его учётной записью.

Печать, PDF и Excel: чтобы столбцы не уехали

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

Параметры страницы

  1. В открытом табличном документе нажмите Ещё → Параметры страницы (или откройте их из предварительного просмотра).
  2. Для широких отчётов выберите альбомную ориентацию.
  3. В блоке масштаба включите вариант «По ширине страницы» — 1С сама уменьшит масштаб так, чтобы все колонки встали на лист.
  4. Проверьте результат в предварительном просмотре, прежде чем печатать или сохранять.

То же кодом, если форма печатается часто:

ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПолеСлева = 10;
ТабДок.ПолеСправа = 10;

Сохранение в PDF и Excel

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

ФорматЧто происходит с колонкамиНа что смотреть
PDFПовторяет печатный вид с учётом параметров страницыСначала настройте масштаб «По ширине страницы»
XLSXШирина переносится примерно, в единицах ExcelОбъединённые ячейки мешают сортировке и фильтрам
MXLРодной формат 1С, всё сохраняется как естьОткроется только в 1С или бесплатном просмотрщике файлов 1С

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

Почему колонки не выравниваются: разбор симптомов

Диагностика: выберите симптом

Если не помогло

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

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

Можно ли выровнять ширину сразу всех колонок отчёта одной настройкой?
Да. В условном оформлении СКД добавьте одно правило и выберите в оформляемых полях все нужные колонки. Для всех задайте одинаковую минимальную и максимальную ширину.
В каких единицах в 1С задаётся ширина колонки?
В условных единицах, близких к ширине одного символа стандартного шрифта. Это не пиксели и не миллиметры, поэтому на разных мониторах сетка сохраняет пропорции.
Увидят ли коллеги мои настройки ширины колонок?
Нет, если вы меняли их мышью или через «Изменить форму». Это персональные настройки. Общими они становятся, только если разработчик заложит их в конфигурацию или вы сохраните вариант отчёта с общим доступом.
Почему в тонком клиенте и в веб-клиенте ширина колонок выглядит по-разному?
Браузер рисует шрифты и отступы по-своему, поэтому сетка может сдвинуться на несколько символов. Закладывайте небольшой запас ширины для колонок с суммами.
Как закрепить заголовки колонок при прокрутке длинного отчёта?
В отчётах на СКД шапка обычно закрепляется сама. В программно сформированном табличном документе задайте свойства ФиксацияСверху и ФиксацияСлева.