Разработка и Конфигурация · 10 мин
УФ в 1С: что это такое и как работают управляемые формы
УФ 1С — это управляемые формы: разбираем, что это такое, чем отличаются от обычных форм, где применяются и как перейти на управляемое приложение.
УФ в 1С — это сокращение от «управляемые формы», технологии построения интерфейса, которая пришла на смену обычным формам начиная с платформы 1С:Предприятие 8.2. Если вы встретили аббревиатуру УФ в вакансии, задании на доработку или документации, речь почти всегда идёт именно об управляемых формах — декларативном способе описания интерфейса, при котором разработчик задаёт структуру и логику, а внешний вид и отрисовку платформа формирует самостоятельно.
Понимание разницы между обычными и управляемыми формами критично для любого, кто работает с 1С: от неё зависит, какие конфигурации можно запускать в веб-клиенте, как дорабатывать типовые решения и почему код, написанный для старого интерфейса, не работает в новом. Современные конфигурации — «1С:Бухгалтерия 3.0», «1С:ERP», «1С:Зарплата и управление персоналом 3» — построены исключительно на управляемых формах.
Что такое управляемые формы простыми словами
В обычных формах разработчик вручную размещал каждый элемент — кнопку, поле ввода, таблицу — в конкретных координатах на экране. Форма «знала», как она выглядит, и жёстко привязывалась к толстому клиенту на Windows. Любое изменение разрешения экрана или попытка запустить приложение через браузер ломали отображение.
В управляемых формах подход обратный: разработчик описывает что должно быть на форме (реквизиты, команды, табличные части, группы элементов), а платформа сама решает, как это отрисовать — с учётом клиента, разрешения экрана и настроек пользователя. Поэтому одна и та же форма корректно выглядит в толстом клиенте, тонком клиенте и в браузере без единой строки дополнительного кода.
Ключевые отличия УФ от обычных форм
Различия между двумя технологиями не только визуальные — они затрагивают архитектуру кода, модель выполнения и возможности развёртывания. Ниже сопоставление основных характеристик.
| Параметр | Обычные формы | Управляемые формы |
|---|---|---|
| Описание интерфейса | Ручное размещение элементов по координатам | Декларативное описание, отрисовка платформой |
| Выполнение кода | Весь код на клиенте | Разделение: клиентские и серверные процедуры |
| Поддерживаемые клиенты | Только толстый клиент | Толстый, тонкий и веб-клиент |
| Работа с данными | Прямое обращение к объектам | Через реквизиты формы и специальные типы (ДанныеФормыСтруктура) |
| Режим запуска | Обычное приложение | Управляемое приложение, «Такси» |
Принципиальное отличие — разделение контекста выполнения. В управляемой форме код явно делится на клиентские процедуры (директива &НаКлиенте) и серверные (&НаСервере, &НаСервереБезКонтекста). Это позволяет выполнять тяжёлые операции с базой данных на сервере, а на клиент передавать только результат, что снижает сетевой трафик и нагрузку.
Где используются управляемые формы
Все актуальные типовые конфигурации фирмы «1С» работают в режиме управляемого приложения: «1С:Бухгалтерия 3.0», «1С:Управление торговлей 11», «1С:ERP Управление предприятием 2», «1С:Зарплата и управление персоналом 3.1», «1С:Комплексная автоматизация 2». Интерфейс этих решений построен на управляемых формах в режиме «Такси».
Обычные формы встречаются в устаревших конфигурациях — «Управление торговлей 10.3», «Бухгалтерия 2.0», «Зарплата и управление персоналом 2.5», а также в старых самописных решениях. Такие конфигурации можно запустить только в толстом клиенте в режиме обычного приложения, что ограничивает удалённую работу и публикацию через веб-сервер.
Как определить, в каком режиме работает конфигурация
Проверить режим запуска можно двумя способами. Первый — визуальный: управляемое приложение имеет интерфейс «Такси» с панелью разделов, панелью функций и открытыми закладками форм, а обычное приложение выглядит как классическое окно Windows с меню и панелями инструментов.
Второй способ — через конфигуратор. Откройте свойства корневого узла конфигурации и посмотрите свойство «Основной режим запуска»: там будет указано «Управляемое приложение», «Обычное приложение» или «Выбирать автоматически». Также в свойствах видно, какие клиенты разрешены: толстый, тонкий, веб-клиент.
- 1Откройте конфигурацию в конфигураторе и выделите корневой узел дерева конфигурации
- 2Вызовите палитру свойств и найдите свойство «Основной режим запуска»
- 3Проверьте, какие клиенты отмечены флагами: тонкий и веб-клиент доступны только для управляемого приложения
- 4Запустите базу в режиме предприятия и убедитесь, что открывается интерфейс «Такси»
Особенности разработки на управляемых формах
Главное, с чем сталкивается разработчик при переходе на УФ, — необходимость явно управлять контекстом выполнения. Обращение к базе данных (запросы, создание объектов, запись) возможно только на сервере, поэтому типовой сценарий выглядит так: клиентская процедура обрабатывает действие пользователя и вызывает серверную, серверная выполняет работу с данными и возвращает результат, клиентская отображает его пользователю.
Данные на управляемой форме хранятся в реквизитах формы. Основной реквизит объекта (например, документа) имеет тип ДанныеФормыСтруктура — это не сам объект базы данных, а его представление. Для записи изменений данные формы преобразуются в объект методом РеквизитФормыВЗначение, объект записывается, а затем при необходимости преобразуется обратно через ЗначениеВРеквизитФормы.
Ещё одна особенность — асинхронная модель. В тонком и веб-клиенте запрещены модальные окна и синхронные вызовы вопросов пользователю: вместо Вопрос() используется ПоказатьВопрос() с описанием оповещения, вместо Предупреждение() — ПоказатьПредупреждение(). Код с модальными вызовами либо не скомпилируется, либо завершится ошибкой в зависимости от настроек режима использования модальности.
Как перевести обычную форму на управляемую
Автоматического конвертера обычных форм в управляемые не существует — платформа умеет создавать управляемую форму по умолчанию для объекта, но вся прикладная логика переносится вручную. Практический порядок работы выглядит так.
Сначала в дереве конфигурации у объекта создаётся новая форма с типом «Управляемая форма». Затем на неё переносятся нужные реквизиты и элементы — с учётом того, что размещение задаётся группами и порядком, а не координатами. После этого переписывается код: обработчики событий разделяются на клиентские и серверные, модальные вызовы заменяются асинхронными, прямые обращения к данным выносятся на сервер.
Финальный этап — тестирование во всех целевых клиентах. Форма, корректно работающая в толстом клиенте, может выдавать ошибки в тонком или веб-клиенте из-за недоступных там типов и методов, поэтому проверка в каждом режиме обязательна.
Как проверить корректность переноса формы
Нет ошибок при проверке модуля с включёнными флагами тонкого и веб-клиента
Ошибки о недоступных методах или модальных вызовах
Изменения на форме сохраняются в базу и видны после повторного открытия
Данные на форме меняются, но в базе не сохраняются
Форма открывается в браузере, все команды выполняются
Ошибки выполнения или не отображаются элементы
Когда обычные формы ещё встречаются и что с ними делать
Единственное оправдание обычных форм — поддержка устаревших конфигураций, которые организация продолжает эксплуатировать. Если база работает на «Управлении торговлей 10.3» или аналогичном решении, полный перевод на управляемые формы означает фактически переход на новую конфигурацию (например, УТ 11) с миграцией данных, а не доработку интерфейса.
Для самописных конфигураций на обычных формах решение зависит от планов: если система будет развиваться и нужна работа через браузер или тонкий клиент, перевод на УФ неизбежен. Если решение локальное и стабильное, можно оставить как есть, но учитывать, что новые версии платформы постепенно сокращают поддержку обычного приложения.
Как выбрать действие
Частые вопросы об управляемых формах
Можно ли запустить обычные формы в веб-клиенте?
Нет. Обычные формы работают только в толстом клиенте в режиме обычного приложения. Для запуска через браузер конфигурация должна использовать управляемые формы. Единственный обходной вариант — публикация толстого клиента через терминальный доступ, но это не веб-клиент, а удалённый рабочий стол.
Что означает ошибка «Модальные вызовы запрещены»?
Она возникает, когда в коде используется синхронный вызов вроде Вопрос() или ОткрытьФормуМодально(), а в свойствах конфигурации режим использования модальности установлен в «Не использовать». Замените вызов на асинхронный аналог: ПоказатьВопрос() с описанием оповещения или ОткрытьФорму() с обработчиком закрытия.
Чем интерфейс «Такси» отличается от управляемых форм?
Это разные уровни одной технологии. Управляемые формы — способ построения отдельных форм, а «Такси» — общий интерфейс приложения (панели разделов, навигация, история работы), который построен на управляемых формах. Управляемое приложение может работать и в старом варианте интерфейса без «Такси», но современные конфигурации используют именно его.
Нужно ли переписывать все формы сразу при переходе на УФ?
Нет, платформа допускает смешанный режим: часть форм может быть обычными, часть управляемыми, если режим запуска это позволяет. Однако обычные формы в управляемом приложении открываются в отдельном окне обычного приложения, что неудобно. Обычно переводят поэтапно, начиная с наиболее используемых форм.
Поддерживаются ли управляемые формы на мобильной платформе 1С?
Да, мобильная платформа 1С построена на управляемых формах, но с ограниченным набором элементов и собственными правилами компоновки интерфейса. Форму для мобильного клиента обычно проектируют отдельно с учётом малого экрана, а не переносят десктопную версию напрямую.
Что важно запомнить
УФ 1С — это управляемые формы, технология интерфейса платформы 8.2 и новее, где внешний вид строит платформа, а разработчик описывает структуру и логику. Управляемые формы обязательны для работы в тонком и веб-клиенте, требуют разделения кода на клиентский и серверный и замены модальных вызовов на асинхронные. Перенос обычных форм выполняется вручную с обязательным тестированием во всех целевых клиентах.