Как правильно добавить колонку в именованную область макета 1С и расширить границы табличного документа?

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

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

Разбор проблемы: почему область не подхватывает новую колонку?

Типичная ситуация: у нас есть область Данные, которая пересекается с областью Строка. Мы добавляем новую колонку в таблицу, но при выводе печатной формы программный код её «не видит» или выдает ошибку. Это происходит потому, что имя области жестко привязано к конкретным координатам ячеек (индексам строк и колонок). Рассмотрим, как можно решить эту задачу несколькими способами.

Способ 1: Переназначение имени области (Метод автора темы)

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

  1. Откроем макет и найдем нужную именованную область.
  2. Удалим текущее имя области. Для этого выделим её, перейдем в меню Таблица — Имена — Удалить имя (или просто снимем выделение в окне имен).
  3. Добавим новую колонку в таблицу стандартными средствами (ПКМ — Раздвинуть или Ctrl + Shift + +).
  4. Выделим новый диапазон ячеек, который теперь включает и старые данные, и новую колонку.
  5. Снова назначим имя области (например, Данные) через поле «Имя» или через меню.

Этот метод гарантирует, что в структуру области попадут именно те ячейки, которые нам нужны.

Способ 2: Быстрое переопределение через поле имени

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

  1. Выделим новый диапазон ячеек (вместе с новой колонкой).
  2. Вручную впишем в поле «Имя» (в левом верхнем углу) старое название области, например Данные.
  3. Нажмем Enter.

Система автоматически «перекинет» именованную область на новое выделение. Это гораздо быстрее, чем работа через контекстные меню.

Работа с пересечениями областей (Синтаксис Строка|Колонка)

Часто в коде мы встречаем конструкцию ПолучитьОбласть("Данные|Товар"). Проанализируем, что это значит для верстки макета. Это пересечение горизонтальной секции (строки) и вертикальной секции (колонки). Чтобы добавленная колонка корректно отобразилась, выполним проверку:

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

Нюанс с «Форматом строк»

Выясним причину, по которой колонки в макете могут «плыть» при добавлении новых элементов. В 1С существует механизм индивидуального формата строк. Если для области Шапка установлен один набор ширин колонок, а для области Строка — другой, то при вставке новой колонки 1С может предложить «Установить индивидуальный формат». Рассмотрим наши действия:

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

Использование горячих клавиш и визуальных инструментов

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

  1. Ctrl + Shift + + (плюс на цифровом блоке) — добавить колонку или строку.
  2. Ctrl + - (минус) — удалить выделенное.

Также рекомендуем включить визуальное отображение имен. Перейдем в меню: Таблица — Вид — Отображать именованные строки/колонки. После этого слева и сверху появятся цветные линии с названиями областей. Мы можем просто потянуть мышкой за край такой линии, чтобы расширить область Данные на новую колонку — это самый наглядный способ редактирования вложенности.

Программный вывод: Присоединить вместо Вывести

Иногда структура макета настолько сложна, что добавление колонки внутрь области ломает логику. В таких случаях разберем альтернативный вариант — метод Присоединить(). Вместо того чтобы пытаться втиснуть всё в одну область Данные|Строка, мы можем создать отдельную область для новой колонки и выводить её программно.

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


// Сначала выводим основную часть строки
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ТабДок.Вывести(ОбластьСтрока);

// Теперь динамически присоединяем новую колонку
ОбластьНоваяКолонка = Макет.ПолучитьОбласть("ДопДанные");
ОбластьНоваяКолонка.Параметры.Значение = "Дополнительная информация";
ТабДок.Присоединить(ОбластьНоваяКолонка);

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

Свойства заполнения: Текст, Параметр, Шаблон

Напоследок проверим свойство «Заполнение» для новой ячейки. После того как мы добавили колонку и расширили область, выделим ячейку и нажмем F4 (Свойства):

Соблюдение этих простых правил и использование визуальных инструментов редактора 1С позволит нам быстро и без ошибок модифицировать даже самые сложные печатные формы.

← На главную