К статье
Практический материал

Разработка и Конфигурация · 12 мин

Что значит управляемое приложение в 1С

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

Управляемое приложение — это режим работы платформы 1С:Предприятие, при котором интерфейс и логика формы описываются декларативно, а внешний вид и поведение элементов формирует сама платформа, а не разработчик вручную. Термин появился с выходом платформы 1С 8.2 и стал основой всех современных конфигураций: «Управление торговлей 11», «ERP», «1С:Бухгалтерия 3.0» работают именно в управляемом режиме.

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

Понимание разницы между режимами важно и пользователю, и администратору, и разработчику: от этого зависит, какие клиенты можно использовать, как пишется код, почему одни конфигурации работают через браузер, а другие требуют «толстого» клиента.

Что такое управляемое приложение простыми словами

Представьте, что форма документа — это набор полей, таблиц и кнопок. В обычном приложении разработчик рисовал эту форму как картинку: «поле „Контрагент“ стоит здесь, кнопка „Провести“ — там». Такая форма жёстко привязана к Windows-клиенту и не может отображаться в браузере.

В управляемом приложении разработчик описывает не внешний вид, а структуру: «форма содержит реквизит Контрагент, табличную часть Товары и команду Провести». Платформа сама решает, как расположить элементы, как они будут выглядеть на экране монитора, в веб-браузере или на планшете. Это и есть ключевой смысл слова «управляемое» — отображением управляет платформа.

Второе важное отличие — разделение кода. В управляемом режиме программный код формы явно делится на клиентскую и серверную части с помощью директив компиляции &НаКлиенте и &НаСервере. Тяжёлые операции с базой данных выполняются на сервере, а клиент отвечает только за отображение и реакцию на действия пользователя.

Чем управляемое приложение отличается от обычного

Различия между режимами затрагивают интерфейс, архитектуру, требования к клиенту и подход к разработке. Ниже — сопоставление ключевых параметров.

ПараметрОбычное приложениеУправляемое приложение
Описание формыРисуется вручную, пиксельная привязкаДекларативное дерево элементов
КлиентыТолько толстый клиент WindowsТонкий, веб-клиент, мобильный
Исполнение кодаВсё на клиентеРазделение клиент/сервер
ИнтерфейсМеню и панели инструментовТакси, разделы, панель навигации
СостояниеУстаревший режимСтандарт современных конфигураций

Практический вывод из таблицы: если конфигурация должна работать через браузер, по низкоскоростным каналам связи или на планшетах — это возможно только в управляемом режиме. Обычное приложение требует установки полного клиента на каждый компьютер и хорошего канала до базы.

Сравнение вариантов

Обычное приложение

Подходит только для поддержки старых конфигураций на платформе 8.2/8.3 в режиме совместимости. Ограничение: нет веб-клиента и мобильной работы, развитие режима прекращено.

Управляемое приложение

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

Как устроена клиент-серверная модель в управляемом режиме

Главная архитектурная особенность управляемого приложения — чёткая граница между тем, что выполняется на компьютере пользователя, и тем, что выполняется на сервере. В модуле формы это выражается директивами компиляции.

Директива &НаКлиенте помечает процедуры, которые работают в интерфейсе: обработчики нажатий кнопок, изменения полей, открытие других форм. Здесь недоступны прямые запросы к базе данных — попытка написать Запрос.Выполнить() в клиентской процедуре приведёт к ошибке компиляции.

Директива &НаСервере помечает код, исполняемый на сервере 1С: запросы, проведение документов, чтение и запись объектов. Существуют также варианты &НаСервереБезКонтекста (быстрее, но без доступа к данным формы) и &НаКлиентеНаСервереБезКонтекста (общие алгоритмы, например расчёт итоговой суммы по строкам таблицы).

bsl
&НаКлиенте
Процедура РассчитатьИтог(Команда)
    РассчитатьИтогНаСервере();
КонецПроцедуры

&НаСервере
Процедура РассчитатьИтогНаСервере()
    Итог = Объект.Товары.Итог("Сумма");
КонецПроцедуры

Каждый вызов серверной процедуры из клиентской — это сетевой обмен. Поэтому грамотная разработка под управляемое приложение требует минимизировать число серверных вызовов: собирать данные пакетами, а не дергать сервер на каждое изменение поля.

Какие клиенты работают с управляемым приложением

Одно из главных преимуществ управляемого режима — свобода выбора клиентского ПО. Одна и та же конфигурация доступна через несколько типов клиентов без доработки.

Тонкий клиент — лёгкое приложение, которое устанавливается на компьютер, но вся логика и данные обрабатываются на сервере. Он экономичен к каналу связи и подходит для удалённых офисов. Веб-клиент работает прямо в браузере через публикацию на веб-сервере — ничего устанавливать не нужно, достаточно ссылки. Мобильный клиент позволяет запускать конфигурацию на смартфонах и планшетах.

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

Интерфейс «Такси»Управляемое приложение

Панель разделов слева или сверху, избранное, история работы — признаки управляемого режима

Работа в браузереУправляемое приложение

Если 1С открывается по ссылке в Chrome или Edge — это точно управляемые формы

Серое меню и панели кнопокОбычное приложение

Классическое меню как в старых программах Windows — признак обычного режима

Свойство конфигурацииПроверка в конфигураторе

Свойство «Режим использования модальности» и «Основной режим запуска» в корне конфигурации

Как перевести конфигурацию на управляемое приложение

Если у вас старая самописная конфигурация на обычных формах, переход на управляемый режим — это полноценный проект, а не переключение одного флажка. Платформа позволяет автоматически сгенерировать управляемые формы на основе обычных, но код придётся перерабатывать вручную.

