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