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

Документы и Печать · 8 мин

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

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

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

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

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

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

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

Интерактивное закрепление области в режиме просмотра

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

Число в свойстве — это количество строк или колонок от края, которые будут закреплены. Например, значение «Фиксация сверху = 3» закрепит первые три строки документа. Если шапка занимает две строки, а вы указали три, под шапкой прилипнет и первая строка данных — это не ошибка, но выглядит неаккуратно.

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

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

Программное закрепление области в модуле

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

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

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

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

Фиксация в отчётах на СКД и типовых конфигурациях

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

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

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

Как выбрать способ

Нужно разово посмотреть документ с закреплённой шапкойЗадайте фиксацию интерактивно через свойства в режиме просмотра
Настройка нужна всем пользователям постоянноЗадайте свойства программно в модуле формирования документа
Отчёт на СКД, менять конфигурацию нельзяИспользуйте группировки и сокращение колонок в настройках варианта

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

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

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

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

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

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

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

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

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

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

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

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

Граница закреплённой зоны
Норма

Под шапкой сразу идёт первая строка данных

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

Прилипла лишняя строка или обрезан заголовок — скорректируйте число строк

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

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

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

Настройка пропала — она была только интерактивной

FAQ

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

Откройте сформированный документ и через меню «Таблица» или окно свойств задайте «Фиксация сверху» — число строк шапки. Учтите, что настройка может не сохраниться при следующем формировании отчёта; для постоянного эффекта потребуется доработка конфигурации.

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

Нет. Фиксация — свойство экранного просмотра в 1С. В сохранённом файле Excel закрепите области штатной командой «Вид → Закрепить области» уже в самом Excel.

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

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

Почему после задания ФиксацияСверху документ перестал прокручиваться?

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

Как программно узнать, сколько строк занимает шапка?

После вывода областей шапки считайте значение ТабДок.ВысотаТаблицы в переменную и используйте его как значение ФиксацияСверху — это исключает ошибки ручного подсчёта.

Работает ли фиксация в веб-клиенте?

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

Итог

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

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