Как изменить сетку колонок для отдельных строк в макете 1С:Enterprise 8?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Интерактивный способ создания нового формата строк

Самый быстрый и интуитивно понятный способ создать индивидуальную сетку для выбранной области — это использование манипуляций мышью непосредственно в редакторе макета. Рассмотрим этот процесс по шагам:

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

Создание формата строк через системное меню

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

Выделим целевые строки, затем в главном меню выберем пункт Таблица — Формат строк — Создать. Это действие мгновенно создаст разрыв сетки. Если же нам нужно, наоборот, пристыковать текущую строку к сетке предыдущей, мы используем команду Таблица — Формат строк — Объединить с предыдущим.

Программное управление сеткой макета

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

Рассмотрим пример кода:


// Получаем макет из конфигурации
Макет = ПолучитьМакет("МояПечатнаяФорма");

// Выделяем область с 5-й по 10-ю строку целиком
ОбластьСетки = Макет.Область(5, , 10, );

// Создаем независимый формат строк для этой области
ОбластьСетки.СоздатьФорматСтрок();

// Теперь можно программно задать ширину колонок только для этой области
ОбластьСетки.Область(1, 1).ШиринаКолонки = 20;
ОбластьСетки.Область(1, 2).ШиринаКолонки = 50;

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

Визуальные индикаторы и контроль

Как понять, что в макете уже настроены разные форматы строк? Проанализируем поведение интерфейса конфигуратора. Когда мы перемещаемся курсором (активной ячейкой) между строками с разными форматами, верхняя линейка с номерами колонок (1, 2, 3...) визуально «перестраивается» или «прыгает». Это главный признак того, что сетка разделена. Кроме того, в некоторых версиях платформы номера колонок в строках с уникальным форматом могут отображаться более жирным шрифтом.

Удаление формата строк и возврат к общей сетке

Иногда возникает необходимость «склеить» сетку обратно. Выясним, как сделать это правильно, не повредив оформление текста. Существует два способа:

  1. Очистка формата через контекстное меню: Если нажать правой кнопкой мыши на строке и выбрать Очистить — Формат, система удалит разрыв сетки. Внимание: этот метод опасен тем, что он удаляет вообще всё оформление ячеек (рамки, цвета, шрифты, выравнивание).
  2. Специализированная команда: Правильнее использовать путь Таблица — Формат строк — Удалить. В этом случае строка просто вернется к основной сетке макета, но все ваши шрифты и рамки останутся нетронутыми.

Важные нюансы при экспорте в Excel

Проанализируем критически важный аспект: сохранение таких макетов в формат .xls или .xlsx. Система Microsoft Excel не поддерживает концепцию «разных сеток для разных строк» в том виде, в котором это реализовано в 1С. При экспорте Excel пытается имитировать этот эффект, создавая огромное количество скрытых и очень узких вспомогательных колонок.

Рекомендация: Если вы планируете, что пользователи будут часто сохранять отчет в Excel для дальнейшей работы, старайтесь минимизировать количество «разрезов» сетки. Используйте Объединение ячеек там, где это возможно. Большое количество форматов строк может привести к тому, что файл Excel будет «тормозить», а колонки станут иметь ширину 0.1 мм, что сделает редактирование документа невозможным.

Копирование настроек сетки (Специальная вставка)

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

  1. Выделите строку-донор (с уже настроенной сеткой) и нажмите Ctrl+C.
  2. Выделите целевую строку (строку-приемник).
  3. Нажмите правую кнопку мыши и выберите пункт Специальная вставка....
  4. В появившемся окне выберите только пункт Формат строк.

Таким образом, вы перенесете настройки ширины и количества колонок, сохранив при этом текст и данные в ячейках-приемниках.

← На главную