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

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

Как закрепить область в отчете 1С

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

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

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

Как закрепить область вручную в сформированном отчете

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

Сначала определите, какая область должна оставаться на месте. Поставьте курсор в ячейку, которая находится на одну строку ниже закрепляемой шапки и на одну колонку правее закрепляемых колонок. Например, чтобы закрепить первые две строки и первую колонку, активной должна быть ячейка B3.

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

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

Как закрепить шапку отчета через настройки СКД

Если отчет построен на системе компоновки данных (большинство типовых отчетов в 1С:Бухгалтерии, УТ, ERP), фиксацию можно задать в настройках, и она будет применяться при каждом формировании. Это избавляет пользователей от ручных действий.

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

Чтобы настройка сохранилась для всех пользователей, её нужно зафиксировать в варианте отчета: «Ещё → Сохранить вариант отчета» или через изменение варианта в режиме «Ещё → Изменить вариант». Пользовательские настройки, сохраненные только у себя, на коллег не распространятся.

Когда настройки СКД недоступны

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

Программная фиксация области в коде 1С

Разработчику доступны два свойства объекта «ТабличныйДокумент»: ФиксацияСверху (количество закрепленных строк сверху) и ФиксацияСлева (количество закрепленных колонок слева). Их устанавливают после вывода шапки, но до показа документа пользователю.

bsl
ТабДок = Новый ТабличныйДокумент;
// ... вывод макета ...
ТабДок.ФиксацияСверху = 3; // закрепить 3 верхние строки
ТабДок.ФиксацияСлева = 2;  // закрепить 2 левые колонки

Значения задаются в номерах строк и колонок табличного документа, а не в «логических» строках отчета. Если шапка занимает строки с 1 по 4 (включая заголовок отчета и период), то ФиксацияСверху = 4. Практический прием: запомнить номер строки после вывода шапки через ТабДок.ВысотаТаблицы и использовать его как значение фиксации.

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

Как выбрать подходящий способ

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

Сравнение вариантов

Ручная фиксация в меню

Подходит для разового просмотра. Не требует прав и доработок, но сбрасывается при переформировании отчета

Параметры фиксации в СКД

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

Свойства ФиксацияСверху/ФиксацияСлева в коде

Для внешних отчетов и печатных форм с ручным выводом. Требует прав разработчика и изменения конфигурации или внешней обработки

Маршрут решения

Как выбрать действие

Нужно быстро посмотреть большой отчет один разЗакрепите область вручную через меню «Таблица → Вид → Фиксация таблицы»
Отчет типовой, на СКД, и фиксация нужна постоянноУстановите «Фиксировать строки/колонки» в расширенных настройках и сохраните вариант
Отчет внешний или выводится программноПопросите разработчика установить ФиксацияСверху и ФиксацияСлева в модуле объекта

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

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

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

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

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

Шапка остается наверху, данные прокручиваются под ней

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

Шапка уходит вверх вместе с данными — фиксация не включилась

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

Закрепленные колонки видны слева

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

Колонки уходят влево — курсор при включении стоял не в той ячейке

Переформирование отчета
Норма

Фиксация сохраняется (настройки СКД или код)

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

Фиксация сбрасывается — была включена только вручную

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

Ограничения и особенности

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

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

Если шапка отчета многоуровневая (группировки колонок, объединенные ячейки), сначала сформируйте отчет и посчитайте реальное число строк шапки — визуально «одна» строка заголовков часто занимает 3–4 строки табличного документа.
ПЗ
Практическое замечание

Часто задаваемые вопросы

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

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

Можно ли закрепить только колонки, без строк?

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

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

Нет, фиксация табличного документа 1С не преобразуется в закрепление областей Excel. После сохранения откройте файл и закрепите области средствами Excel: вкладка «Вид» → «Закрепить области».

Как закрепить шапку, если отчет формируется в фоне и открывается потом?

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

Что делать, если пункта «Фиксация таблицы» нет в меню?

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

Влияет ли фиксация на производительность больших отчетов?

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

Итог

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

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