При увеличении количества активных пользователей 1С с 5 до 8–10 человек на файловой базе данных почти всегда возникают заметные задержки в работе. Типичная ситуация: когда один бухгалтер формирует тяжелый отчет (например, оборотно-сальдовую ведомость в «1С:Бухгалтерии»), остальные сотрудники не могут оперативно провести документы или пробить чеки. Проанализируем, почему возникает эта проблема, и разберем практические способы настройки инфраструктуры под ограниченный бюджет.
Для понимания вариантов решения разберем внутреннее устройство файлового режима работы 1С. В файловой базе данных (файл с расширением .1cd) обработка запросов и расчетов выполняется на стороне клиентских компьютеров или процесса веб-сервера.
Главные причины блокировок и замедления работы:
Самым надежным и технологически правильным решением является переход с файлового режима на архитектуру «клиент-сервер». В этом случае вся работа с данными переносится на сервер СУБД, а блокировки выполняются только на уровне отдельных строк, а не целых таблиц.
Рассмотрим структуру этого решения и варианты лицензирования:
PostgreSQL (со сборкой от 1С) позволяет полностью исключить затраты на приобретение коммерческой СУБД MS SQL Server.Существует вариант лицензии 1С:Предприятие 8.3. Сервер МИНИ на 5 подключений и полнофункциональная лицензия на сервер 1С:Предприятие. Учтем важный нюанс: Сервер МИНИ имеет жесткое аппаратное ограничение — не более 5 пользовательских сеансов. Для коллектива из 8–10 человек лицензия Сервер МИНИ не подойдет, требуется стандартная лицензия на сервер 1С.
Сервер 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С.
Если бюджет ограничен и не позволяет приобрести лицензию на сервер 1С, рассмотрим промежуточный технический вариант — настройку веб-сервера Apache с запуском отдельного рабочего процесса под каждого пользователя.
Посмотрим, как это работает:
httpd.conf создаются изолированные виртуальные хосты или отдельная конфигурация пула процессов для каждого клиентского подключения.httpd, а остальные пользователи продолжают отправлять запросы через свои независимые процессы.Важное ограничение: данный метод решает проблему очереди веб-сервера, но не устраняет внутрибазовые блокировки таблиц самого файла .1cd при выполнении транзакций записи. Это временная мера, подходящая только для небольшой интенсивности ввода документов.
Независимо от выбранной архитектуры, серверная часть требует правильной аппаратной конфигурации. Проанализируем минимальные системные требования для работы 8–10 пользователей:
rmngr, rphost) и СУБД PostgreSQL необходимо минимум 16 ГБ ОЗУ. Использование 8 ГБ приведет к уходу системы в подкачку (swap) и критическим задержкам.pg_dump) необходимо автоматически выгружать на отдельное сетевое хранилище (NAS) или облачный диск.Для стабильной работы 8–10 пользователей в конфигурациях «1С:Бухгалтерия» и «1С:ЗУП» наиболее эффективным шагом будет приобретение полнофункциональной серверной лицензии 1С и развертывание связки 1С:Сервер + PostgreSQL на базе Linux или Windows Server. Это обеспечит высокий уровень параллельной работы, отсутствие взаимных блокировок и сохранность данных при масштабировании бизнеса.