Как перевести 1С:Предприятие 8.3 с файлового режима и RDP на клиент-серверную архитектуру с PostgreSQL?

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

При росте числа пользователей и объема информационной базы перед системными администраторами встает вопрос оптимизации работы системы. Рассмотрим распространенную ситуацию: организация использует конфигурацию «1С:Бухгалтерия предприятия 8.3» объемом около 8 ГБ в файловом режиме. В базе одновременно работают до 30 пользователей через терминальный доступ (RDP). Выясним, почему такое решение становится нестабильным, в чем преимущества перехода на клиент-серверный режим с СУБД PostgreSQL и как правильно выполнить эту миграцию.

Анализ ограничений файлового режима 1С

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

  1. Ограничения на размер таблиц. Распространено мнение, что файловая база не может превышать 4 ГБ. На самом деле ограничение в 4 ГБ относится не к общему размеру файла 1Cv8.1CD, а к каждой отдельной таблице внутри информационной базы. Начиная с платформы 8.3.8, при реструктуризации базы можно задать размер страницы внутреннего формата до 64 КБ, что расширяет предел для одной таблицы до 64 ГБ. Однако это не решает архитектурных проблем.
  2. Блокировки на уровне таблиц. Файловый режим использует файловые блокировки. Когда один пользователь проводит документ, блокируется вся таблица. При 30 одновременно работающих бухгалтерах это приводит к задержкам, сбоям «Превышено время ожидания предоставления блокировки» и регулярным завершениям работы программы с ошибками.
  3. Риск повреждения данных. Любой сбой сети, аварийное завершение сеанса RDP или зависание сервера могут привести к повреждению структуры файла 1Cv8.1CD. На восстановление базы с помощью утилиты chdbfl.exe уходит значительное время.

Сравнение СУБД: почему MS SQL Express не подойдет, а PostgreSQL оптимален

Рассмотрим варианты выбора системы управления базами данных (СУБД):

Бесплатная версия MS SQL Server Express имеет жесткие технологические ограничения: максимальный объем одной базы данных составляет 10 ГБ, используется не более 1 сокета (или 4 ядер) процессора и не более 1410 МБ оперативной памяти под буферный кэш. Для информационной базы размером 8 ГБ с 30 активными пользователями лимит памяти и дискового объема будет исчерпан в кратчайшие сроки, что вызовет сильное падение производительности.

СУБД PostgreSQL не имеет искусственных ограничений по размеру базы или выделяемой оперативной памяти и распространяется бесплатно. Для работы с 1С критически важно использовать не стандартную дистрибутивную сборку, а специализированную сборку PostgreSQL с патчами под платформу «1С:Предприятие» (доступную на официальном портале 1С или у специализированных вендоров).

Лицензирование и необходимые компоненты

Проанализируем, какие программные продукты и лицензии понадобятся для построения клиент-серверной архитектуры:

  1. Сервер «1С:Предприятие 8.3» (64-разрядный). Для 30 пользователей необходимо приобрести полноценный 64-разрядный сервер 1С. Использование продукта «1С:Предприятие 8.3 Сервер МИНИ» не подойдет, так как он ограничен 5 сеансами пользователей. 32-разрядный сервер 1С использовать также не рекомендуется, так как процесс rphost.exe ограничен 4 ГБ адресного пространства, что быстро приведет к ошибкам нехватки памяти (Out of Memory) при активной работе с тяжелыми отчетами в конфигурации «Бухгалтерия предприятия 3.0».
  2. Клиентские лицензии 1С. В распоряжении организации должно быть достаточное количество клиентских лицензий (программных или аппаратных ключей HASP) на 30 рабочих мест.
  3. Веб-сервер или RDP. Переход на клиент-серверную архитектуру позволяет отказаться от покупки дорогостоящих терминальных лицензий Windows Server (RDS CAL). Базу можно опубликовать на веб-сервере (IIS или Apache) и подключать пользователей через «Тонкий клиент» 1С. Если же сотрудники работают через нестабильные каналы связи (например, из дома или удаленных филиалов), использование RDP остается обоснованным: при разрыве соединения сеанс на терминале сохраняется, в то время как тонкий клиент при потере связи с сервером может выдать критическую ошибку.

Тонкая настройка PostgreSQL для работы с 1С

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

  1. shared_buffers — выделяет память для кэширования данных. Рекомендуется задавать в размере 25–30% от общего объема оперативной памяти сервера.
  2. effective_cache_size — подсказка планировщику запросов об объеме доступного дискового кэша. Устанавливается на уровне 50–75% от объема RAM.
  3. work_mem — объем памяти для операторов сортировки и группировки. Для 30 сеансов оптимальное значение составляет от 16MB до 64MB. Слишком высокое значение может вызвать дефицит RAM при одновременном выполнении сложного отчета несколькими пользователями.
  4. maintenance_work_mem — память для сервисных операций (индексация, VACUUM). Устанавливают в районе 512MB–1GB.
  5. temp_buffers — размер памяти под временные таблицы. Для 1С рекомендуется значение от 16MB до 32MB.
  6. synchronous_commit = off — отключение принудительного ожидания записи транзакции на диск значительно ускоряет операции записи в 1С (требуется наличие источника бесперебойного питания на сервере).
  7. autovacuum_vacuum_scale_factor = 0.05 и autovacuum_analyze_scale_factor = 0.02 — обеспечивают более частый запуск автовакуума и сбора статистики, что критично для корректного построения планов выполнения запросов платформой 1С.

Технические рекомендации по повышению производительности

Посмотрим, какие дополнительные шаги помогут получить максимальную скорость работы после миграции:

  1. Разделение дисковой подсистемы. Для исключения узких мест по дисковому вводу-выводу (IOPS) размещайте файлы базы данных PostgreSQL, журналы предзаписи WAL и временные файлы кластера 1С на быстрых физических SSD или NVMe дисках. В идеале журналы WAL и временные каталоги выносятся на отдельные накопители.
  2. Оптимизация регламентных заданий. В типовой конфигурации «1С:Бухгалтерия 8.3» включен ряд фоновых процессов. Рекомендуется отключить полнотекстовый поиск (если им не пользуются) или настроить его выполнение по расписанию в ночные часы, а также перенести регламентные процедуры (обновление классификаторов, расчеты) на время наименьшей активности пользователей.
  3. Управление сеансами и перезапуск процессов. В консоли администрирования кластера серверов 1С настройте регулярный перезапуск рабочих процессов (параметр «Интервал перезапуска») и предел превышения памяти. Это предотвратит деградацию производительности из-за постепенного фрагментирования оперативной памяти процессом rphost.

Таким образом, миграция с файлового режима на клиент-серверную связку «1С:Предприятие 8.3 + PostgreSQL» устранит проблемы с блокировками таблиц, повысит отказоустойчивость системы и позволит 30 пользователям комфортно работать с информационной базой любого размера.

← На главную