Как вернуть цвет рамки по умолчанию для таблиц в обычных формах на платформе 1С 8.3?

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

При переходе конфигураций с обычными формами на платформу 1С:Предприятие 8.3 (начиная с версий 8.3.7 и выше) разработчики часто сталкиваются с изменением визуального оформления табличных полей. Вместо привычных светло-коричневых или бежевых разделительных линий из стиля 8.2 таблицы начинают отрисовываться с жесткими черными вертикальными и горизонтальными линиями. Разберем, почему это происходит и какими способами можно восстановить аккуратный интерфейс.

Причины изменения поведения платформы

Выясним причину такого отображения. В платформе 1С:Предприятие 8.2 для табличных полей свойство ЦветРамки по умолчанию наследовало значение из активного стиля оформления — стиль: Рамка. Это обеспечивало мягкий светло-коричневый оттенок линий сетки.

Начиная с версии 8.3.7 фирма «1С» изменила логику значений по умолчанию для элементов управления обычных форм. Новым элементам управления и автогенерируемым таблицам стало присваиваться значение Авто. При значении Авто цвет разделителей и границ вычисляется платформой на основе системной цветовой палитры Windows (цвета рамок окон и элементов объемных объектов). В современных темах оформления операционной системы это приводит к отображению контрастных черных или темно-серых линий.

Решение 1. Явная установка стилевого цвета в формах конфигуратора

Если табличное поле размещено на форме, созданной в конфигураторе (форма документа, справочника, отчета или внешней обработки), исправить отображение достаточно просто. Выполним следующие шаги:

  1. Откроем нужную форму в конфигураторе.
  2. Выделим элемент управления ТабличноеПоле и откроем палитру свойств.
  3. Найдем свойство ЦветРамки. Если в нем установлено значение Авто, нажмем кнопку выбора.
  4. В окне выбора цвета перейдем на вкладку Стиль и выберем значение Рамка.
  5. Сохраним форму. После этого сетка таблицы вернет прежний цвет, заданный в основном стиле конфигурации.

Также это свойство можно переопределить программно при инициализации формы в обработчике ПриОткрытии:


Процедура ПриОткрытии()
    ЭлементыФормы.ТабличноеПолеСписок.ЦветРамки = ЦветаСтиля.Рамка;
КонецПроцедуры

Решение 2. Обход проблемы в автогенерируемых формах

Наибольшие неудобства вызывают формы, которых физически нет в дереве метаданных: системное окно настроек компоновщика отчета (СКД), стандартные диалоги выбора строки из объекта ТаблицаЗначений или СписокЗначений. Платформа генерирует их динамически «на лету», жестко прописывая свойствам элементов значение Авто. В обычном приложении нет глобального клиентского события для перехвата создания таких динамических окон. Рассмотрим пути решения этой задачи:

  1. Создание собственной формы настроек СКД. Для отчетов на схеме компоновки данных создадим собственную форму отчета и подчиненную ей форму настроек. На этой форме разместим табличные поля компоновщика настроек и явно укажем им свойство ЦветРамки со значением Рамка.
  2. Замена стандартных диалогов выбора. Вместо использования стандартного метода выбора из динамической таблицы значений разработаем универсальную общую форму выбора. В ней настроим табличное поле в полном соответствии с корпоративным стилем оформления и будем вызывать ее модально или с блокировкой окна владельца.

Решение 3. Установка режима совместимости конфигурации

Проанализируем конфигурацию в целом. Если проект работает в обычном приложении и не использует новые функции платформы 8.3, можно переключить режим совместимости:

  1. Откроем свойства корневого узла конфигурации.
  2. Найдем параметр Режим совместимости.
  3. Установим значение Версия 8.3.6 (или более раннюю версию).

При включении совместимости с версией 8.3.6 платформа возвращает прежний механизм инициализации визуальных стилей по умолчанию, и автогенерируемые таблицы снова используют цвета стиля конфигурации вместо системных цветов Авто.

Решение 4. Использование альтернативной версии платформы или настройка ОС

Если изменить режим совместимости или доработать формы невозможно, рассмотрим инфраструктурные варианты:

  1. Откат на платформу ветки 8.3.6. Если конфигурация жестко привязана к оформлению 8.2 без доработок метаданных, надежным вариантом остается запуск базы на платформе версии 8.3.6, где логика рамок еще не была переведена на системный Авто.
  2. Корректировка темы оформления Windows. Поскольку значение Авто транслирует цвета из параметров оформления окон операционной системы, настройка системной палитры (цвета объемных элементов и разделителей) на клиентских машинах или сервере терминалов позволяет смягчить черный цвет рамок на светло-серый.
← На главную