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