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

Разработка и Конфигурация · 10 мин

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

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

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

В 1С фиксация реализована на уровне объекта «ТабличныйДокумент» и доступна тремя способами: через свойство документа в режиме просмотра, программно из встроенного языка и через настройку макета в конфигураторе. Выбор способа зависит от того, кто выполняет задачу — конечный пользователь или разработчик — и где формируется документ.

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

Что такое фиксация строк и когда она нужна

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

Механизм аналогичен закреплению областей в Excel, но управляется не через меню «Окно», а через свойства самого табличного документа. Фиксация хранится внутри документа: если сохранить табличный документ в файл mxl и открыть на другом компьютере, закрепление сохранится.

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

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

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

Типовой фрагмент кода при формировании печатной формы или отчёта:

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

// ... вывод областей макета ...

ТабДок.ФиксацияСверху = 2; // закрепить две верхние строки (шапку)

ТабДок.ФиксацияСлева = 1; // закрепить первую колонку

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

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

bsl
ТабДок.ФиксацияСверху = 2;
ТабДок.ФиксацияСлева = 1;

Как закрепить строки в режиме просмотра (для пользователя)

Конечный пользователь тоже может закрепить строки без изменения конфигурации. В управляемых формах откройте табличный документ (отчёт, печатную форму), затем в главном меню выберите «Таблица» → «Вид» → «Фиксация таблицы» (в ряде версий платформы пункт называется «Зафиксировать таблицу» или доступен через кнопку на панели). В появившемся диалоге укажите количество фиксируемых строк и колонок.

В обычных формах (старые конфигурации на обычном приложении) аналогичная команда находится в меню «Таблица» → «Зафиксировать таблицу». После установки фиксации в заголовке или внешнем виде документа появляется визуальная граница — линия, отделяющая закреплённую область.

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

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

Фиксация через макет в конфигураторе

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

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

Для отчётов на СКД фиксацию удобнее задавать программно в модуле объекта отчёта или в расширении, поскольку структура шапки у СКД-отчётов формируется динамически и зависит от настроек пользователя.

Фиксация колонок и комбинированное закрепление

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

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

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

Способы фиксации: что выбрать

Программно в коде

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

Интерактивно пользователем

Быстро и без изменения конфигурации, но сбрасывается при переформировании отчёта.

В макете конфигуратора

Подходит при выводе макета целиком; при выводе по областям не срабатывает автоматически.

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

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

Частая ошибка — установка фиксации до вывода областей с последующим пересозданием документа: некоторые операции (например, повторное присвоение ТабДок = Новый ТабличныйДокумент или очистка) обнуляют свойства. Устанавливайте фиксацию в самом конце формирования.

Ещё одна ошибка — неверный подсчёт строк шапки. Если закреплено меньше строк, чем занимает шапка, часть заголовков уйдёт при прокрутке; если больше — «прилипнут» первые строки данных. Посчитайте строки шапки по макету или по итоговой высоте выведенных областей.

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

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

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

Шапка остаётся наверху, видна линия границы фиксации

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

Шапка уходит за экран — фиксация не применилась

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

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

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

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

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

Фиксация сохраняется (задана в коде)

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

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

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

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

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

Свойства фиксации доступны в толстом, тонком и веб-клиенте, однако точное расположение интерактивной команды различается между версиями платформы и режимами (обычные/управляемые формы). Если пункта меню нет — проверьте кнопку «Ещё» на панели табличного документа.

FAQ: частые вопросы о закреплении строк в 1С

Можно ли закрепить строки в середине таблицы, а не сверху?

Нет. Механизм фиксации в табличном документе 1С позволяет закреплять только строки сверху и колонки слева, начиная от края документа. Закрепить произвольную строку в середине нельзя.

Почему фиксация пропадает после перезапуска отчёта?

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

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

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

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

Не гарантированно. При сохранении табличного документа в формат Excel закрепление областей может не переноситься — это зависит от способа сохранения. Проверяйте результат в Excel и при необходимости закрепляйте области там вручную.

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

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

Можно ли задать фиксацию в расширении конфигурации?

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

Итог

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

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