При разработке отчетов на системе компоновки данных (СКД) часто возникает необходимость закрепить заголовок таблицы, чтобы при прокрутке больших массивов данных шапка колонок оставалась на экране. Однако стандартный параметр Фиксация сверху = Авто нередко не срабатывает, либо фиксация пропадает после изменения настроек. Разберем по шагам, почему так происходит, как правильно настроить фиксацию интерактивно, как закрепить строки программно и с какими ограничениями платформы можно столкнуться.
Проанализируем ситуацию, при которой СКД отключает автоматическое закрепление строк:
Чтобы зафиксировать шапку таблицы без написания программного кода, выполним следующие действия в схеме компоновки данных:
Если структура отчета нестандартная и интерактивные настройки не дают стабильного результата, зафиксируем строки с помощью встроенного языка. Для этого переопределим процедуру ПриКомпоновкеРезультата в модуле объекта отчета.
Посмотрим на пример кода:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Стандартная обработка формирования отчета
// После вывода результата задаем количество фиксируемых строк
ДокументРезультат.ФиксацияСверху = 8;
КонецПроцедуры
Свойство ФиксацияСверху объекта ТабличныйДокумент принимает целочисленное значение и указывает платформе, сколько строк от верхнего края таблицы нужно закрепить неподвижно при вертикальной прокрутке.
Рассмотрим частый вопрос: можно ли зафиксировать только строки шапки (например, с 5-й по 8-ю), чтобы при прокрутке строки с 1-й по 4-ю (где находятся заголовок отчета, параметры и отборы) скрывались?
В платформе 1С:Предприятие свойство ФиксацияСверху всегда работает строго от первой строки табличного документа. Закрепить произвольный интервал строк в середине документа, прокручивая строки выше него, технически невозможно из-за архитектуры объекта ТабличныйДокумент.
Если зафиксированная область занимает слишком много места из-за служебной информации, оптимизируем вывод отчета следующими способами:
Не выводить;Не выводить;Не выводить.ВерхнийКолонтитул или НижнийКолонтитул табличного документа — они отображаются при печати и не увеличивают фиксированную область на экране.