Отчеты и Аналитика · 11 мин
Как вывести заголовок в отчете 1С
Как вывести заголовок в отчете 1С: через настройки СКД, параметр Заголовок, макет и программный код. Пошаговые инструкции, типичные ошибки и ответы на вопросы.
Заголовок отчета в 1С — это не просто надпись на экране: он попадает в печатную форму, выгружается в Excel и PDF, отображается при сохранении варианта отчета. Проблема в том, что способ вывода заголовка зависит от того, как построен отчет: на системе компоновки данных (СКД), на табличном макете или полностью программно. Универсальной кнопки «добавить заголовок» нет, поэтому нужно понимать, с каким механизмом вы работаете.
Чаще всего заголовок «пропадает» по одной из трех причин: в настройках СКД отключен вывод параметра «Заголовок», разработчик забыл передать значение параметра при программном формировании, либо в самописном отчете область заголовка просто не выводится в табличный документ. Ниже разобраны все три сценария с конкретными действиями для пользователя и для разработчика.
Материал применим к конфигурациям на управляемых формах (Управление торговлей, ERP, Бухгалтерия, Зарплата и управление персоналом), а также к самописным отчетам. Для обычных форм логика та же, отличается только расположение элементов настроек.
Как устроен заголовок отчета в 1С
В типовых отчетах, построенных на СКД, заголовок — это предопределенный параметр вывода. Он хранится вместе с другими параметрами данных (период, организация и т.д.), но отвечает не за отбор данных, а за оформление результата. Значение параметра выводится в верхнюю часть табличного документа перед основными данными отчета.
У параметра «Заголовок» есть два независимых свойства: само значение (текст заголовка) и признак использования (флажок). Частая ситуация: текст заголовка задан, но флажок снят — и в отчете ничего не отображается. Проверять нужно оба свойства.
В отчетах, сформированных без СКД (через макет табличного документа), заголовок — это обычная область макета, которую разработчик выводит методом Вывести() или ВывестиГоризонтальнуюОбласть(). Здесь заголовок полностью контролируется кодом, и пользователь без доработки на него повлиять не может.
Вывод заголовка через настройки отчета (режим пользователя)
Если вы работаете с типовым отчетом и заголовок не отображается, сначала проверьте настройки варианта. Откройте отчет, нажмите «Еще» → «Изменить вариант» (или «Настройки» в зависимости от конфигурации). Перейдите на вкладку «Настройки» или «Параметры» — там должен быть параметр «Заголовок».
Установите флажок использования параметра и введите нужный текст. Если параметра в списке не видно, переключите режим просмотра настроек на «Расширенный» или «Все» — в простом режиме служебные параметры скрыты. После применения настроек сформируйте отчет заново: заголовок появится в верхней части результата.
Чтобы заголовок сохранялся при следующих открытиях, сохраните вариант отчета под своим именем («Еще» → «Сохранить вариант отчета»). Иначе при выборе стандартного варианта настройки сбросятся.
- 1Откройте отчет и перейдите в изменение варианта настроек
- 2Найдите параметр «Заголовок» (при необходимости включите расширенный режим)
- 3Установите флажок использования и введите текст заголовка
- 4Сформируйте отчет и проверьте, что заголовок появился вверху
- 5Сохраните вариант отчета, чтобы настройка не потерялась
Программный вывод заголовка в СКД
Разработчику чаще всего нужно задать заголовок из кода — например, чтобы подставить в него период отчета или название организации. Для этого используется коллекция ПараметрыДанных компоновщика настроек. Типовой прием выглядит так:
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
Настройки = КомпоновщикНастроек.Настройки;
ПараметрЗаголовок = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(
Новый ПараметрКомпоновкиДанных("Заголовок"));
ПараметрЗаголовок.Использование = Истина;
ПараметрЗаголовок.Значение = "Продажи за " + Формат(Период.ДатаНачала, "ДЛФ=D");
Обратите внимание: параметр «Заголовок» относится именно к ПараметрыВывода, а не к ПараметрыДанных. Это типичная ошибка — разработчик ищет его среди параметров данных, не находит и решает, что параметра нет. К параметрам вывода относятся также «МакетОформления», «ВыводитьЗаголовок» и другие оформительские настройки.
Есть и более грубый способ — параметр ВыводитьЗаголовок, который принимает значения «Выводить», «НеВыводить» и «Авто». В режиме «Авто» СКД сама решает, показывать ли заголовок, и это иногда приводит к его исчезновению при встраивании отчета в форму. Явная установка значения снимает неопределенность.
Заголовок в отчете на макете без СКД
В самописных отчетах заголовок выводится как обычная область табличного макета. Создайте в макете область «Заголовок» (выделите строки и задайте имя области), разместите в ячейках текст и параметры, затем в модуле объекта отчета выведите область первой:
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетОтчета");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок.Параметры.Период = ПредставлениеПериода(ДатаНачала, ДатаОкончания);
ТабДок.Вывести(ОбластьЗаголовок);
Порядок вывода областей критичен: табличный документ заполняется последовательно сверху вниз, и если вывести область заголовка после данных, она окажется внизу. Переделать порядок в уже сформированном документе нельзя — только сформировать заново.
Для красивого оформления задайте в ячейках заголовка шрифт большего размера, выравнивание по центру и объединение ячеек на всю ширину таблицы. Если ширина отчета меняется в зависимости от данных, объединяйте ячейки программно после формирования, иначе заголовок окажется уже таблицы.
Заголовок при программном формировании и выводе в форму
Когда отчет формируется программно и результат выводится в реквизит формы типа «ТабличныйДокумент» или «ПолеТабличногоДокумента», заголовок формы и заголовок отчета — разные вещи. Заголовок окна (формы) задается свойством Заголовок формы, а заголовок внутри результата — параметром СКД или областью макета.
При выгрузке в Excel или сохранении в файл учитывается только содержимое табличного документа. Поэтому если отчет будет печататься или отправляться контрагентам, заголовок должен быть именно внутри результата, а не только в заголовке окна. Проверяйте это на этапе разработки: сформируйте отчет и сохраните его в файл — заголовок должен присутствовать в сохраненном документе.
Как проверить результат
Текст отображается над таблицей отчета
Заголовок есть в настройках, но флажок использования снят
Заголовок виден в предварительном просмотре печати
На экране есть, в предпросмотре нет — заголовок задан только у формы
Первая строка файла содержит текст заголовка
В файле сразу идет шапка таблицы — заголовок не выведен в табличный документ
Типичные ошибки и как их исправить
Самая частая ошибка пользователей — поиск заголовка не в том месте настроек. В расширенном режиме настроек СКД параметры разбиты на группы, и «Заголовок» находится в блоке параметров вывода, а не среди отборов. Если вы ищете его глазами по списку отборов, вы его не найдете.
У разработчиков типичны три ошибки. Первая — обращение к параметру по строковому имени без проверки результата: если НайтиЗначениеПараметра вернул Неопределено, следующая строка вызовет исключение. Вторая — установка заголовка до загрузки настроек в компоновщик: настройки перезаписывают значение, и заголовок пропадает. Третья — ожидание, что заголовок формы попадет в печатную форму.
Когда стандартного заголовка недостаточно
Если нужен многострочный заголовок с логотипом, реквизитами организации и подписями, параметра СКД «Заголовок» не хватит — он выводит только одну строку текста. В этом случае используют макет оформления СКД с собственной областью заголовка либо выводят шапку в табличный документ до вызова процессора вывода СКД.
Для вывода произвольной шапки до результата СКД последовательность такая: сформируйте табличный документ, выведите в него область шапки из макета, затем выводите результат компоновки методом Вывести с параметром, добавляющим результат ниже. Это стандартный прием для отчетов с фирменной шапкой.
Альтернатива — макет оформления компоновки, где можно переопределить внешний вид заголовка, итогов и группировок. Это сложнее в настройке, но дает единый стиль для всех отчетов конфигурации.
Сравнение способов вывода заголовка
Быстро и без кода, доступно пользователю. Ограничение — одна строка текста без сложного оформления
Позволяет подставлять период и организацию автоматически. Требует доступа к коду отчета
Полный контроль оформления, многострочная шапка. Сложнее в реализации и поддержке
Единый стиль для многих отчетов. Избыточен для разовой задачи
Ответы на частые вопросы
Почему заголовок есть на экране, но пропадает при печати?
Скорее всего, текст задан как заголовок формы или окна, а не как содержимое табличного документа. В печать и в файлы попадает только табличный документ. Решение — вывести заголовок параметром СКД или областью макета в сам результат отчета.
Как подставить в заголовок период отчета автоматически?
Программно: получите параметр «Заголовок» из ПараметрыВывода компоновщика настроек и сформируйте строку с помощью функции Формат() или ПредставлениеПериода(). Пользователю без доработки остается вводить период в текст вручную при изменении настроек.
Можно ли сделать заголовок из нескольких строк в отчете на СКД?
Стандартный параметр выводит одну строку. Для многострочной шапки выведите область макета в табличный документ до вывода результата компоновки либо используйте макет оформления СКД с собственным макетом заголовка.
Заголовок пропал после выбора другого варианта отчета. Что делать?
Каждый вариант отчета хранит собственные настройки, включая параметр «Заголовок». Откройте изменение варианта, заново включите параметр и сохраните вариант. Если нужен один заголовок для всех вариантов — задавайте его программно в модуле отчета.
Как убрать заголовок из отчета совсем?
Снимите флажок использования у параметра «Заголовок» в настройках варианта либо установите параметру вывода «ВыводитьЗаголовок» значение «НеВыводить». В самописном отчете удалите или закомментируйте вывод области заголовка в коде.
Где искать параметр «Заголовок», если его нет в списке настроек?
Переключите просмотр настроек в расширенный режим — в простом режиме служебные параметры вывода скрыты. В коде ищите параметр в коллекции ПараметрыВывода, а не ПараметрыДанных.
Что важно запомнить
В отчетах на СКД заголовок — это параметр вывода «Заголовок»: проверяйте и текст, и флажок использования. Программно он задается через ПараметрыВывода компоновщика настроек. В отчетах на макете заголовок выводится первой областью в табличный документ. Для печати и выгрузки заголовок должен быть внутри результата, а не только в заголовке формы.