Каково максимальное количество пользователей в 1С 8.3 и как масштабировать систему при высоких нагрузках?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Разберем подробно внутренние механизмы платформы, аппаратные и лицензионные лимиты, а также практические подходы к архитектуре высоконагруженных систем (HighLoad).

1. Теоретические и программные лимиты количества пользователей в ИБ

Проанализируем структуру хранения пользователей в платформе. Внутренний идентификатор пользователя и метаданные учетных записей хранятся в специальной системной таблице v8users и внутреннем файле users.usr.

На уровне запросов СУБД теоретический предел ограничен разрядностью идентификаторов (до 2 147 483 647 записей). Однако при программной работе с пользователями через встроенный язык 1С разработчики сталкиваются с серьезным узким местом.

Посмотрим на пример стандартного программного подсчета пользователей:


// Неоптимальный вызов для больших баз
КоличествоПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей().Количество();

Выясним причину проблем с производительностью при таком подходе: метод ПолучитьПользователей() сначала полностью считывает весь бинарный список учетных записей из базы данных и формирует массив объектов в оперативной памяти рабочего процесса rphost, и лишь затем вычисляет длину массива. При наличии сотен тысяч записей этот вызов приводит к пиковому потреблению памяти и зависанию рабочего процесса.

Для быстрого подсчета и работы с большим числом пользователей на практике применяют следующие решения:

  1. Ведение учетных записей через прикладной справочник конфигурации (например, справочник Пользователи) с соотношением 1:1 к пользователям информационной базы, где количество элементов можно мгновенно получить через стандартный SQL-запрос КОЛИЧЕСТВО(*).
  2. Использование пула системных учетных записей для внешних интеграций и сервисов с авторизацией по токенам или разделением прав на прикладном уровне, без создания отдельного пользователя ИБ под каждого внешнего клиента.

2. Реальные границы одновременных подключений: ПРОФ и КОРП

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

Рассмотрим, как лицензирование и архитектура влияют на масштабируемость:

  1. Лицензии уровня ПРОФ: имеют программное ограничение на использование ресурсов — не более 12 ядер центрального процессора и не более 128 ГБ оперативной памяти на один рабочий сервер. В таких условиях комфортная работа обычно ограничивается диапазоном от 100 до 300 активно пишущих пользователей.
  2. Лицензии уровня КОРП: снимают ограничения на использование ядер и памяти, а также предоставляют расширенные механизмы управления кластером серверов: балансировку нагрузки, назначение требований функциональности, управление потреблением памяти рабочими процессами.
  3. Практические показатели внедрений: в оптимизированных базах 1С с кластером из нескольких серверов и СУБД (PostgreSQL / MS SQL) система успешно обслуживает от 1 000 до 5 000+ одновременно работающих пользователей в рамках единой информационной базы.

3. Основные узкие места при росте количества сессий

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

  1. Транзакционные блокировки и очереди: при одновременной записи документов несколькими операторами в один и тот же период или по одной номенклатурной позиции возникают ожидания на блокировках СУБД. Решением является обязательный перевод конфигурации на режим управляемых блокировок (уровень изоляции READ COMMITTED) и оптимизация гранулярности блокировок.
  2. Конкуренция за ресурсы сервера СУБД: параллельное формирование тяжелых аналитических отчетов перегружает дисковую подсистему и процессор, вытесняя оперативные данные из кэша памяти СУБД.
  3. Длительная реструктуризация таблиц: в терабайтных базах при обновлении конфигурации стандартный механизм реструктуризации платформы выполняет массовую перезапись данных через временные таблицы, что может блокировать работу предприятия на длительный срок.

4. Архитектурные методы масштабирования HighLoad в 1С

Разберем по шагам комплекс мер, позволяющий преодолеть порог в 1 000+ одновременных сеансов:

  1. Тонкая настройка кластера серверов 1С:

    Используем Требования назначения функциональности (ТНФ) для физического разнесения ролей кластера. Регламентные и фоновые задания выносим на отдельные серверные ноды, исключая их влияние на интерактивные сеансы пользователей. Сервис блокировок и сервис сеансов закрепляем за выделенными менеджерами кластера (rmngr).

  2. Переход на тонкий и веб-клиент:

    Отказываемся от толстого клиента в пользу тонкого и веб-клиента с публикацией базы на веб-серверах (Apache, IIS). Это уменьшает сетевой оверхед, снижает нагрузку на терминальные серверы и позволяет эффективно использовать пулы соединений.

  3. Разделение контуров OLTP (запись) и OLAP (отчеты):

    Применяем паттерн CQRS. Для тяжелых отчетов создается снапшот или настраивается репликация базы данных на уровне СУБД (MS SQL Always On, потоковая репликация PostgreSQL). Формирование ресурсоемких отчетов на базе СКД перенаправляется на реплику, работающую в режиме «только чтение», полностью освобождая мастер-базу от паразитной нагрузки.

  4. Асинхронный ввод данных и интеграционные очереди:

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

  5. Использование механизма разделения данных:

    В типовых решениях встроенный механизм разделения данных (мультиарендность) позволяет изолировать учет нескольких независимых организаций внутри одной физической СУБД, существенно снижая взаимные блокировки таблиц.

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

← На главную