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

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

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

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

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

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

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

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

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

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

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

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

Откройте отчёт, нажмите «Ещё» → «Изменить вариант» (или «Настройки» → «Расширенные», в зависимости от конфигурации). Перейдите на закладку «Дополнительные настройки» и найдите параметры «Фиксация слева» и «Фиксация справа». Установите нужное количество колонок и сформируйте отчёт заново.

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

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

Фиксация справа: когда она нужна

Фиксация справа применяется реже и полезна, когда в конце отчёта расположены итоговые колонки — например, «Итого», «Остаток», «Сумма», — которые должны быть видны одновременно с началом таблицы. Значение параметра «Фиксация справа» задаётся аналогично: числом колонок от правого края.

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

Закрепление колонок в конфигураторе

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

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

Фиксацию можно задавать не только для отчёта целиком, но и для отдельных группировок: выделите группировку в дереве настроек и установите параметры вывода именно для неё. Это полезно, когда разные уровни отчёта имеют разную структуру колонок.

Программная установка фиксации колонок

В прикладном коде фиксация устанавливается через параметры вывода компоновщика настроек. Это удобно, когда значение зависит от условий — например, от числа выбранных полей или от режима формирования отчёта.

Пример установки фиксации двух первых колонок перед формированием отчёта:

ПараметрФиксация = Отчет.КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(

Новый ПараметрКомпоновкиДанных("ФиксацияСлева"));

Если ПараметрФиксация <> Неопределено Тогда

ПараметрФиксация.Использование = Истина;

ПараметрФиксация.Значение = 2;

КонецЕсли;

Аналогично устанавливается параметр «ФиксацияСправа». Если отчёт формируется программно через КомпоновщикМакетаКомпоновкиДанных и ПроцессорКомпоновкиДанных, параметры вывода задаются в настройках до выполнения компоновки макета.

При изменении настроек в обработчике «ПриКомпоновкеРезультата» помните: изменять нужно настройки компоновщика до формирования макета, а не готовый табличный документ. Хотя у табличного документа тоже есть свойство фиксации (ФиксацияСлева/ФиксацияСправа у объекта ТабличныйДокумент), его можно применить как запасной вариант уже после вывода результата.

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

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

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

Контрольные точки

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

Поведение при горизонтальной прокрутке
Норма

Первые N колонок остаются видимыми

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

Все колонки прокручиваются вместе

Значение параметра «Фиксация слева»
Норма

Число больше нуля, соответствует реальному числу колонок

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

Параметр пустой, равен нулю или «Использование» = Ложь

Учёт служебных колонок
Норма

Фиксация захватывает и служебную колонку группировки

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

Закреплена только половина нужных полей

Совместная фиксация слева и справа
Норма

Между закреплёнными зонами есть прокручиваемые колонки

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

Сумма фиксаций равна или больше числа колонок

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

Ограничения и альтернативные подходы

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

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

Способы закрепить колонки

Настройки варианта (пользовательский режим)

Быстро и без доработок; подходит для разовых и личных настроек, но зависит от прав и может быть сброшено

Схема компоновки в конфигураторе

Надёжное значение по умолчанию для всех пользователей; требует обновления конфигурации или внешнего отчёта

Программная установка параметров вывода

Гибко, учитывает условия выполнения; требует доработки кода и аккуратности с пользовательскими настройками

Свойства табличного документа после вывода

Запасной вариант для полностью программного формирования; не подходит для интерактивных отчётов на форме

Итог

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

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

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

Можно ли закрепить шапку (строки) отчёта СКД?

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

Почему фиксация «съехала» на одну колонку?

Чаще всего причина в служебной колонке, которую СКД добавляет слева для отображения группировок и иерархии. Она тоже участвует в подсчёте. Увеличьте значение «Фиксация слева» на единицу и проверьте результат.

Работает ли фиксация при выгрузке отчёта в Excel?

Закрепление областей — свойство табличного документа 1С. При сохранении в формат Excel закреплённые области, как правило, переносятся в виде закрепления областей листа, но результат зависит от версии платформы и формата сохранения. Проверяйте на конкретном файле.

Как сделать фиксацию для всех пользователей отчёта?

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

Почему параметр «Фиксация слева» не виден в настройках?

В простом (быстром) режиме пользовательских настроек дополнительные параметры вывода скрыты. Откройте расширенные настройки варианта отчёта через «Ещё» → «Изменить вариант» — параметры фиксации находятся на закладке «Дополнительные настройки».

Можно ли задавать разную фиксацию для разных группировок?

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