Управляемое приложение 1С
Управляемое приложение 1С — это архитектура клиентского интерфейса и модель взаимодействия с пользователем в системе «1С:Предприятие», при которой визуальное отображение данных и логика управления ими полностью контролируются платформой на стороне сервера, а клиентское приложение лишь отображает готовые формы и передаёт команды пользователя. Данная концепция была внедрена в версии платформы 8.2 и стала основой для разработки новых конфигураций, заменив устаревшую модель «обычного приложения».
История и предпосылки появления
До выхода платформы 1С:Предприятие 8.2 (2009 год) все конфигурации разрабатывались в парадигме «обычного приложения». В этой модели форма и её элементы (поля, таблицы, кнопки) создавались и отображались непосредственно на клиентской машине, а код на встроенном языке выполнялся как на сервере, так и на клиенте. Это приводило к ряду ограничений:
- Высокая нагрузка на сеть: при каждом открытии формы или изменении данных на сервер передавались избыточные пакеты информации.
- Сложность поддержки разных клиентов: код приходилось адаптировать для тонкого клиента (веб-браузер) и толстого клиента (настольное приложение).
- Проблемы безопасности: выполнение произвольного кода на клиенте повышало риски уязвимостей.
Разработчики платформы поставили задачу создать новую модель, которая бы:
- Централизовала бизнес-логику на сервере.
- Упростила разработку интерфейсов для веб-клиента.
- Обеспечила автоматическую адаптацию форм под разные разрешения экранов (в том числе мобильные устройства).
Результатом стала концепция управляемого приложения, впервые реализованная в платформе 8.2. Впоследствии она стала обязательной для всех новых конфигураций, а «обычное приложение» было объявлено устаревшим (хотя поддержка его сохраняется для обратной совместимости).
Архитектура и принципы работы
Управляемое приложение базируется на трёхзвенной архитектуре «клиент — сервер — база данных», где ключевым звеном является сервер 1С:Предприятия.
Разделение кода на клиентский и серверный
В отличие от обычного приложения, где код мог выполняться в любом месте, в управляемом приложении введено строгое разделение контекстов выполнения:
- Клиентский код — выполняется на компьютере или в браузере пользователя. Отвечает за отображение интерфейса, обработку нажатий кнопок, ввод данных. Доступ к данным базы напрямую запрещён — все запросы к информационной базе происходят только через сервер.
- Серверный код — выполняется на сервере 1С. Обрабатывает запросы клиента, выполняет чтение и запись в базу данных, реализует бизнес-логику (расчёты, проверки, проведение документов).
Это разделение автоматически обеспечивается платформой: разработчик помечает процедуры и функции директивами &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. Попытка обратиться к данным базы из клиентского кода вызывает ошибку компиляции.
Формы как объекты платформы
Форма в управляемом приложении — это не просто набор элементов управления, а полноценный объект встроенного языка, который:
- Содержит реквизиты (данные, которые отображаются на форме).
- Определяет команды (действия, которые может выполнить пользователь).
- Управляет видимостью, доступностью и расположением элементов.
Расположение элементов задаётся не жёстко (как в обычной форме), а с помощью системы компоновки данных (СКД) и групп-контейнеров (обычная группа, страницы, колонки). Платформа автоматически подстраивает отображение под ширину экрана, разрешение и тип клиента (толстый, тонкий, веб-клиент).
Роль сервера
Сервер 1С:Предприятия выполняет две ключевые функции:
- Управление сеансами — поддерживает соединения с клиентами, обрабатывает запросы.
- Выполнение серверного кода — все операции с базой данных (чтение, запись, проведение) происходят исключительно на сервере. Клиент получает только готовые данные для отображения.
Благодаря этому снижается трафик между клиентом и сервером, повышается безопасность (код не передаётся на клиент) и упрощается администрирование.
Классификация клиентов
Управляемое приложение поддерживает несколько типов клиентских приложений, каждый из которых предназначен для определённых сценариев использования:
- Толстый клиент (управляемое приложение) — устанавливается на компьютер пользователя, предоставляет полный функционал платформы (включая работу с файлами, внешними компонентами). Используется для административных задач и разработки.
- Тонкий клиент — также устанавливается локально, но не содержит средств разработки. Оптимизирован для работы через локальную сеть или интернет. Основной тип клиента для повседневной работы пользователей.
- Веб-клиент — запускается в браузере (Internet Explorer, Google Chrome, Яндекс.Браузер и др.). Не требует установки, работает через HTTP/HTTPS. Функционально близок к тонкому клиенту, но имеет ограничения по работе с файловой системой и внешними компонентами.
- Мобильный клиент — адаптирован для мобильных устройств на базе Android и iOS. Поддерживает ограниченный набор функций, но позволяет работать с конфигурациями в офлайн-режиме.
Все клиенты взаимодействуют с сервером по единому протоколу, что обеспечивает унификацию разработки.
Особенности разработки
Разработка конфигураций для управляемого приложения требует соблюдения ряда правил и использования специфических механизмов платформы.
Система компоновки данных (СКД)
СКД — это механизм, который позволяет описывать отчёты и динамические списки декларативно, без написания кода. Разработчик определяет набор полей, группировок, отборов и оформления, а платформа сама генерирует запрос к базе данных и формирует результат. СКД является обязательным инструментом для создания отчётов в управляемом приложении.
Командный интерфейс
Вместо традиционных меню и панелей инструментов управляемое приложение использует командный интерфейс, который гибко настраивается:
- Раздел — верхний уровень навигации (например, «Продажи», «Закупки», «Склад»).
- Подсистема — группировка объектов внутри раздела.
- Команды — действия (открыть список, создать новый документ, выполнить отчёт).
Командный интерфейс автоматически адаптируется под права доступа пользователя и может быть настроен администратором.
Универсальные механизмы
Платформа предоставляет ряд готовых механизмов, упрощающих разработку:
- Функциональные опции — позволяют включать/отключать части функционала без изменения кода.
- Подписки на события — дают возможность реагировать на действия пользователя (например, «Перед записью», «При проведении») без модификации стандартных объектов.
- Бизнес-процессы — реализуют последовательность действий (согласование, утверждение) с помощью визуального редактора.
Преимущества и недостатки
Преимущества
- Кроссплатформенность — одна конфигурация работает на всех типах клиентов (толстый, тонкий, веб, мобильный).
- Автоматическая адаптация интерфейса — формы подстраиваются под разрешение экрана и устройство.
- Повышенная безопасность — весь код выполняется на сервере, клиент не имеет прямого доступа к данным.
- Снижение сетевого трафика — на клиент передаются только данные для отображения, а не вся форма целиком.
- Централизованное обновление — достаточно обновить конфигурацию на сервере, клиенты получают изменения автоматически.
Недостатки
- Сложность разработки — требуется строгое разделение контекстов, что усложняет написание кода по сравнению с обычным приложением.
- Повышенные требования к серверу — вся бизнес-логика выполняется на сервере, что требует более мощного оборудования.
- Ограниченная производительность при высокой нагрузке — при большом количестве одновременных пользователей сервер может стать узким местом.
- Сложность отладки — ошибки в серверном коде сложнее локализовать, так как они не всегда воспроизводятся на клиенте.
Применение
Управляемое приложение является стандартом для всех современных конфигураций на платформе «1С:Предприятие 8.3» и выше. Оно используется в типовых решениях фирмы «1С»:
- «1С:Бухгалтерия предприятия» (редакция 3.0 и выше).
- «1С:Управление торговлей» (редакция 11 и выше).
- «1С:Зарплата и управление персоналом» (редакция 3.0 и выше).
- «1С:Управление нашей фирмой» (УНФ).
- «1С:Комплексная автоматизация» (редакция 2.0 и выше).
Все эти конфигурации разработаны исключительно в парадигме управляемого приложения и не поддерживают режим обычного приложения.
Сравнение с обычным приложением
| Характеристика | Обычное приложение | Управляемое приложение |
|---|---|---|
| Архитектура | Двухзвенная (клиент-база) | Трёхзвенная (клиент-сервер-база) |
| Выполнение кода | На клиенте и сервере без строгого разделения | Строгое разделение на клиентский и серверный контексты |
| Формы | Жёсткая вёрстка элементов | Автоматическая компоновка на основе СКД |
| Клиенты | Только толстый клиент | Толстый, тонкий, веб, мобильный |
| Интерфейс | Фиксированные меню и панели | Командный интерфейс, адаптивный |
| Обновление | Требуется обновление на каждом клиенте | Централизованное обновление на сервере |
| Производительность | Высокая на одном клиенте, низкая при масштабировании | Зависит от сервера, хорошо масштабируется |
Перспективы развития
Платформа «1С:Предприятие» продолжает развиваться, и управляемое приложение остаётся основной архитектурой. В версии 8.3 (2013 год) были добавлены:
- Поддержка мобильных клиентов.
- Улучшенная работа с веб-клиентом.
- Механизм «Расширения» для доработки типовых конфигураций без снятия с поддержки.
В будущем ожидается дальнейшая оптимизация серверной части, улучшение инструментов разработки и расширение возможностей веб-клиента.
Источники
- Радченко М.Г., Хрусталёва Е.Ю. «1С:Предприятие 8.3. Практическое пособие разработчика». — М.: 1С-Паблишинг, 2020.
- Документация к платформе «1С:Предприятие 8.3» (встроенная справка).
- Официальные методические материалы фирмы «1С» по разработке управляемых форм.
- Книга «Профессиональная разработка в системе 1С:Предприятие 8» под редакцией А.П. Гончарова. — СПб.: Питер, 2018.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →