
Здравствуйте! Меня зовут Дмитрий Гусаков, я менеджер проектов компании DD Planet. В своей статье я расскажу, почему нельзя использовать 1С как полноценный бэкенд в современных B2B-системах, с какими ограничениями могут сталкиваться разработчики, и как выстроить надёжную структуру, используя дополнительный слой бэкенда и брокеры сообщений.
В России существует острый дефицит отечественных продуктов для автоматизации бизнеса. 1С — один из немногих российских игроков на этом рынке. В условиях активного импортозамещения он стал основным кандидатом на замену западных систем, вроде Oracle CRM, ERP SAP и все больше российских компаний переходят на эту платформу. Однако сам по себе этот переход не решает всех проблем.
Обозначим проблему
При разработке B2B-систем на базе 1С важно понимать, что эта платформа отлично справляется с ролью хранилища данных и бизнес-логики, но не предназначена для работы в качестве полноценного бэкенда. Прямое взаимодействие внешних пользователей с 1С создает серьезные риски: угрозы безопасности данных, повышенная нагрузка на систему и сложности с масштабированием.
Почему 1С нельзя использовать как полноценный бэкенд для разработки B2B-систем?
Ограничения по безопасности
Отсутствие стандартных механизмов защиты от распространенных угроз. например, нет встроенной защиты от SQL-инъекций, XSS-атак, что требует от разработчиков самостоятельной настройки безопасности;
Аутентификация. 1С частично поддерживает интеграцию с OAuth2 и OpenID Connect.
Необходимость в кастомных решениях. Для авторизации через JWT-токены остаётся необходимость разрабатывать этот функционал вручную или использовать сторонние сервисы. Реализация может зависеть только от квалификации самого программиста
Низкая отказоустойчивость и проблемы с нагрузкой
1С не оптимизирована для работы в условиях высокой нагрузки. При большом количестве пользователей система может:
Блокировать сессии и снижать скорость работы;
Не масштабироваться автоматически, в отличие от современных бэкенд-решений;
Не справляться с нагрузкой при резком росте запросов, особенно при массовом доступе к данным.
Сложности с интеграцией в микросервисную архитектуру
1С плохо интегрируется с другими сервисами, особенно в микросервисной архитектуре. Например, она не поддерживает гибкую маршрутизацию запросов.
Проблемы лицензирования при работе через браузер
Основным вопросом при работе с веб-решениями 1С является лицензирование. При использовании веб-клиента 1С:Предприятие через браузер требуется отдельная лицензия для каждого сеанса, что создает потенциальные проблемы:
При нехватке лицензий или сбое в системе лицензирования пользователи могут столкнуться с ограничениями в работе;
Лицензии веб-клиента предоставляются сервером, локальные лицензии с компьютера пользователя использовать нельзя;
Стоимость лицензий зависит от количества рабочих мест и начинается от 7 700 рублей за место.
При использовании 1С как HTTP-сервиса проблема лицензий сохраняется, а также добавляются вопросы безопасности и мониторинга.
Как в 1С пытаются решить эти проблемы?
У 1С есть облачная среда разработки — 1С:Элемент. Главное отличие от коробки состоит в том, что вся разработка ведется в браузере и локально установить среду невозможно. Сложность разработки кастомного UI так же остаётся в данном продукте
Основные особенности:
Язык программирования напоминает традиционный 1С, но использует русскоязычные конструкции, что может затруднить переход даже для опытных разработчиков;
Ограниченные возможности кастомизации UI;
На данный момент нет поддержки проведения документов и регистров накоплений;
Отчеты реализованы на основе 1С:Аналитика;
Присутствует помощник ввода текста (аналог автодополнения в современных IDE).
На текущей стадии разработки нет информации о том, устранены ли проблемы с безопасностью, которые присутствуют в веб-решении 1С:Предприятие.
Решение: архитектура B2B платформы на основе 1С
В архитектуре дополнительный слой бэкенд выполняет роль посредника между клиентскими приложениями, мастер-системой и внешними сервисами:
Мастер-система: хранение основной бизнес-логики и данных осуществляется в 1С;
Интеграционная шина (Kafka/RabbitMQ): реализует обмен сообщениями между B2B-порталом и 1С, обеспечивает безопасное соединение и снижает нагрузку на мастер-систему;
Дополнительный слой бэкенд: вводится для распределения нагрузки. Выполняет функции API-шлюза, управляя запросами между клиентами, 1С и внешними сервисами;
Кеширование и база данных: Redis позволяет сократить количество обращений к 1С;
Взаимодействие с внешними сервисами осуществляется через REST API по протоколу HTTPS;
Адаптеры данных: модули преобразуют данные из 1С в формат JSON вместо XML.

Как мы разрабатываем B2B кабинеты на основе 1С
При разработке бэкенд-части нашего проекта мы придерживаемся нескольких основных принципов, которые упрощают разработку и обеспечивают поддержку системы:
1. Модульный подход. Мы стремимся создавать решения, состоящие из взаимозаменяемых компонентов. Это позволяет ускорить процесс разработки и упростить дальнейшую поддержку и масштабирование системы;
2. Переиспользование готовых компонентов. Важно, чтобы каждый новый проект использовал уже существующие решения. Это позволяет эффективно расходовать ресурсы команды и снижать затраты клиентов. Для реализации этой цели мы регулярно выделяем время на документирование кода и ревью;
3. Ставка на open-source. Внедрение open-source решений принесло множество преимуществ, включая экономию средств, гибкость в настройке и наличие активного сообщества этих решений. Использование таких технологий помогает обеспечивать стабильность работы системы, особенно в условиях санкционных ограничений на коммерческое ПО.
Пример реализации B2B кабинета
Так как являемся интегратором кастомных решений на .NET, то, естественно, выбор пал именно на эту платформу. В качестве базы данных выбираем PostgreSQL - признанный стандарт разработки в сочетании с .NET.
Основные модули проекта:
Модуль авторизации
Для аутентификации и управления пользователями используем Keycloak, что позволяет реализовать единую систему идентификации и аутентификации с поддержкой OpenID Connect и OAuth 2.0. В зависимости от специфики проекта возможна кастомизация механизма учетных записей.Модуль управления контентом
Основная бизнес-логика системы реализуется в отдельном сервисе, построенном по трехслойной архитектуре. Для работы с данными могут использоваться ORM (например, Entity Framework Core) или более легковесные решения - Dapper, в сочетании с хранимыми процедурами для оптимизации запросов.Модуль управления файлами
Взаимодействие с файлами организуется через REST API. В качестве хранилища могут использоваться облачные решения (например, MinIO, Amazon S3) или локальные файловые серверы, в зависимости от требований к безопасности и соответствия требования регуляторов.Модули интеграции с 1С
Для синхронизации данных между нашей системой и 1С разрабатываются сервисы импорта, которые обрабатывают очереди сообщений RabbitMQ/Kafka.Планировщик задач
Для автоматизированного выполнения фоновых задач: отправки уведомлений, обновления статусов заказов и экспорта данных, применяем Hangfire или аналогичные инструменты.
Такой подход к построению бэкенда позволил нам добиться стабильности, гибкости и масштабируемости системы. Благодаря модульности, переиспользованию компонентов и ставке на open-source, мы смогли сократить сроки разработки, упростить сопровождение и обеспечить высокую адаптивность решения.