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

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

Разберем частый вопрос разработчиков 1С: можно ли установить изображение или подложку в качестве фона для управляемой формы в платформе 1С:Предприятие 8.3.

Ограничения платформы и штатного механизма

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

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

Вариант 1. Использование элемента «Поле HTML-документа»

Рассмотрим наиболее гибкий подход к созданию интерфейса с произвольным фоновым рисунком. Он заключается в использовании веб-технологий внутри управляемой формы.

  1. Добавим на форму реквизит с типом Строка.
  2. Создадим элемент формы с видом Поле HTML-документа и свяжем его с созданным реквизитом.
  3. Сверстаем HTML-код, задав фоновое изображение с помощью CSS-свойства background-image, и расположим поверх него необходимые текстовые или графические блоки.

Посмотрим на пример формирования HTML-кода для вывода интерфейса с фоновой картинкой:


КодHTML = "<html>
|<head>
|<style>
|  body {
|    background-image: url('file:///C:/Images/background.jpg');
|    background-size: cover;
|    font-family: Arial, sans-serif;
|  }
|  .content {
|    background: rgba(255, 255, 255, 0.8);
|    padding: 20px;
|    margin: 50px;
|    border-radius: 8px;
|  }
|</style>
|</head>
|<body>
|  <div class=""content"">
|    <h2>Информационная панель</h2>
|    <p>Форма сформирована с использованием HTML и CSS.</p>
|  </div>
|</body>
|</html>";
Элементы.ПолеHTML.Документ.write(КодHTML);

Передача событий и данных из HTML-формы в модуль 1С реализуется через обработку кликов, URL-схемы или взаимодействие JavaScript с клиентом 1С.

Вариант 2. Использование поля табличного документа

Если интерфейс допускает вывод данных в табличном или отчетном виде, проанализируем использование объекта ТабличныйДокумент. В отличие от самой управляемой формы, у табличного документа есть полноценная штатная поддержка фонового изображения.

Для этого используются свойства КартинкаФона и ОтображениеФона. Картинку можно установить как в макете, так и программно из кода 1С:


ТабДок = Новый ТабличныйДокумент;
ФоноваяКартинка = БиблиотекаКартинок.ФонЗаставки;
ТабДок.КартинкаФона = ФоноваяКартинка;
ТабДок.ОтображениеФона = ОтображениеФонаТабличногоДокумента.Заполнить;

Вариант 3. Использование декораций и полей картинки

Если требуется добавить на форму баннер, логотип или графический заголовок, разберем работу с декоративными элементами. На форму можно добавить элемент с видом Декорация (вид Картинка) или Поле картинки.

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

Вариант 4. Зонирование с помощью цвета элементов

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

У объекта ГруппаФормы (обычная группа, страница или панель) можно настроить свойство ЦветФона. Это позволяет разделить интерфейс на смысловые зоны и задать визуальный стиль приложения.

Вариант 5. Оформление начальной страницы

Рассмотрим случай, когда фоновое изображение требуется для рабочего стола программы. Оформление начальной страницы приложения реализуется через настройку формы с графическими баннерами или с помощью встроенного HTML-документа, который служит интерактивным главным экраном системы.

← На главную