Работа с макетами печатных форм в 1С — это ежедневная задача разработчика, которая на первый взгляд кажется тривиальной. Однако, когда макет имеет сложную структуру с вложенными горизонтальными и вертикальными областями, простое добавление колонки может вызвать затруднения. В этой статье мы подробно разберем процесс редактирования макета, выясним, как правильно переназначить имена областей, и рассмотрим нюансы, которые помогут сохранить верстку печатной формы в целости.
Типичная ситуация: у нас есть область Данные, которая пересекается с областью Строка. Мы добавляем новую колонку в таблицу, но при выводе печатной формы программный код её «не видит» или выдает ошибку. Это происходит потому, что имя области жестко привязано к конкретным координатам ячеек (индексам строк и колонок). Рассмотрим, как можно решить эту задачу несколькими способами.
Проанализируем самый простой, но надежный «ручной» способ. Если область «застряла» в старых границах, мы можем выполнить следующие действия:
Ctrl + Shift + +).Данные) через поле «Имя» или через меню.Этот метод гарантирует, что в структуру области попадут именно те ячейки, которые нам нужны.
Давайте рассмотрим более эффективный вариант, который не требует удаления старого имени. В конфигураторе 1С над сеткой макета слева находится поле «Имя». Мы можем использовать его для мгновенного изменения границ:
Данные.Enter.Система автоматически «перекинет» именованную область на новое выделение. Это гораздо быстрее, чем работа через контекстные меню.
Часто в коде мы встречаем конструкцию ПолучитьОбласть("Данные|Товар"). Проанализируем, что это значит для верстки макета. Это пересечение горизонтальной секции (строки) и вертикальной секции (колонки). Чтобы добавленная колонка корректно отобразилась, выполним проверку:
Товар).Данные).Если мы расширили только горизонтальную область, но забыли про вертикальную, метод ПолучитьОбласть не сможет найти ячейку на пересечении, и колонка останется пустой или не выведется вовсе.
Выясним причину, по которой колонки в макете могут «плыть» при добавлении новых элементов. В 1С существует механизм индивидуального формата строк. Если для области Шапка установлен один набор ширин колонок, а для области Строка — другой, то при вставке новой колонки 1С может предложить «Установить индивидуальный формат». Рассмотрим наши действия:
Будьте осторожны: если вы очистите формат строк, вся печатная форма может стать «кривой», так как колонки выровняются по стандартной сетке. Лучше добавлять колонку внутри существующего формата или аккуратно раздвигать границы в каждой секции отдельно.
Профессиональная работа в редакторе макетов немыслима без горячих клавиш. Попробуем использовать их для ускорения процесса:
Ctrl + Shift + + (плюс на цифровом блоке) — добавить колонку или строку.Ctrl + - (минус) — удалить выделенное.Также рекомендуем включить визуальное отображение имен. Перейдем в меню: Таблица — Вид — Отображать именованные строки/колонки. После этого слева и сверху появятся цветные линии с названиями областей. Мы можем просто потянуть мышкой за край такой линии, чтобы расширить область Данные на новую колонку — это самый наглядный способ редактирования вложенности.
Иногда структура макета настолько сложна, что добавление колонки внутрь области ломает логику. В таких случаях разберем альтернативный вариант — метод Присоединить(). Вместо того чтобы пытаться втиснуть всё в одну область Данные|Строка, мы можем создать отдельную область для новой колонки и выводить её программно.
Посмотрим на пример кода:
// Сначала выводим основную часть строки
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ТабДок.Вывести(ОбластьСтрока);
// Теперь динамически присоединяем новую колонку
ОбластьНоваяКолонка = Макет.ПолучитьОбласть("ДопДанные");
ОбластьНоваяКолонка.Параметры.Значение = "Дополнительная информация";
ТабДок.Присоединить(ОбластьНоваяКолонка);
Этот метод позволяет гибко управлять составом колонок в зависимости от условий (например, выводить определенную колонку только для конкретных типов документов).
Напоследок проверим свойство «Заполнение» для новой ячейки. После того как мы добавили колонку и расширили область, выделим ячейку и нажмем F4 (Свойства):
Вес: [Масса].Соблюдение этих простых правил и использование визуальных инструментов редактора 1С позволит нам быстро и без ошибок модифицировать даже самые сложные печатные формы.