Типовой порядок работ выглядит так. Сначала в свойствах конфигурации меняется основной режим запуска на «Управляемое приложение». Затем для объектов создаются управляемые формы — вручную или через автоматическую генерацию. После этого весь код модулей форм пересматривается: разделяется на клиентский и серверный, убираются модальные вызовы, прямые обращения к данным из клиентских процедур переносятся на сервер.

Порядок перехода на управляемый режим
  1. 1
    Сделайте полную резервную копию базы и работайте на копии, не на рабочей системе
  2. 2
    В конфигураторе откройте свойства корня конфигурации и установите основной режим запуска «Управляемое приложение»
  3. 3
    Создайте управляемые формы для справочников, документов и отчётов (автогенерация или вручную)
  4. 4
    Перенесите код: клиентская логика под &НаКлиенте, работа с данными — под &НаСервере
  5. 5
    Замените модальные вызовы на асинхронные с описанием оповещения
  6. 6
    Проверьте запуск в тонком клиенте и веб-клиенте, исправьте ошибки компиляции модулей
  7. 7
    Проведите тестирование ключевых сценариев с пользователями до переноса в рабочую базу

Объём работ сильно зависит от размера конфигурации: для небольшой самописной базы это может занять несколько дней, для крупной — месяцы. Если конфигурация типовая и старая (например, «Управление торговлей 10.3»), часто дешевле и быстрее перейти на актуальную типовую версию с переносом данных, чем дорабатывать старую.

Типичные ошибки при работе с управляемыми формами

Разработчики, переходящие с обычного режима, часто переносят старые приёмы, которые в управляемом приложении либо не работают, либо резко ухудшают производительность.

Типичные ошибки
01
Вызов сервера в цикле — обращение к &НаСервере на каждую строку таблицы даёт десятки сетевых обменов и «подвисание» формы; собирайте данные и обрабатывайте пакетом
02
Попытка выполнить запрос в клиентской процедуре — ошибка компиляции; запросы допустимы только на сервере
03
Использование Предупреждение() и Вопрос() по старинке — модальные вызовы блокируют веб-клиент; используйте ПоказатьПредупреждение и ПоказатьВопрос с оповещением
04
Прямое обращение к элементам формы по координатам и привязка дизайна к пикселям — в управляемой форме расположением управляет платформа
05
Хранение промежуточных данных в реквизитах формы без нужды — каждый реквизит увеличивает трафик между клиентом и сервером

Отдельная группа проблем — попытка «дожать» интерфейс под старые привычки пользователей: добавить лишние кнопки, раскрасить форму, зафиксировать ширину колонок. Платформа сознательно ограничивает такие возможности, чтобы интерфейс оставался единообразным и корректно работал на всех клиентах.

Перед переносом кода полезно включить в свойствах конфигурации проверку модальности и синтаксический контроль модулей в режиме «Тонкий клиент» и «Веб-клиент» — конфигуратор сразу покажет большинство несовместимых мест без запуска базы.
ПЗ
Практическое замечание

Как проверить, что переход выполнен правильно

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

Контрольные точки

Как проверить результат

Запуск в тонком клиенте
Норма

База открывается, формы документов и справочников работают без ошибок

Тревожный признак

Ошибки компиляции модуля или пустые формы при открытии

Запуск в веб-клиенте
Норма

Все основные сценарии выполняются в браузере

Тревожный признак

Часть функций недоступна или выдаёт ошибки модальности

Скорость открытия форм
Норма

Форма документа открывается без заметной паузы

Тревожный признак

Длительное ожидание — признак лишних серверных вызовов

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

Документы проводятся, движения по регистрам корректны

Тревожный признак

Ошибки при проведении или неверные остатки

Если какая-то проверка не пройдена, возвращайтесь к коду конкретной формы: чаще всего проблема локальна и связана с одним модулем, а не с архитектурой в целом.

Итог

Что важно запомнить

Управляемое приложение — это режим платформы 1С, где интерфейс строится платформой по декларативному описанию, а код делится на клиентский и серверный. Именно он обеспечивает работу через тонкий клиент, браузер и мобильные устройства. Переход с обычного режима требует переработки форм и кода и обязательного тестирования на копии базы.

Частые вопросы

Управляемое приложение и управляемые формы — это одно и то же?

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

Можно ли запустить обычное приложение на платформе 8.3?

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

Почему в управляемой форме нельзя просто нарисовать кнопку в нужном месте?

Потому что одна и та же форма должна корректно отображаться в тонком клиенте на большом мониторе, в браузере и на экране смартфона. Платформа сама компонует элементы с учётом устройства и разрешения. Разработчику доступно управление группировкой, порядком и поведением элементов, но не пиксельным позиционированием.

Что быстрее: обычное или управляемое приложение?

Прямого ответа нет — зависит от сценария. В локальной сети с мощными ПК обычное приложение может показывать сопоставимую скорость. Но на слабых каналах и при большом числе пользователей управляемый режим с тонким клиентом выигрывает: данные обрабатываются на сервере, а по сети передаётся только описание изменений формы.

Нужно ли переучивать пользователей при переходе на управляемый режим?

Да, хотя объём обучения обычно невелик. Интерфейс «Такси» отличается от старого меню: появляются панель разделов, избранное, история, полнотекстовый поиск по данным. Большинство пользователей осваивают навигацию за несколько дней, но стоит заранее показать, где теперь находятся привычные документы и отчёты.

Можно ли в одной базе использовать оба режима одновременно?

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