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