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

Отчеты и Аналитика · 10 мин

Как закрепить шапку отчёта в СКД 1С

Как закрепить шапку отчёта на СКД в 1С: свойство ФиксацияСверху, настройки в схеме компоновки, программный способ, типичные ошибки и проверка результата.

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

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

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

Как работает фиксация в СКД

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

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

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

Закрепление шапки через настройки варианта в конфигураторе

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

В нижней части окна настроек найдите группу параметров вывода — обычно это таблица «Параметры вывода» или кнопка «Параметры» в зависимости от версии платформы. Найдите параметр «Фиксация сверху» и установите нужное число строк. Стандартная шапка простого отчёта (заголовок полей одним уровнем) обычно занимает 1–2 строки; если сверху выводятся параметры и заголовок отчёта, добавьте их строки.

Чтобы определить точное число строк, сформируйте отчёт без фиксации и посчитайте строки от самой первой до последней строки шапки включительно. Проще всего кликнуть в последнюю строку шапки в табличном документе и посмотреть её номер в строке состояния или через свойства ячейки.

Порядок действий в конфигураторе
  1. 1
    Откройте схему компоновки данных отчёта, закладка «Настройки»
  2. 2
    Выберите вариант отчёта, для которого нужна фиксация
  3. 3
    Откройте параметры вывода и найдите «Фиксация сверху»
  4. 4
    Сформируйте отчёт и посчитайте строки шапки включительно
  5. 5
    Установите число строк в параметр, сохраните схему
  6. 6
    Перезапустите сеанс и проверьте прокрутку отчёта

Фиксация колонок слева

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

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

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

Программный способ закрепления шапки

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

Второй способ проще и надёжнее, когда результат уже сформирован в переменную типа «ТабличныйДокумент»:

Результат = Новый ТабличныйДокумент;

ПроцессорВывода.Вывести(ПроцессорКомпоновки, Результат);

Результат.ФиксацияСверху = 3;

Результат.ФиксацияСлева = 2;

Первый способ — через значение параметра вывода в настройках: найдите в коллекции Настройки.ПараметрыВывода элемент с параметром «ФиксацияСверху», установите использование и значение. Этот вариант удобен, когда отчёт выводится штатной командой формы и вмешиваться в процесс вывода нельзя.

1c
Результат.ФиксацияСверху = 3; Результат.ФиксацияСлева = 2;

Закрепление шапки в пользовательском режиме

Пользователь без доступа к конфигуратору может изменить фиксацию, если разработчик включил параметры вывода в пользовательские настройки. В этом случае в форме отчёта через кнопку «Изменить вариант» (или «Настройки» в зависимости от конфигурации) на закладке оформления/параметров вывода доступны «Фиксация сверху» и «Фиксация слева».

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

Учтите: пользовательские настройки сохраняются в хранилище настроек и применяются к конкретному варианту отчёта. Если администратор сбросит настройки или пользователь переключится на другой вариант, фиксацию придётся устанавливать заново.

Проверка результата и типичные ошибки

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

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

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

Типичные ошибки
01
Указано число строк «на глаз» — шапка рвётся или захватывает данные; считайте строки по сформированному документу
02
Не учтены строки заголовка отчёта и параметров сверху — они тоже входят в закреплённую область
03
Пользовательский вариант перекрывает настройки конфигуратора — фиксация «слетаает» у части пользователей
04
Ожидание, что фиксация перенесётся в Excel — при выгрузке закрепление областей нужно проверять отдельно
Контрольные точки

Как проверить результат

Прокрутка вниз
Норма

Шапка остаётся, данные уходят под неё

Тревожный признак

Часть заголовков исчезает или строки данных «зависают» сверху

Прокрутка вправо
Норма

Первые колонки неподвижны

Тревожный признак

Закреплена не та колонка или лишняя колонка

Отчёт у другого пользователя
Норма

Фиксация работает так же

Тревожный признак

У пользователя свой сохранённый вариант без фиксации

Альтернативы и ограничения

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

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

Ещё одна альтернатива — вывод отчёта в HTML или сводную таблицу, где поведение шапки определяется другими механизмами. Но для типовых задач учётных отчётов штатной фиксации табличного документа достаточно, и изобретать обходные пути не требуется.

Итог

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

Шапка отчёта СКД закрепляется параметром вывода «Фиксация сверху» (колонки — «Фиксация слева») в настройках варианта или программно через свойства табличного документа. Число строк и колонок определяйте по сформированному результату, а после настройки проверяйте прокрутку и поведение у пользователей с собственными вариантами.

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

Почему фиксация не срабатывает, хотя параметр установлен?

Чаще всего пользователь работает с ранее сохранённым вариантом отчёта, чьи настройки перекрывают настройки конфигуратора. Сбросьте настройки варианта у пользователя или добавьте параметр в его вариант. Также проверьте, не устанавливает ли код формы отчёта свойства табличного документа после вывода.

Можно ли закрепить шапку только для одной группировки внутри отчёта?

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

Сохранится ли закреплённая шапка при сохранении отчёта в Excel?

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

Как узнать точное количество строк шапки?

Сформируйте отчёт, кликните в ячейку последней строки шапки и посмотрите номер строки — например, в строке состояния табличного документа или через свойства области. Этот номер и есть значение для «Фиксации сверху».

Может ли пользователь сам включить фиксацию без конфигуратора?

Да, если разработчик включил параметры вывода «Фиксация сверху» и «Фиксация слева» в пользовательские настройки варианта. Тогда они доступны в форме настроек отчёта в режиме предприятия. Иначе потребуется доработка в конфигураторе.

Влияет ли фиксация на печать отчёта?

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