Наиболее сложным в применении макетов является заполнение колонки “Макет” на вкладке “Макеты” в конструкторе СКД.
В природе существует неплохая справка по этому вопросу. Она помогает понять основные принципы. Но все равно каждый раз приходится экспериментировать с разными видами макетов, чтобы понять можно ли решить конкретную задачу с помощью этого инструмента или нет. Поэтому мне пришла идея выложить результаты экспериментов в виде статьи, чтобы потом можно было к ним обращаться, и в будущем сэкономить время. Не обязательно вчитываться в текст, достаточно быстро пробежаться по скриншотам, чтобы выбрать вид макета, который больше всего подходит для решаемой задачи
В статье я немного повторю упомянутую справку, чтобы изложить некоторые важные детали более понятным и конкретным языком.
Эксперименты я проводил над отчетом следующего вида.
Макет поля
Этот макет применяется к конкретной ячейке, в отличие от макетов группировки и заголовка группировки, которые применяются к целой строке.
Его можно накладывать на поля группировки и на поля ресурсов
Макет заголовка группировки
Данный вид макета, как уже было сказано выше, применяется ко всей строке заголовка.
Настройки
Если его назначить для самой верхней группировки, то он применится для всей шапки таблицы отчета. Как видно на рисунке, заголовки остальных группировок, а также заголовки ресурсов при этом скрываются. Поэтому приходится эти заголовки дорисовывать вручную. Иногда это и требуется, например для объединения ячеек в шапке
Настройки
Применять этот макет для группировок второго и более нижних уровней обычно не имеет смысла, т.к. получаемый результат мало где можно применить
Настройки
Однако если назначить строке макета высоту 1, то можно скрыть заголовки группировок текущего и следующего уровней. На рисунке ниже скрыты заголовки Должность и Сотрудник
Также заслуживает внимания использование типа макета Подвал, например для вывода подписантов.
Настройки
Использование типов Общий итог, насколько я понял ни на что не влияют. Мне не удалось создать настройку с этими типами, чтобы она применилась
Макет группировки
Этот макет применяется ко всей строке группировки. Он может применяться для некоторых типовых задач, хотя догадаться как его использовать не просто
Если применить этот макет к самой верхней группировке с типом Заголовок, то под каждой группировкой повторяется шапка таблицы. Применять такой макет имеет смысл в тех случаях, например, когда нужно вставить разрывы страницы перед каждой группировкой
Настройки
Если применить данную схему для группировки нижнего уровня, то получается вот что
Или, если дорисовать столбцы, то получится так
Если возникает задача изменить подвал с итогами, то нужно использовать этот макет с типом Общий итог подвал или Общий итог заголовок. Насколько я понял, эти два типа макета делают одно и то же
Настройки
Макет ресурсов
Макет используется только для ТАБЛИЦЫ. Он применяется на пересечении группировок, указанных в настройках
Настройки
Ограничения использования макетов
- Во многих случаях при использовании макетов теряется возможность настройки отчета пользователем. Он не сможет изменять порядок ресурсов и группировок, отключать ресурсы и группировки, т.к. при этом отчет принимает непонятный вид. Данный недостаток не распространяется только на макет поля.
- Нет возможности оформить с помощью макета ТОЛЬКО заголовок нужного ресурса (или группы ресурсов). Например, если нужно выровнять заголовки ресурсов по центру. Придется оформлять всю шапку таблицы полностью и получить ограничение из п.1
- Нет возможности оформить ТОЛЬКО заголовок итогов. Например, несколько раз требовалось заменить слово “Итого” на слово “Всего”. В этом случае придется отрисовывать всю строку итогов и получить ограничение из п.1 или придумывать что-нибудь другое.
Файлы
Все описанные выше примеры приложены к статье в виде файла для скачивания. Он содержит консоль СКД с набором схем (встроенным в нее). Запросы в примере не обращаются к таблицам базы данных, поэтому примеры запускаются на любой конфигурации в режиме управляемого приложения.
В