Как сделать видимыми границы столбцов в таблице на управляемой форме 1С?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

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

Проанализируем ситуацию и разберем несколько практических способов, как решить эту задачу и улучшить визуальное восприятие таблиц для пользователя.

Способ 1: Чередование цветов фона колонок

Самый простой и быстрый способ визуально разделить столбцы — это раскрасить их фон в чередующиеся цвета с помощью механизма условного оформления. Можно использовать два близких, но различимых светлых оттенка, чтобы не перегружать интерфейс и не отвлекать пользователя.

Рассмотрим по шагам, как это настроить:

  1. Откройте нужную форму в конфигураторе.
  2. Перейдите на вкладку "Условное оформление" в палитре свойств формы.
  3. Добавьте новый элемент условного оформления.
  4. На вкладке "Оформление" установите флажок напротив свойства ЦветФона и выберите подходящий светлый оттенок (например, светло-серый или светло-бежевый).
  5. На вкладке "Оформляемые поля" выберите те колонки таблицы, которые вы хотите закрасить. Обычно выбирают каждую вторую колонку (вторую, четвертую, шестую и т.д.).
  6. Вкладку "Условие" можно оставить пустой, если оформление должно применяться всегда.

Важный момент: если в вашей таблице уже используется цветовая индикация для других целей (например, желтый цвет для заблокированных колонок и зеленый для доступных), прямое чередование может сбить пользователей с толку. В этом случае можно использовать разные оттенки одного и того же основного цвета. Например, для доступного периода чередовать "светло-зеленый" и "чуть более темный светло-зеленый". Это сохранит основную логику цветовой индикации, но добавит визуальное разделение столбцов.

Способ 2: Использование Поля табличного документа (ТабДок)

Это наиболее мощный, гибкий, но и самый трудоемкий способ. Он заключается в замене стандартного элемента Таблица на форме на элемент ПолеТабличногоДокумента. Этот подход дает вам полный программный контроль над внешним видом каждой ячейки, включая толщину, цвет и стиль границ, как при формировании печатных форм и отчетов.

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

Преимущества:

Недостатки:

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


// Процедура для установки границ для всех колонок
Процедура УстановитьГраницыТаблицы(РезультатЧтения)

    Колонка = 0;
    Пока Колонка <= РезультатЧтения.ШиринаТаблицы Цикл
        // Получаем область всей колонки
        Область = РезультатЧтения.Область(,Колонка,,Колонка);
        // Вызываем процедуру установки границ для этой области
        УстановитьГраницыОбласти(Область);
        Колонка = Колонка + 1;
    КонецЦикла;

КонецПроцедуры

// Вспомогательная процедура для установки стиля границ
Процедура УстановитьГраницыОбласти(Область)

    // Создаем объект Линия для рамки
    Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
    
    // Применяем линию ко всем границам области
    Область.ГраницаСверху = Линия;
    Область.ГраницаСнизу = Линия;
    Область.ГраницаСправа = Линия;
    Область.ГраницаСлева = Линия;
    
    // Устанавливаем цвет рамки (черный)
    Область.ЦветРамки = Новый Цвет(0,0,0);

КонецПроцедуры

// Пример вызова
УстановитьГраницыТаблицы(РезультатЧтения);
Показать(); // Метод для отображения изменений в Поле табличного документа

Этот код проходит по всем колонкам табличного документа, получает их как объект Область и применяет к ним сплошную черную границу со всех сторон.

Способ 3: Альтернативные оформительские приемы

Если первые два способа не подходят, можно рассмотреть несколько других, менее радикальных идей.

Изменение стиля шрифта

Вместо изменения цвета фона можно использовать условное оформление для изменения шрифта. Например, сделать текст в каждой второй колонке жирным. Это создаст визуальный ритм и поможет отделить столбцы друг от друга, не затрагивая цветовую схему, используемую для бизнес-логики.

Использование колонок-разделителей

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

Настройка стандартных линий

В свойствах самой таблицы на форме есть параметры Вертикальные линии и Горизонтальные линии. Можно попытаться сделать их более заметными, задав для всей таблицы свойство ЦветРамки. Однако, как показывает практика, в интерфейсе "Такси" эффект от этой настройки часто минимален, и линии все равно остаются блеклыми.

Выводы

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

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

← На главную