При создании новой конфигурации или доработке существующих систем перед разработчиком неизбежно встает вопрос: какую технологию интерфейса выбрать — обычные формы (обычное приложение) или управляемые формы (управляемое приложение)? В этой статье мы подробно разберем ключевые технологические и архитектурные преимущества управляемых форм, проанализируем опыт практикующих разработчиков и выясним, почему управляемый интерфейс стал стандартом де-факто в современной экосистеме 1С.
В обычных формах разработчик «рисовал» форму вручную, жестко фиксируя координаты каждого поля, кнопки и надписи в пикселях. При изменении размеров окна или разрешения экрана приходилось настраивать сложные механизмы привязок. Как справедливо отмечают практикующие специалисты, ручные привязки в обычных формах зачастую становились настоящим кошмаром для разработчика.
Управляемые формы используют принципиально другой — декларативный подход. Разработчик определяет лишь логическую структуру формы: создает группы, указывает состав реквизитов и настраивает их свойства, а за отрисовку и размещение элементов отвечает сама платформа 1С. Рассмотрев этот подход подробнее, мы увидим следующие преимущества:
Одним из важнейших преимуществ управляемых форм является возможность работы приложения в режиме Тонкий клиент и Веб-клиент. В отличие от обычного (толстого) клиента, тонкий клиент не выполняет тяжелых вычислений и не делает прямых запросов к базе данных.
Проанализируем преимущества такой архитектуры:
В управляемых формах жестко разграничено выполнение кода на стороне клиента и на стороне сервера. Разработчик обязан явно указывать директивы компиляции для процедур и функций: &НаКлиенте, &НаСервере, &НаСервереБезКонтекста и другие.
Давайте посмотрим на пример реализации простейшего вызова в управляемой форме:
&НаКлиенте
Процедура ПриИзмененииРеквизита(Элемент)
// Код выполняется на стороне пользователя (быстрый отклик)
РезультатПроверки = ПроверитьДанныеНаСервере(Объект.Код);
Если Не РезультатПроверки Тогда
ПоказатьПредупреждение(, "Введен некорректный код!");
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьДанныеНаСервере(Знач ТекущийКод)
// Тяжелая проверка выполняется непосредственно на сервере
Возврат Справочники.Номенклатура.НайтиПоКоду(ТекущийКод).Пустая();
КонецФункции
Хотя разделение контекста требует от разработчика понимания клиент-серверной архитектуры и написания дополнительных процедур-оберток (что часто пугает новичков), оно гарантирует высокое быстродействие системы. На клиент передаются только те данные, которые необходимы для отображения, а вся бизнес-логика выполняется максимально близко к базе данных.
В обычных формах для вывода списков документов или справочников использовались простые табличные поля. Если требовалось вывести сложные связанные данные с отборами, приходилось писать много программного кода.
В управляемых формах основным инструментом работы с таблицами стал объект ДинамическийСписок, работающий на основе Системы компоновки данных (СКД). Преимущества динамических списков огромны:
Каждый пользователь уникален, и требования к составу полей на форме у бухгалтера, кладовщика и директора могут сильно отличаться. В управляемых формах реализован встроенный механизм индивидуальной настройки.
Используя стандартную команду «Изменить форму», пользователь может:
Все эти настройки сохраняются в системных таблицах для конкретного пользователя и автоматически применяются при последующих открытиях формы. При этом сама конфигурация остается неизменной, что упрощает ее дальнейшее обновление.
Разберем ситуацию с развитием платформы в долгосрочной перспективе. Фирма «1С» уже много лет развивает свои решения исключительно на управляемом интерфейсе. Выбирая управляемые формы, вы получаете доступ к передовым технологиям:
Несмотря на то, что разработка сложных управляемых форм на начальном этапе может показаться более трудоемкой из-за необходимости проектирования клиент-серверных вызовов, в долгосрочной перспективе они экономят колоссальное количество времени. Отказ от ручной верстки привязок, встроенная поддержка тонкого/веб-клиента, гибкие динамические списки и полная готовность к работе в облаках и на мобильных устройствах делают управляемые формы единственно верным выбором для создания современных, масштабируемых и отказоустойчивых конфигураций 1С.