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