Как ускорить работу 1С:Предприятие для 5–10 пользователей и выбрать оптимальную архитектуру сервера?

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

При увеличении количества активных пользователей 1С с 5 до 8–10 человек на файловой базе данных почти всегда возникают заметные задержки в работе. Типичная ситуация: когда один бухгалтер формирует тяжелый отчет (например, оборотно-сальдовую ведомость в «1С:Бухгалтерии»), остальные сотрудники не могут оперативно провести документы или пробить чеки. Проанализируем, почему возникает эта проблема, и разберем практические способы настройки инфраструктуры под ограниченный бюджет.

Выясним причину зависаний файловой базы данных

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

Главные причины блокировок и замедления работы:

  1. Блокировки таблиц на уровне файла: при вычислении ресурсоемких отчетов платформа накладывает блокировку на таблицы базы данных для гарантирования их целостности. Любая попытка записи (проведение документа, создание нового элемента справочника) встает в очередь и ожидает окончания чтения.
  2. Очередь запросов веб-сервера: если работа организована через веб-сервер Apache или IIS в режиме с единственным рабочим процессом, все запросы пользователей обрабатываются последовательно. Тяжелый отчет полностью блокирует поток веб-сервера для остальных подключений.
  3. Ограничения дисковой подсистемы и ОЗУ: файловый режим активно нагружает дисковые операции ввода-вывода (I/O). При использовании обычных HDD или недостатке оперативной памяти система начинает сбрасывать данные в файл подкачки, что резко снижает скорость.

Вариант 1. Переход на клиент-серверный режим (1С:Сервер + PostgreSQL)

Самым надежным и технологически правильным решением является переход с файлового режима на архитектуру «клиент-сервер». В этом случае вся работа с данными переносится на сервер СУБД, а блокировки выполняются только на уровне отдельных строк, а не целых таблиц.

Рассмотрим структуру этого решения и варианты лицензирования:

  1. Выбор СУБД: бесплатная СУБД PostgreSQL (со сборкой от 1С) позволяет полностью исключить затраты на приобретение коммерческой СУБД MS SQL Server.
  2. Выбор серверной лицензии 1С:

    Существует вариант лицензии 1С:Предприятие 8.3. Сервер МИНИ на 5 подключений и полнофункциональная лицензия на сервер 1С:Предприятие. Учтем важный нюанс: Сервер МИНИ имеет жесткое аппаратное ограничение — не более 5 пользовательских сеансов. Для коллектива из 8–10 человек лицензия Сервер МИНИ не подойдет, требуется стандартная лицензия на сервер 1С.

  3. Выбор операционной системы:

    Сервер 1С и PostgreSQL могут функционировать как на ОС Windows, так и на дистрибутивах Linux (Ubuntu Server, Debian, RED OS). Развертывание на Linux позволяет сэкономить на покупке Windows Server и клиентских лицензиях доступа (CAL). Если используется Windows 10, важно учитывать системный лимит в 20 входящих TCP-подключений и ограничение динамических портов.

Проанализируем необходимые настройки параметров СУБД PostgreSQL под 1С. В файле конфигурации postgresql.conf необходимо задать параметры в зависимости от объема ОЗУ:


# Пример базовой оптимизации postgresql.conf для сервера с 16 ГБ ОЗУ
shared_buffers = 4GB
work_mem = 64MB
maintenance_work_mem = 512MB
effective_cache_size = 12GB
random_page_cost = 1.1
max_connections = 100

При развертывании PostgreSQL на ОС Windows также требуется увеличить диапазон временных портов в реестре (параметр MaxUserPort со значением 65534), чтобы исключить сбои сетевых соединений при частых обращениях сервера приложений 1С.

Вариант 2. Разделение процессов Apache (для файлового режима)

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

Посмотрим, как это работает:

  1. В конфигурационном файле Apache httpd.conf создаются изолированные виртуальные хосты или отдельная конфигурация пула процессов для каждого клиентского подключения.
  2. При запуске отчета одним пользователем создается отдельный процесс httpd, а остальные пользователи продолжают отправлять запросы через свои независимые процессы.

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

Вариант 3. Аппаратная модернизация и организация надежности

Независимо от выбранной архитектуры, серверная часть требует правильной аппаратной конфигурации. Проанализируем минимальные системные требования для работы 8–10 пользователей:

  1. Дисковая система: диски SSD или NVMe являются обязательным условием. Рекомендуется объединить диски в программный или аппаратный зеркальный массив RAID 1 для защиты от отказа накопителя. На первом диске размещается операционная система, на RAID-массиве из SSD — базы данных и службы СУБД.
  2. Оперативная память: для совместной работы ОС, сервера 1С (процессы rmngr, rphost) и СУБД PostgreSQL необходимо минимум 16 ГБ ОЗУ. Использование 8 ГБ приведет к уходу системы в подкачку (swap) и критическим задержкам.
  3. Резервное копирование: файловую базу или дамп PostgreSQL (команда pg_dump) необходимо автоматически выгружать на отдельное сетевое хранилище (NAS) или облачный диск.

Итоговые рекомендации по выбору архитектуры

Для стабильной работы 8–10 пользователей в конфигурациях «1С:Бухгалтерия» и «1С:ЗУП» наиболее эффективным шагом будет приобретение полнофункциональной серверной лицензии 1С и развертывание связки 1С:Сервер + PostgreSQL на базе Linux или Windows Server. Это обеспечит высокий уровень параллельной работы, отсутствие взаимных блокировок и сохранность данных при масштабировании бизнеса.

← На главную