Открыть сервисСервис

Управляемые формы интерфейса

Управляемые формы интерфейса — это технология построения пользовательского интерфейса в конфигурациях платформы «1С:Предприятие» 8, при которой внешний вид формы (расположение элементов, их состав и свойства) описывается не в коде на встроенном языке, а в виде декларативного представления — набора данных, хранящихся в метаданных конфигурации. В отличие от «обычных форм» (предыдущего поколения), где интерфейс жёстко задавался программно, управляемые формы отделяют логику приложения от визуального представления, что позволяет адаптировать интерфейс под различные устройства (персональные компьютеры, планшеты, смартфоны) и режимы работы (толстый клиент, тонкий клиент, веб-клиент, мобильная платформа).

История

Технология управляемых форм была введена в платформе «1С:Предприятие» версии 8.2, выпущенной в 2009 году. До этого, начиная с версии 8.0 (2003 год), использовались «обычные формы», которые представляли собой объекты, создаваемые и настраиваемые программно на встроенном языке. С ростом популярности веб-технологий и мобильных устройств возникла необходимость в универсальном механизме, способном работать одинаково в разных клиентских приложениях без переписывания кода.

В версии 8.3 (2013 год) управляемые формы стали основным и единственным рекомендуемым способом разработки интерфейсов для новых конфигураций. Обычные формы были объявлены устаревшими, хотя поддержка их сохраняется для обратной совместимости. С этого момента все типовые конфигурации фирмы «1С» (например, «Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом») разрабатываются исключительно с использованием управляемых форм.

Архитектура и принцип работы

Управляемая форма состоит из трёх основных частей:

  • Метаданные формы — XML-описание, хранящееся в конфигурации. Оно включает перечень реквизитов (данных, с которыми работает форма), команд (действий пользователя) и элементов формы (полей ввода, таблиц, кнопок, надписей).
  • Модуль формы — программный код на встроенном языке, который обрабатывает события (открытие формы, изменение данных, нажатие кнопок). Код пишется в процедурах и функциях, привязанных к конкретным элементам или форме в целом.
  • Клиент-серверное взаимодействие — форма выполняется на стороне клиента (браузера или тонкого клиента), а данные и бизнес-логика обрабатываются на сервере. Это реализовано через механизм «синхронных вызовов» и «асинхронных вызовов» (начиная с версии 8.3.6).

Ключевое отличие от обычных форм — интерфейс не рисуется программно (нет команд типа ЭлементыФормы.Добавить(Тип("ПолеВвода"))). Вместо этого разработчик в конфигураторе визуально размещает элементы на макете формы, а платформа автоматически генерирует HTML-код (для веб-клиента) или нативное представление (для толстого/тонкого клиента). Это обеспечивает адаптивность: на узком экране смартфона элементы могут автоматически группироваться в одну колонку, а на широком мониторе — располагаться в несколько колонок.

Классификация элементов

Элементы управляемых форм делятся на несколько групп:

Функциональные элементы

  • Поле ввода — для ввода и отображения значений (текст, число, дата, ссылка на справочник).
  • Поле флажка — для булевых значений (да/нет).
  • Поле переключателя — для выбора одного варианта из нескольких.
  • Поле выбора — раскрывающийся список (комбобокс).
  • Таблица — для отображения табличной части или набора записей регистра.
  • Дерево — для иерархических данных.
  • Диаграмма — для графического представления данных (гистограмма, круговая диаграмма, график).

Декоративные элементы

  • Надпись — статический текст (заголовки, пояснения).
  • Группаконтейнер для группировки других элементов (с рамкой или без).
  • Декорация — линия, разделитель, картинка.

Служебные элементы

  • Кнопка — для выполнения команды (например, «Записать», «Провести», «Сформировать отчёт»).
  • Командная панель — панель с кнопками, привязанная к таблице или форме.
  • Строка состояния — для отображения подсказок или текущего статуса.

Особенности разработки

