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

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

Как зафиксировать таблицу в 1С

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

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

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

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

Где в 1С вообще нужна фиксация таблицы

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

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

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

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

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

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

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

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

Программная фиксация табличного документа

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

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

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

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

Фиксация колонок в табличном поле и динамическом списке

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

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

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

Фиксация в отчётах на СКД

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

Для типовых отчётов, где результат показывается в элементе «Результат» на форме отчёта, пользователь может зафиксировать области интерактивно через меню табличного документа после формирования. Это не требует доработки конфигурации и доступно при наличии соответствующих прав.

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

Типичные ошибки и ограничения

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

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

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

Типичные ошибки
01
Попытка закрепить произвольную строку в середине — фиксируются только первые N строк и колонок
02
Фиксация до формирования колонок таблицы формы — закрепляются не те поля
03
Ожидание, что фиксация сработает при печати — для печати нужны сквозные строки
04
Номер строки больше высоты документа — таблица перестаёт прокручиваться
05
Установка свойств после Показать() без обновления отображения

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

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

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

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

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

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

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

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

Заголовки исчезают вместе с первыми строками

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

Первые колонки остаются на месте

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

Наименования строк уезжают вместе с остальными колонками

Разделительная линия
Норма

Видна граница между фиксированной и обычной областью

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

Линии нет — фиксация не применилась

Узкое окно
Норма

Остаётся видимая прокручиваемая часть

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

Всё окно занято зафиксированными колонками

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

Итог

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

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

Частые вопросы

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

Нет, платформа 1С поддерживает фиксацию только первых строк сверху и первых колонок слева. Если критично видеть итоговую колонку, переместите её в начало таблицы или продублируйте ключевые данные в левой части.

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

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

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

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

Передаётся ли фиксация в Excel при сохранении табличного документа?

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

Что делать, если после фиксации таблица вообще не прокручивается?

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

Как повторить шапку таблицы на каждой странице при печати?

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