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