Разработка управляемых форм ведётся в конфигураторе «1С:Предприятие» (режим «Конфигуратор»). Основные этапы:

  1. Создание формы — через меню «Форма» или автоматически при добавлении нового объекта метаданных (справочника, документа, отчёта).
  2. Настройка реквизитов — добавление полей, которые будут отображаться на форме (например, «Наименование», «Дата», «Сумма»). Реквизиты могут быть как простыми типами (строка, число), так и ссылочными (справочник, документ).
  3. Размещение элементов — перетаскивание реквизитов на макет формы. Платформа автоматически создаёт соответствующие поля ввода.
  4. Написание кода — в модуле формы прописываются обработчики событий (например, ПриОткрытии, ОбработкаПроверкиЗаполнения, ОбработкаВыбора).
  5. Настройка команд — создание кнопок и привязка их к процедурам.

Важная особенность — разделение кода на клиентский и серверный. Клиентский код выполняется на устройстве пользователя (браузер или тонкий клиент) и отвечает за интерфейс (например, открытие формы, изменение цвета элемента). Серверный код выполняется на сервере «1С:Предприятие» и отвечает за работу с базой данных, бизнес-логику, расчёты. Обмен данными между клиентом и сервером происходит через механизм «контекстных вызовов» и «параметров сеанса».

Преимущества и недостатки

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

  • Кроссплатформенность — одна форма работает в веб-клиенте, толстом клиенте, тонком клиенте и на мобильных устройствах без изменений.
  • Адаптивность — интерфейс автоматически подстраивается под разрешение экрана (режим «адаптивной верстки»).
  • Централизованное обновление — изменения в форме вступают в силу сразу для всех пользователей после обновления конфигурации на сервере.
  • Удобство поддержки — метаданные формы хранятся в структурированном виде, что упрощает сравнение версий и слияние конфликтов при командной разработке.

Недостатки

  • Сложность отладки — из-за разделения на клиент и сервер ошибки могут проявляться на разных этапах выполнения, что затрудняет поиск причин.
  • Ограниченная гибкость — не все визуальные эффекты (например, сложная анимация) реализуемы без написания дополнительного кода на JavaScript (для веб-клиента).
  • Зависимость от версии платформы — новые возможности управляемых форм появляются только с выходом новых версий «1С:Предприятие», что может ограничивать функциональность для пользователей старых релизов.

Применение

Управляемые формы используются во всех современных конфигурациях на платформе «1С:Предприятие» 8.3 и выше. Основные области применения:

  • Бухгалтерский и налоговый учёт — формы документов (счета, накладные, акты), справочников (контрагенты, номенклатура), отчётов (оборотно-сальдовая ведомость, анализ счёта).
  • Управление персоналом и расчёт зарплаты — формы кадровых документов (приказы, трудовые договоры), табелей учёта рабочего времени, расчётных листков.
  • Торговля и склад — формы заказов покупателей, приходных накладных, инвентаризаций, отчётов по остаткам и продажам.
  • Мобильные решения — формы для сбора данных в полевых условиях (например, приём товара на складе через планшет).

Интересные факты

  • Управляемые формы поддерживают механизм «расширений конфигурации», позволяющий дорабатывать типовые конфигурации без изменения исходного кода (например, добавлять новые поля на форму документа).
  • В версии 8.3.10 появилась возможность использовать «синтаксис асинхронных вызовов» (async/await), что упростило написание кода, работающего с сервером без блокировки интерфейса.
  • Для веб-клиента управляемые формы генерируют HTML и CSS, которые могут быть стилизованы с помощью каскадных таблиц стилей (CSS), что позволяет адаптировать внешний вид под корпоративный стиль.

Источники

  • Радченко М.Г., Хрусталева Е.Ю. «1С:Предприятие 8.3. Практическое пособие разработчика». — М.: 1С-Паблишинг, 2021.
  • Официальная документация фирмы «1С»: «Управляемые формы. Руководство разработчика» (версия 8.3).
  • Статья «Управляемые формы в 1С:Предприятие 8.2» // Журнал «1С:ИТС», № 4, 2009.
  • Материалы курса «Конфигурирование в системе 1С:Предприятие 8.3» (учебный центр «1С-Образование»).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru