К статье
Практический материал

Разработка и Конфигурация · 10 мин

Какие данные может содержать макет 1С, созданный конструктором макетов

Разбираем, какие данные содержит макет 1С, созданный конструктором макетов: области, параметры, шаблоны, подстановки и особенности работы с табличным документом.

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

Макет, созданный конструктором, — это по сути обычный табличный документ, разбитый на именованные области. Внутри ячеек конструктор размещает не только статический текст, но и специальные инструкции платформе: параметры, шаблоны, выражения подстановки. Именно эти данные определяют, что попадёт в итоговую печатную форму при вызове процедуры вывода.

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

Структура макета: области как основной контейнер данных

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

Области бывают горизонтальные и вертикальные. Конструктор по умолчанию формирует горизонтальные области — полосы строк, выводимые в документ сверху вниз. Вертикальные области и объединённые (прямоугольные) зоны в макете конструктора встречаются редко, их добавляют уже вручную при доработке сложных форм, например накладных с несколькими колонками подписей.

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

Статический текст и оформление ячеек

Значительная часть содержимого макета — фиксированный текст: заголовки («Накладная №», «Поставщик», «Итого»), подписи к полям, рамки таблиц. Конструктор размещает этот текст в ячейках с типом заполнения Текст. Такие ячейки выводятся «как есть» и не зависят от данных информационной базы.

Помимо текста, каждая ячейка хранит свойства оформления: шрифт, размер, начертание, цвет фона, толщину и стиль границ, выравнивание, формат чисел и дат. Конструктор задаёт базовое оформление, а разработчик при необходимости меняет его вручную через палитру свойств. Формат ячейки влияет на представление параметров: например, число с форматом ЧДЦ=2 выведет сумму с двумя знаками после запятой независимо от того, как число хранится.

Параметры: главный механизм передачи данных

Ключевой тип данных в макете конструктора — параметры. В ячейке они выглядят как имя в квадратных скобках: [НомерДок], [Контрагент], [Сумма]. У такой ячейки тип заполнения — Параметр. При выводе области программа заполняет значения через структуру или метод Параметры.ИмяПараметра = Значение, и платформа подставляет их вместо скобок.

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

Ограничение параметра: он заменяется целиком значением одного поля. Если нужно вставить значение внутрь предложения («Договор № [Номер] от [Дата]»), конструктор использует другой тип заполнения — шаблон.

Шаблоны: текст с подстановками внутри строки

Ячейки с типом заполнения Шаблон содержат смешанные данные: обычный текст и встроенные в него параметры. Пример, который часто генерирует конструктор для шапки документа: Расходная накладная № [НомерДок] от [ДатаДок]. При выводе подстановки в квадратных скобках заменяются значениями, а остальной текст остаётся неизменным.

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

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

Служебные данные, которые конструктор пишет в макет

Кроме видимого содержимого, конструктор оставляет в макете служебный след. Во-первых, это типовые имена областей и параметров — по ним генерируемый конструктором программный код обращается к макету. Если переименовать область Шапка в Заголовок и забыть поправить код, печать завершится ошибкой «Область не найдена».

Во-вторых, макет хранит настройки самого табличного документа: параметры страницы (ориентация, поля, масштаб), колонтитулы, повторяемые строки заголовка таблицы (свойство «Повторять при печати»), защиту ячеек. Эти данные не относятся к реквизитам объекта, но напрямую влияют на вид распечатанной формы.

В-третьих, в ячейках могут присутствовать расшифровки — значения, которые платформа передаёт при интерактивном щелчке по ячейке. Конструктор их не создаёт, но при доработке макетов отчётов расшифровку добавляют, чтобы пользователь мог «провалиться» в детальные данные.

ОбластиШапка, Строка, Подвал

Имена областей должны совпадать с обращениями в коде вывода

Параметры[ИмяПараметра] в ячейке

Тип заполнения ячейки — Параметр; имена видны в свойствах области

ШаблоныТекст с подстановками [Имя]

Тип заполнения — Шаблон; позволяют вставлять значения внутрь фразы

ОформлениеШрифт, границы, формат

Задаётся в палитре свойств ячейки, влияет на представление значений

Как посмотреть и проверить данные макета

Открыть макет можно из дерева конфигурации: у объекта (документа, справочника) в ветке «Макеты» либо в ветке «Общие макеты». Двойной щелчок открывает табличный документ в режиме редактирования. Чтобы увидеть тип данных конкретной ячейки, выделите её и откройте палитру свойств — поле «Заполнение» покажет, текст это, параметр или шаблон.

Полный список параметров области виден так: выделить область (щелчок по её имени слева), открыть свойства и перейти на закладку «Параметры». Там перечислены все имена, которые программа должна заполнить. Это самый быстрый способ сверить макет с кодом вывода после доработок.

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

Типичные ошибки и ограничения

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

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

Ограничение самого конструктора: он создаёт только линейную структуру «шапка — строки — подвал». Многоуровневые формы (группировки, итоги по группам, вложенные таблицы) строят вручную, добавляя собственные области Группа, ИтогГруппы и управляя порядком их вывода из кода.

Типичные ошибки при работе с макетом
01
Переименовали параметр в макете, но не в коде — на печати пустое значение или ошибка обращения
02
Добавили строки за пределами именованной области — фрагмент никогда не выводится
03
Использовали тип Параметр для составной фразы — пришлось переделывать ячейку на Шаблон
04
Передали в параметр ссылку вместо значения — на печать попало служебное представление объекта

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

Может ли макет конструктора содержать рисунки и штрихкоды?

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

Чем макет конструктора отличается от макета СКД?

Макет конструктора печатных форм — это табличный документ с областями и параметрами, который заполняется программно. Макет СКД (системы компоновки данных) описывает структуру отчёта: поля, группировки, ресурсы — и заполняется автоматически компоновщиком. Это разные механизмы с разным назначением.

Почему на печати видны квадратные скобки с именем параметра?

Это значит, что ячейка имеет тип заполнения «Текст», а не «Параметр» или «Шаблон». Платформа воспринимает скобки как обычные символы. Исправление: в свойствах ячейки сменить заполнение на нужный тип.

Можно ли хранить в макете данные, не связанные с реквизитами объекта?

Да. Параметр — просто именованная метка: в него можно передать любое вычисленное в коде значение, например текущую дату, итог по строкам или строку, собранную из нескольких реквизитов. Макет не знает происхождения данных.

Как узнать, какие области реально используются в коде?

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

Что произойдёт, если удалить параметр из макета, но оставить его заполнение в коде?

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

Итог

Что важно запомнить

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