Работа с отчетами в 1С:Предприятие часто требует тонкой настройки внешнего вида, особенно когда речь идет о заголовках. Система компоновки данных (СКД) предоставляет гибкие инструменты для управления структурой отчета, но вывод заголовка может вызвать вопросы даже у опытных пользователей. Эта статья поможет разобраться, как правильно настроить заголовок в отчете СКД, избежать типичных ошибок и оптимизировать процесс для разных версий платформы.

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

Что такое заголовок в отчете СКД и зачем он нужен

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

  • 📌 Идентификация отчета — пользователь сразу понимает, какие данные перед ним (например, "Оборотно-сальдовая ведомость за март 2026").
  • 🔍 Контекстная информация — может содержать период отчета, организацию, ответственного сотрудника.
  • 🎨 Визуальная структура — разделяет шапку отчета от основных данных, улучшая восприятие.
  • 🔄 Динамическое обновление — заголовок может меняться в зависимости от выбранных параметров (даты, подразделения и т.д.).

В отличие от статических заголовков в обычных печатных формах, СКД позволяет гибко управлять содержимым шапки. Например, можно вывести в заголовке не только название отчета, но и текущую дату формирования, имя пользователя, который его сгенерировал, или даже логотип компании. Это особенно важно для регламентированных отчетов, где требуется строгое соблюдение формата.

С технической точки зрения заголовок в СКД формируется через:

  • 📝 Настройки схемы компоновки (в конструкторе отчета).
  • 💻 Программный код в модуле отчета (на языке ).
  • 🖼️ Внешние макеты (если требуется сложное оформление).
📊 Какой инструмент вы чаще используете для настройки отчетов в 1С?
Конструктор СКД
Ручное редактирование схемы
Программирование в модуле
Внешние макеты

Способы вывода заголовка в СКД: сравнение подходов

Существует три основных способа вывести заголовок в отчете СКД. Каждый из них имеет свои плюсы и минусы, а выбор зависит от задачи:

Способ Преимущества Недостатки Когда использовать
Через конструктор СКД ✅ Быстро, не требует программирования
✅ Подходит для стандартных заголовков
❌ Ограниченные возможности форматирования
❌ Нельзя динамически менять текст
Простые отчеты с фиксированным названием
Программно в модуле ✅ Полный контроль над содержимым
✅ Динамические заголовки (даты, параметры)
❌ Требует знания языка
❌ Дольше разрабатывать
Сложные отчеты с изменяемыми данными
Через внешний макет ✅ Максимальная гибкость оформления
✅ Можно добавлять логотипы, таблицы
❌ Сложно поддерживать
❌ Требует навыков работы с макетами
Фирменные бланки, отчеты с логотипом

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

⚠️ Внимание: В версиях 1С:Предприятие 8.3.20+ появились дополнительные настройки для работы с заголовками в СКД. Если вы используете более старую платформу, некоторые функции могут отсутствовать. Проверьте актуальность настроек в документации к вашей версии.

Пошаговая инструкция: вывод заголовка через конструктор СКД

