Разработка полноценных веб-приложений на 1С

Три подхода к созданию веб-приложений на платформе 1С: Предприятие
Платформа 1С позволяет создавать полноценные веб-приложения тремя принципиально разными способами. Каждый вариант имеет строго определенную область применения, требования к квалификации разработчика и итоговую производительность. В этом руководстве мы разберем все три подхода, сравним их характеристики и дадим четкие критерии выбора для вашего проекта.
Первый подход — использование встроенного HTTP-сервиса (начиная с версии 8.3.6). Второй — публикация внешних обработок через веб-клиент. Третий — использование технологии мобильного приложения 1С. Ниже приведены пошаговые инструкции для каждого варианта с указанием точных параметров настройки и типовых ошибок.
Шаг 1. Определите тип веб-приложения и выберите подход
Прежде чем писать код, зафиксируйте требования: сколько одновременных пользователей, нужна ли автономная работа, какой браузер используется. Для внутренней корпоративной системы (до 50 одновременных сессий) оптимален HTTP-сервис — он дает полный контроль над JSON/XML на выходе. Для прототипа или быстрой демонстрации (до 10 пользователей) подойдет публикация внешней обработки — это самый быстрый путь от идеи до рабочей ссылки. Если требуется работа с офлайн и на мобильных устройствах — выбирайте технологию мобильного приложения 1С.
Критическое различие: HTTP-сервис не требует лицензирования для самого сервиса (нужна только серверная лицензия), внешняя обработка потребляет клиентскую лицензию на каждое соединение. Мобильное приложение 1С требует отдельной лицензии на каждое устройство.
Шаг 2. Настройте HTTP-сервис (вариант для REST API)
Этот метод подходит, если вы пишете back-end для SPA-приложений (React, Vue) или мобильных приложений без 1С. Откройте конфигуратор, создайте новый объект конфигурации "HTTP-Сервис". Укажите корневой URL (например, "/api/v1"). В шаблоне URL задайте путь вроде "/catalogs/{catalogName}".
В теле процедуры GET используйте конструкцию Запрос = Новый HTTPСервисЗапрос; и Ответ = Новый HTTPСервисОтвет;. Формируйте JSON через ЗаписьJSON, используя параметры ПереноситьСтроки = ПереносJSON.Нет для минимизации трафика. Обязательно настройте CORS в свойствах HTTP-Сервиса (раздел "Дополнительные заголовки"). Для аутентификации используйте Basic или Bearer через обработку событий HTTP-Сервиса.
Шаг 3. Опубликуйте внешнюю обработку (вариант для быстрого старта)
Этот вариант имеет жесткие ограничения: работает только в тонком клиенте через веб-браузер (не подходит для curl или Postman). Создайте внешнюю обработку с формой, установите свойство "Публиковать" = Истина. В режиме публикации на веб-сервере (IIS или Apache) укажите путь к файлу обработки в каталоге extforms.
Доступ к форме осуществляется по URL вида: http://server/base_name/e?extform=/extforms/myform.epf. Обработка открывается как обычная форма в веб-клиенте — все элементы формы (таблицы, кнопки) работают через стандартный интерфейс 1С. Важно: этот режим потребляет до 50% больше оперативной памяти сервера на каждое соединение по сравнению с HTTP-сервисом.
Шаг 4. Реализуйте мобильное приложение (вариант для офлайн)
Если приложение должно работать без постоянного интернета (склады, экспедиции), используйте конфигурацию "Мобильное приложение 1С". Скачайте дистрибутив с сайта 1С (версия 8.3.22 и выше). В конфигураторе создайте новую конфигурацию на базе "МобильноеПриложение".
Для передачи данных используйте HTTP-сервисы (шаг 2) или стандартный обмен через план обмена. На мобильном устройстве запускается полноценная платформа 1С с ограниченным интерфейсом. Объем передаваемых данных контролируйте через настройки синхронизации: шрифт данных "Кэш" должен быть не более 200 МБ, иначе производительность падает на 40%.
Шаг 5. Сравните производительность и безопасность
Таблица сравнения подходов:
- HTTP-сервис: Скорость ответа — 50-100 мс. Потоков — до 200 на сервер. Аутентификация — собственная (Basic, Bearer). Трафик — минимальный (только JSON). Безопасность — полный контроль.
- Внешняя обработка: Скорость ответа — 200-400 мс (из-за рендеринга формы). Потоков — до 30 на сервер. Аутентификация — только средствами платформы (сессия 1С). Трафик — высокий (передается клиентский код). Безопасность — ограниченная (XSS возможна).
- Мобильное приложение: Скорость — 100-150 мс (с локальным кэшем). Потоков — не ограничено (локальный запуск). Аутентификация — локальная + синхронизация. Трафик — средний (только данные при синхронизации). Безопасность — высокая (данные зашифрованы на устройстве).
Шаг 6. Совет по оптимизации запросов и данных
Независимо от выбранного подхода, следуйте правилу: не передавайте всю таблицу справочника одним запросом. Используйте постраничную выдачу (параметры Offset/Limit в URL HTTP-сервиса). Для справочников размером более 10 000 записей обязательно настройте индексы по реквизитам, которые участвуют в отборе (это ускоряет запросы в 3-5 раз). В HTTP-сервисах используйте кэширование ответов через заголовок Cache-Control: max-age=60 для статичных данных (списки валют, курсы, статусы).
Шаг 7. Тестирование и отладка веб-приложения
Инструменты для отладки:
- Для HTTP-сервисов: используйте Postman или Swagger (импортируйте JSON-схему запросов). Обязательно проверяйте коды ответов: 200 — успех, 404 — не найден ресурс, 401 — не авторизован, 422 — ошибка валидации входных данных.
- Для внешних обработок: включите режим отладки на сервере (флаг "Отладка веб-клиента" в свойствах публикации). Используйте F12 в браузере для анализа сетевых запросов (вкладка Network).
- Для мобильных приложений: тестируйте на реальных устройствах (эмуляторы Android/iOS не всегда корректно передают настройки синхронизации). Проверяйте версию платформы — различия между 8.3.22 и 8.3.24 критичны для механизма фоновых заданий.
Кому подходит каждый подход (и кому не подходит)
HTTP-сервис — для команд, имеющих frontend-разработчика (React/Angular/Vue) и серверного администратора. Не подходит, если у вас нет опыта работы с JSON и REST. Внешние обработки — для штатных 1С-программистов, которым нужно быстро "закрыть дырку" в интерфейсе (например, форма подбора товаров для менеджера). Не подходит для высоконагруженных систем (>30 пользователей). Мобильное приложение — для логистических и складских компаний с реальной потребностью в офлайн. Не подходит для простых online-справочников — избыточная сложность настройки.
Итоговые рекомендации
Выбор подхода начинается с ответа на три вопроса: (1) кто будет разрабатывать frontend? (2) сколько пользователей будет одновременно? (3) нужна ли работа без интернета? Ответы приведут к одному из трех описанных вариантов. Наиболее универсальным является HTTP-сервис — он требует больше начальных знаний, но дает максимальную производительность (до 200 запросов в секунду на 1 ядро процессора) и гибкость интеграции с любыми системами. Внешние обработки оставьте для прототипов и внутренних инструментов. Мобильное приложение — только если вам действительно нужен офлайн-режим с полноценной базой на устройстве.
Практический совет на 2026 год: при проектировании архитектуры сразу закладывайте возможность перехода с внешней обработки на HTTP-сервис. Для этого всю бизнес-логику выносите в общие модули сервера (с флагом "Вызов сервера"), оставляя в формах только вызовы этих процедур. Это сократит время переписывания кода при смене подхода на 60-70%.
Добавлено: 24.04.2026
