Как предоставить доступ внешним пользователям к базе 1С для записи на занятия?

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

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

Анализ схемы подключения под одной учетной записью 1С

Рассмотри популярную идею: опубликовать базу 1С на веб-сервере, завести единого технического пользователя и настроить автоматический вход под ним через веб-клиент. Предполагается, что внешние пользователи заходят в веб-клиент, а специальная обработка запрашивает личный пароль или телефон клиента, проверяет его по справочнику контрагентов и открывает доступ к расписанию.

Проанализируем, почему этот подход является неэффективным и рискованным:

  1. Лицензионные ограничения платформы 1С: Лицензии «1С:Предприятие 8» подсчитываются по количеству активных сеансов и подключений. Если 50 пользователей одновременно откроют веб-клиент, система затребует 50 клиентских лицензий, даже если все они зашли под одной учетной записью 1С. Мультиплицирование сеансов не позволяет сэкономить на лицензиях.
  2. Блокировка сеансов и таймауты: При исчерпании доступного пула лицензий новые пользователи, пытающиеся зайти в систему, будут сталкиваться с длительным ожиданием. Если лицензия не освободится в течение определенного времени (по умолчанию 30 секунд), сеанс отвалится по таймауту.
  3. Низкая производительность и риски падения: Веб-клиент 1С не рассчитан на массовые нерегулируемые внешние подключения. При одновременной работе большого числа людей возникают транзакционные блокировки таблиц базы данных и перегрузка менеджера кластера 1С.
  4. Угрозы безопасности: Публикация веб-клиента 1С напрямую в сеть без дополнительной защиты создает риски DDoS-атак, подбора паролей и несанкционированного доступа к конфиденциальной информации.

Оптимальные архитектурные решения

Выясним, какие варианты интеграции позволяют эффективно решить задачу онлайн-записи клиентами без существенных затрат на лицензии 1С и без риска для основной базы.

1. Организация веб-сайта с промежуточной базой данных

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

  1. Промежуточная СУБД: На внешнем веб-сервере разворачивается сайт с собственной базой данных (например, PostgreSQL или MySQL). В эту СУБД из 1С выгружается только необходимая информация: расписание занятий, список тренеров, свободные слоты для записи.
  2. Работа клиентов: Посетители заходят на сайт, авторизуются по номеру телефона и создают заявку на запись. Все операции выполняются во внешней СУБД и не нагружают 1С.
  3. Синхронизация с 1С: Обмен данными между сайтом и 1С происходит по расписанию через регламентные задания или мгновенно с помощью HTTP-сервисов. При создании записи на сайте бэкенд отправляет короткий HTTP-запрос в 1С, который выполняется за доли секунды и занимает всего одну лицензию на момент обработки.

2. Использование HTTP-сервисов и мобильного приложения / чат-бота

Если веб-сайт отсутствует, разберем вариант создания мобильного приложения или чат-бота (например, в Telegram или VK):

  1. Интерфейс чат-бота или приложения запрашивает у клиента номер телефона для авторизации.
  2. Сервер приложения отправляет запрос к HTTP-сервису 1С для получения расписания и оформления записи.
  3. Платформа 1С использует механизм пула сеансов. Запрос обрабатывается быстро, после чего сеанс сразу освобождается и может быть использован для обслуживания следующего обращения.

Правила безопасности при публикации HTTP-сервисов

Если 1С публикуется во внешнюю сеть для взаимодействия с сайтом или приложением, проанализируем необходимые меры защиты:

  1. Использование реверс-прокси (Nginx): Не публикуйте веб-сервер IIS или Apache с 1С напрямую наружу. Установите перед ним Nginx. Он обеспечит шифрование HTTPS, защитит от массовых автоматических запросов (rate limiting) и скроет структуру внутренних URL-адресов.
  2. Ограничение прав учетной записи: Служебный пользователь 1С, под которым выполняются HTTP-запросы, должен иметь минимально необходимые права. Настройте ограничение прав на уровне записей (RLS), чтобы полностью исключить доступ к персональным данным других клиентов и финансовой информации.

Таким образом, прямой доступ внешних пользователей в веб-клиент 1С не подходит для массового использования из-за лицензионных ограничений и рисков безопасности. Создание промежуточного сайта или использование HTTP-сервисов позволяет построить устойчивую, безопасную и масштабируемую систему записи на занятия.

← На главную