Это самый простой способ, который не требует программирования. Подходит для большинства стандартных отчетов. Рассмотрим процесс на примере 1С:Бухгалтерия 3.0:

  1. Откройте отчет в режиме 1С:Предприятие (не в конфигураторе!).

  2. Перейдите в Все действия → Изменить вариант отчета (или нажмите F5).

  3. В открывшемся окне выберите вкладку Настройки и найдите раздел Заголовок (в некоторых версиях он может называться Шапка).

  4. В поле Текст заголовка введите нужный текст. Здесь можно использовать:

    • 📅 Фиксированный текст (например, "Отчет по продажам").
    • 🔄 Параметры (вставляются через кнопку Вставить параметр).
    • 📊 Выражения (например, ТекстДокумента() для вывода названия документа).
  • Настройте шрифт, выравнивание и другие параметры форматирования в разделе Оформление.

  • Сохраните вариант отчета и сформируйте его заново — заголовок появится в верхней части.

  • Текст заголовка корректно отображается в предварительном просмотре|

    Все параметры (даты, организации) подставляются автоматически|

    Шрифт и выравнивание соответствуют фирменному стилю|

    Заголовок не обрезается при печати на бумаге-->

    Если вам нужно вывести в заголовке динамические данные (например, текущую дату или имя пользователя), используйте кнопку Вставить параметр и выберите нужное поле из списка. Например, для даты формирования отчета выберите параметр ДатаНачала или ТекущаяДата().

    💡

    Чтобы заголовок отображался на каждой странице отчета, установите флажок "Повторять заголовок на каждой странице" в настройках компоновки. Это полезно для многостраничных документов, которые потом будут распечатаны.

    Программный вывод заголовка: работа с модулем отчета

    Когда возможностей конструктора недостаточно (например, нужно вывести сложное выражение или данные из внешнего источника), заголовок настраивается через программный код. Для этого:

    1. Откройте отчет в Конфигураторе (режим 1С:Предприятие не подходит!).

    2. Найдите модуль отчета (обычно это файл с расширением .bsl или вкладка Модуль в свойствах отчета).

    3. Используйте процедуру ПриКомпоновкеРезультата или ПередВыводомРезультата (в зависимости от версии платформы). Пример кода:

      Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
      

      // Получаем текущий заголовок из схемы компоновки

      Заголовок = КомпоновщикМакета.ПолучитьЗаголовок();

      // Добавляем динамические данные

      ТекстЗаголовка = "Отчет по продажам за " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") +

      " (сформировал: " + Пользователь.Имя + ")";

      // Устанавливаем новый заголовок

      КомпоновщикМакета.УстановитьЗаголовок(ТекстЗаголовка);

      СтандартнаяОбработка = Истина;

      КонецПроцедуры

    4. Сохраните изменения и обновите отчет в пользовательском режиме.

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

      • 📌 Период отчета (из параметров СКД).
      • 🏢 Название организации (из справочника Организации).
      • 📈 Итоговые показатели (например, сумму продаж).
    ⚠️ Внимание: При программной настройке заголовка убедитесь, что переменные (например, Пользователь.Имя) доступны в контексте выполнения. В некоторых конфигурациях может потребоваться явное получение данных через запросы или обращение к глобальным параметрам.

    Динамические заголовки: примеры сложных сценариев

    Иногда заголовок должен меняться в зависимости от условий. Рассмотрим несколько практических примеров:

    1. Заголовок с условием (например, для разных типов отчетов)

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

    Если Параметры.ТипОтчета = Перечисление.ТипыОтчетов.Продажи Тогда
    

    ТекстЗаголовка = "Отчет по продажам за " + Формат(Параметры.Период.ДатаНачала, "ДФ=dd.MM.yyyy");

    ИначеЕсли Параметры.ТипОтчета = Перечисление.ТипыОтчетов.Закупки Тогда

    ТекстЗаголовка = "Отчет по закупкам за " + Формат(Параметры.Период.ДатаНачала, "ДФ=dd.MM.yyyy");

    КонецЕсли;

    2. Заголовок с данными из внешнего источника

    Если нужно вывести в заголовке информацию, которой нет в параметрах отчета (например, курс валюты на дату формирования), используйте запрос:

    Запрос = Новый Запрос;
    

    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1

    | КурсыВалют.Курс КАК КурсДоллара

    |ИЗ

    | РегистрСведений.КурсыВалют КАК КурсыВалют

    |ГДЕ

    | КурсыВалют.Валюта = &Валюта

    | И КурсыВалют.Дата = &Дата";

    Запрос.УстановитьПараметр("Валюта", Справочники.Валюты.НайтиПоНаименованию("Доллар США"));

    Запрос.УстановитьПараметр("Дата", ТекущаяДата());

    Результат = Запрос.Выполнить();

    Выборка = Результат.Выбрать();

    Если Выборка.Следующий() Тогда

    ТекстЗаголовка = "Отчет по продажам (курс доллара: " + Формат(Выборка.КурсДоллара, "ЧЦ=2") + ")";

    КонецЕсли;

    3. Многострочный заголовок с разным оформлением

    Для создания заголовка с несколькими строками и разным форматированием используйте HTML-теги (если отчет выводится в HTML-документ) или специальные символы:

    ТекстЗаголовка = "ОТЧЕТ ПО ПРОДАЖАМ" + Символы.ПС + // Перевод строки
    

    "Период: " + Формат(Параметры.ДатаНачала, "ДФ=dd.MM.yyyy") + " - " + Формат(Параметры.ДатаОкончания, "ДФ=dd.MM.yyyy") + Символы.ПС +

    "Сформировал: " + Пользователь.Имя;

    Как проверить корректность динамического заголовка?

    Для отладки динамических заголовков используйте функцию Сообщить() в модуле отчета. Например:

    Сообщить(ТекстЗаголовка);

    Это выведет текст заголовка в окно сообщений, где вы сможете оценить его содержимое до формирования отчета. Также полезно использовать Предварительный просмотр в конструкторе СКД, чтобы увидеть, как заголовок будет выглядеть на печати.

    Распространенные ошибки и как их избежать

    При работе с заголовками в СКД пользователи часто сталкиваются с типичными проблемами. Вот самые частые из них и способы их решения:

    • 🚫 Заголовок не отображается:

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

    • 📏 Заголовок обрезается при печати:

      Уменьшите размер шрифта или сократите текст. В настройках макета проверьте параметры полей и отступов.

    • 🔄 Динамические параметры не подставляются:

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

    • 🖼️ Логотип в заголовке не отображается:

      Проверьте путь к файлу изображения. В внешних макетах используйте относительные пути (например, "/ОбщиеМакеты/Логотип.png").

    • 📑 Заголовок повторяется на каждой странице, хотя не нужен:

      В настройках компоновки снимите флажок Повторять заголовок на каждой странице.

    • ⚠️ Внимание: Если вы используете тонкий клиент или веб-клиент, некоторые настройки заголовков могут работать иначе, чем в толстом клиенте. Например, шрифты или выравнивание могут отображаться некорректно. Всегда тестируйте отчет в том режиме, в котором он будет использоваться конечными пользователями.

      Продвинутые техники: внешние макеты и HTML-oформление

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

      Чтобы создать заголовок через внешний макет:

      1. В Конфигураторе откройте отчет и перейдите на вкладку Макеты.

      2. Создайте новый макет типа Табличный документ или HTML-документ (в зависимости от нужного формата).

      3. В макете разметьте область заголовка. Например, для табличного документа:

        // Устанавливаем область заголовка
        

        Область = Макет.Область("Заголовок");

        // Добавляем текст

        Область.ВывестиТекст("ОТЧЕТ ПО ПРОДАЖАМ", ШрифтНадписи);

        // Добавляем логотип (предварительно загрузите картинку в макет)

        Область.ВывестиКартинку(Макет.Картинки.Логотип, 0, 0, 100, 50);

      4. В модуле отчета свяжите макет с компоновщиком:

        Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
        

        // Получаем макет

        МакетЗаголовка = ПолучатьМакет("МакетЗаголовка");

        // Выводим макет в начало документа

        ДокументРезультат.ВывестиМакет(МакетЗаголовка);

        СтандартнаяОбработка = Истина;

        КонецПроцедуры

      Для HTML-макетов можно использовать теги разметки, что дает еще больше возможностей:

      <div>
      

      ОТЧЕТ ПО ПРОДАЖАМ<br>

      <span>Период: {ДатаНачала} - {ДатаОкончания}</span>

      </div>

      Важно: при использовании HTML-макетов в СКД убедитесь, что в настройках компоновки включена опция "Использовать HTML для оформления". В противном случае теги не будут интерпретированы, и заголовок отобразится как обычный текст.

      💡

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

      FAQ: ответы на частые вопросы

      Как вывести в заголовке текущую дату и время?

      Используйте функцию ТекущаяДата() для даты и ТекущееВремя() для времени. Пример:

      ТекстЗаголовка = "Отчет сформирован: " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy HH:mm");

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

      Можно ли в заголовке использовать данные из регистра сведений?

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

      Запрос = Новый Запрос;
      

      Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1

      | РегистрыСведений.КурсыВалют.Курс КАК Курс

      |ИЗ

      | РегистрСведений.КурсыВалют КАК РегистрыСведений.КурсыВалют

      |ГДЕ

      | РегистрыСведений.КурсыВалют.Валюта = &Валюта

      | И РегистрыСведений.КурсыВалют.Дата = &Дата";

      Запрос.УстановитьПараметр("Валюта", Справочники.Валюты.ДолларСША);

      Запрос.УстановитьПараметр("Дата", ТекущаяДата());

      Курс = Запрос.Выполнить().Выбрать().Курс;

      ТекстЗаголовка = "Курс доллара на " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + ": " + Курс;

      Почему заголовок отображается не на всех страницах?

      Это зависит от двух настроек:

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

      Если заголовок пропал при экспорте в Excel, попробуйте использовать внешний макет — он лучше сохраняет структуру при экспорте.

      Как сделать заголовок с разным шрифтом для разных частей?

      Есть два способа:

      1. Через внешний макет: разбейте заголовок на несколько областей и настройте для каждой свой шрифт.

      2. Через HTML: используйте теги <span> с разными стилями:

        ТекстЗаголовка = "<span style='font-size: 16pt; font-weight: bold;'>ОТЧЕТ</span>" +
        

        "<span style='font-size: 12pt; color: red;'> (Важно!)</span>";

      Можно ли в заголовке СКД использовать картинки?

      Да, но только через внешние макеты. В самом конструкторе СКД нет инструментов для вставки изображений. Алгоритм:

      1. Создайте макет типа Табличный документ.
      2. Добавьте в него картинку через Макет.Картинки.Добавить().
      3. В модуле отчета выведите макет в начало документа.

      Пример кода для добавления логотипа:

      // Загружаем картинку в макет (делается один раз при создании макета)
      

      Макет.Картинки.Добавить("Логотип", Новый Картинка(ПутьКФайлуЛоготипа));

      // В модуле отчета выводим картинку

      Область = Макет.Область("Заголовок");

      Область.ВывестиКартинку(Макет.Картинки.Логотип, 10, 10, 100, 50);