Управляемые формы интерфейса
Управляемые формы интерфейса — это технология построения пользовательского интерфейса в конфигурациях платформы «1С:Предприятие» 8, при которой внешний вид формы (расположение элементов, их состав и свойства) описывается не в коде на встроенном языке, а в виде декларативного представления — набора данных, хранящихся в метаданных конфигурации. В отличие от «обычных форм» (предыдущего поколения), где интерфейс жёстко задавался программно, управляемые формы отделяют логику приложения от визуального представления, что позволяет адаптировать интерфейс под различные устройства (персональные компьютеры, планшеты, смартфоны) и режимы работы (толстый клиент, тонкий клиент, веб-клиент, мобильная платформа).
История
Технология управляемых форм была введена в платформе «1С:Предприятие» версии 8.2, выпущенной в 2009 году. До этого, начиная с версии 8.0 (2003 год), использовались «обычные формы», которые представляли собой объекты, создаваемые и настраиваемые программно на встроенном языке. С ростом популярности веб-технологий и мобильных устройств возникла необходимость в универсальном механизме, способном работать одинаково в разных клиентских приложениях без переписывания кода.
В версии 8.3 (2013 год) управляемые формы стали основным и единственным рекомендуемым способом разработки интерфейсов для новых конфигураций. Обычные формы были объявлены устаревшими, хотя поддержка их сохраняется для обратной совместимости. С этого момента все типовые конфигурации фирмы «1С» (например, «Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом») разрабатываются исключительно с использованием управляемых форм.
Архитектура и принцип работы
Управляемая форма состоит из трёх основных частей:
- Метаданные формы — XML-описание, хранящееся в конфигурации. Оно включает перечень реквизитов (данных, с которыми работает форма), команд (действий пользователя) и элементов формы (полей ввода, таблиц, кнопок, надписей).
- Модуль формы — программный код на встроенном языке, который обрабатывает события (открытие формы, изменение данных, нажатие кнопок). Код пишется в процедурах и функциях, привязанных к конкретным элементам или форме в целом.
- Клиент-серверное взаимодействие — форма выполняется на стороне клиента (браузера или тонкого клиента), а данные и бизнес-логика обрабатываются на сервере. Это реализовано через механизм «синхронных вызовов» и «асинхронных вызовов» (начиная с версии 8.3.6).
Ключевое отличие от обычных форм — интерфейс не рисуется программно (нет команд типа ЭлементыФормы.Добавить(Тип("ПолеВвода"))). Вместо этого разработчик в конфигураторе визуально размещает элементы на макете формы, а платформа автоматически генерирует HTML-код (для веб-клиента) или нативное представление (для толстого/тонкого клиента). Это обеспечивает адаптивность: на узком экране смартфона элементы могут автоматически группироваться в одну колонку, а на широком мониторе — располагаться в несколько колонок.
Классификация элементов
Элементы управляемых форм делятся на несколько групп:
Функциональные элементы
- Поле ввода — для ввода и отображения значений (текст, число, дата, ссылка на справочник).
- Поле флажка — для булевых значений (да/нет).
- Поле переключателя — для выбора одного варианта из нескольких.
- Поле выбора — раскрывающийся список (комбобокс).
- Таблица — для отображения табличной части или набора записей регистра.
- Дерево — для иерархических данных.
- Диаграмма — для графического представления данных (гистограмма, круговая диаграмма, график).
Декоративные элементы
- Надпись — статический текст (заголовки, пояснения).
- Группа — контейнер для группировки других элементов (с рамкой или без).
- Декорация — линия, разделитель, картинка.
Служебные элементы
- Кнопка — для выполнения команды (например, «Записать», «Провести», «Сформировать отчёт»).
- Командная панель — панель с кнопками, привязанная к таблице или форме.
- Строка состояния — для отображения подсказок или текущего статуса.
Особенности разработки
Разработка управляемых форм ведётся в конфигураторе «1С:Предприятие» (режим «Конфигуратор»). Основные этапы:
- Создание формы — через меню «Форма» или автоматически при добавлении нового объекта метаданных (справочника, документа, отчёта).
- Настройка реквизитов — добавление полей, которые будут отображаться на форме (например, «Наименование», «Дата», «Сумма»). Реквизиты могут быть как простыми типами (строка, число), так и ссылочными (справочник, документ).
- Размещение элементов — перетаскивание реквизитов на макет формы. Платформа автоматически создаёт соответствующие поля ввода.
- Написание кода — в модуле формы прописываются обработчики событий (например,
ПриОткрытии,ОбработкаПроверкиЗаполнения,ОбработкаВыбора). - Настройка команд — создание кнопок и привязка их к процедурам.
Важная особенность — разделение кода на клиентский и серверный. Клиентский код выполняется на устройстве пользователя (браузер или тонкий клиент) и отвечает за интерфейс (например, открытие формы, изменение цвета элемента). Серверный код выполняется на сервере «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С-Образование»).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →