Открыть сервисСервис

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

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

История и предпосылки появления

До выхода платформы 1С:Предприятие 8.2 (2009 год) все конфигурации разрабатывались в парадигме «обычного приложения». В этой модели форма и её элементы (поля, таблицы, кнопки) создавались и отображались непосредственно на клиентской машине, а код на встроенном языке выполнялся как на сервере, так и на клиенте. Это приводило к ряду ограничений:

  • Высокая нагрузка на сеть: при каждом открытии формы или изменении данных на сервер передавались избыточные пакеты информации.
  • Сложность поддержки разных клиентов: код приходилось адаптировать для тонкого клиента (веб-браузер) и толстого клиента (настольное приложение).
  • Проблемы безопасности: выполнение произвольного кода на клиенте повышало риски уязвимостей.

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

  • Централизовала бизнес-логику на сервере.
  • Упростила разработку интерфейсов для веб-клиента.
  • Обеспечила автоматическую адаптацию форм под разные разрешения экранов (в том числе мобильные устройства).

Результатом стала концепция управляемого приложения, впервые реализованная в платформе 8.2. Впоследствии она стала обязательной для всех новых конфигураций, а «обычное приложение» было объявлено устаревшим (хотя поддержка его сохраняется для обратной совместимости).

Архитектура и принципы работы

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

Разделение кода на клиентский и серверный

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

  • Клиентский код — выполняется на компьютере или в браузере пользователя. Отвечает за отображение интерфейса, обработку нажатий кнопок, ввод данных. Доступ к данным базы напрямую запрещён — все запросы к информационной базе происходят только через сервер.
  • Серверный код — выполняется на сервере 1С. Обрабатывает запросы клиента, выполняет чтение и запись в базу данных, реализует бизнес-логику (расчёты, проверки, проведение документов).

Это разделение автоматически обеспечивается платформой: разработчик помечает процедуры и функции директивами &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. Попытка обратиться к данным базы из клиентского кода вызывает ошибку компиляции.

Формы как объекты платформы

Форма в управляемом приложении — это не просто набор элементов управления, а полноценный объект встроенного языка, который:

  • Содержит реквизиты (данные, которые отображаются на форме).
  • Определяет команды (действия, которые может выполнить пользователь).
  • Управляет видимостью, доступностью и расположением элементов.

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

Роль сервера

Сервер 1С:Предприятия выполняет две ключевые функции:

  1. Управление сеансами — поддерживает соединения с клиентами, обрабатывает запросы.
  2. Выполнение серверного кода — все операции с базой данных (чтение, запись, проведение) происходят исключительно на сервере. Клиент получает только готовые данные для отображения.

Благодаря этому снижается трафик между клиентом и сервером, повышается безопасность (код не передаётся на клиент) и упрощается администрирование.

Классификация клиентов

Управляемое приложение поддерживает несколько типов клиентских приложений, каждый из которых предназначен для определённых сценариев использования:

  • Толстый клиент (управляемое приложение) — устанавливается на компьютер пользователя, предоставляет полный функционал платформы (включая работу с файлами, внешними компонентами). Используется для административных задач и разработки.
  • Тонкий клиент — также устанавливается локально, но не содержит средств разработки. Оптимизирован для работы через локальную сеть или интернет. Основной тип клиента для повседневной работы пользователей.
  • Веб-клиент — запускается в браузере (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. Радченко М.Г., Хрусталёва Е.Ю. «1С:Предприятие 8.3. Практическое пособие разработчика». — М.: 1С-Паблишинг, 2020.
  2. Документация к платформе «1С:Предприятие 8.3» (встроенная справка).
  3. Официальные методические материалы фирмы «1С» по разработке управляемых форм.
  4. Книга «Профессиональная разработка в системе 1С:Предприятие 8» под редакцией А.П. Гончарова. — СПб.: Питер, 2018.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru