Нужны ли управляемые формы 1С при разработке новой конфигурации «с нуля» для работы в терминальном режиме?

Программист 1С v8.3 (Управляемые формы) Управленческий учет IT и автоматизация бизнеса
← На главную

При создании новых прикладных решений на платформе «1С:Предприятие 8» разработчики часто сталкиваются с дилеммой: использовать проверенные временем обычные формы (ОФ) или переходить на технологически более сложные управляемые формы (УФ). Ситуация обостряется, когда заказчик планирует использовать систему исключительно в локальной сети или через терминальный доступ (RDP) силами небольшого количества пользователей (например, до 20 одновременных сеансов). На первый взгляд кажется, что классический «толстый клиент» на обычных формах решит задачу быстрее и дешевле. Давайте детально разберем эту проблему, проанализируем аргументы обеих сторон и выясним, почему выбор управляемых форм в современных реалиях является экономически и технически обоснованным.

Архитектурные отличия и будущее платформы 1С

Для начала проанализируем ситуацию с точки зрения жизненного цикла программных продуктов. Фирма «1С» официально прекратила активное развитие технологий обычного приложения. Все новые механизмы платформы, оптимизация производительности СУБД, механизмы защиты данных и интеграционные возможности разрабатываются исключительно под управляемое приложение. Оставаясь на обычных формах, мы добровольно соглашаемся на технологический тупик.

Рассмотрим ключевые архитектурные различия между ОФ и УФ:

  1. Трехзвенная архитектура: В управляемых формах жестко реализовано разделение на клиентский контекст и серверную часть. Это гарантирует безопасность данных. Клиентская машина не имеет прямого доступа к базе данных СУБД, а общается только с сервером приложений 1С через сериализованные пакеты данных. В обычных формах («толстый клиент») логика работы часто размыта, и клиентское приложение напрямую выполняет тяжелые запросы к СУБД, перекачивая огромные объемы информации по сети.
  2. Кроссплатформенность и Linux: Современный бизнес все чаще переходит на операционные системы семейства Linux как на серверах, так и на рабочих местах пользователей. Родные клиенты 1С для Linux работают стабильно и эффективно именно с управляемым интерфейсом (Тонкий клиент). Попытка запустить обычные формы в среде Linux приводит к многочисленным проблемам с отрисовкой элементов интерфейса, шрифтами и стабильностью работы.
  3. Мобильные технологии: Использование мобильного клиента — важнейший тренд автоматизации. Если в будущем заказчику потребуется предоставить доступ к базе кладовщикам на ТСД (терминалах сбора данных) или курьерам со смартфонами, конфигурация на УФ позволит запустить мобильный клиент практически без изменения кода. Для обычных форм реализация мобильного рабочего места потребует написания отдельного мобильного приложения и создания сложной системы обменов.

Экономика инфраструктуры: RDP против Тонкого клиента

Разберем экономическую составляющую проекта. Сторонники обычных форм часто аргументируют свою позицию тем, что при наличии терминального сервера (RDP) разницы в скорости работы и удобстве администрирования нет. Однако это порождает серьезные скрытые расходы для заказчика.

Проанализируем структуру затрат на организацию рабочих мест:

Удобство и скорость разработки: автоматическая верстка и привязки

Существует миф, что на обычных формах писать код и проектировать интерфейс получается в разы быстрее. Давайте выясним причину этого заблуждения. Разработчики, привыкшие к ОФ, просто не освоили в достаточной степени декларативный метод проектирования УФ.

Посмотрим на практические аспекты верстки интерфейса:

В обычных формах разработчик вынужден вручную расставлять элементы управления на форме и настраивать так называемые «привязки» (границы элементов относительно краев формы). Это превращается в ад при необходимости динамически скрывать или показывать элементы в зависимости от прав доступа или условий. Форма часто «плывет» при изменении разрешения экрана пользователем.

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

Рассмотрим пример кода для работы с временным хранилищем в управляемом приложении. При передаче файлов или тяжелых структур данных с клиента на сервер мы должны использовать метод ПоместитьВоВременноеХранилище(). Это гарантирует, что данные будут сохранены в сеансовом кэше на сервере и не перегрузят клиентскую память:


&НаКлиенте
Процедура ЗагрузитьИОбработатьФайл()
    
    АдресФайлаВоВременномХранилище = "";
    ИмяВыбранногоФайла = "";
    
    // Интерактивный выбор файла пользователем на клиенте
    Если СделайВыборФайла(ИмяВыбранногоФайла) Тогда
        // Помещаем файл в хранилище, привязывая его к УникальномуИдентификатору формы
        АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяВыбранногоФайла), УникальныйИдентификатор);
        
        // Передаем управление на сервер для тяжелой обработки данных
        ОбработатьФайлНаСервере(АдресФайлаВоВременномХранилище);
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Процедура ОбработатьФайлНаСервере(Знач АдресХранилища)
    
    // Получаем двоичные данные файла из сеансового кэша на сервере
    ДанныеДляОбработки = ПолучитьИзВременногоХранилища(АдресХранилища);
    
    // Реализуем серверную логику обработки (парсинг, запись в ИБ)
    // ...
    
КонецПроцедуры

Этот подход разделения контекста на &НаКлиенте и &НаСервере требует от разработчика понимания клиент-серверного взаимодействия, но взамен обеспечивает колоссальную стабильность работы приложения.

Возможности для пользователей: динамические списки и гибкая настройка

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

Рассмотрим ключевые элементы интерфейса УФ:

Когда все-таки можно использовать ОФ?

Рассмотрим редкие исключения, когда разработка на обычных формах может быть оправдана:

  1. Полное отсутствие компетенций: Если разработчик абсолютно не умеет писать код под управляемое приложение, не понимает концепции клиент-серверного разделения и у проекта крайне жесткие сроки, не позволяющие выделить время на обучение. Но это решение является «кредитом под огромные проценты», который придется отдавать при первой же необходимости модернизации системы.
  2. Интеграция со специфическим локальным оборудованием: В некоторых случаях при активном использовании COM-соединений, ActiveX-компонентов или старых драйверов торгового оборудования, работающих исключительно в среде 32-битного Windows-клиента, обычные формы позволяют упростить подключение. Однако современные библиотеки (например, БПО — Библиотека подключаемого оборудования) давно решили эту проблему для управляемых форм через Native API.

Рекомендации по выбору архитектуры

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

Для успешного старта проекта на УФ рекомендуем использовать Библиотеку стандартных подсистем (БСП). Она содержит готовые блоки для работы с правами доступа, пользователями, историями изменений, печатными формами и обменами данными. Это позволит вам сосредоточиться на бизнес-логике вашего прикладного решения, не тратя время на написание базовых механизмов с нуля.

← На главную