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

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

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

Подготовка сервера и системные требования

Перед началом установки необходимо убедиться, что ваш сервер соответствует минимальным требованиям для комфортной работы. Для небольших внедрений достаточно 4 ядер процессора и 8 ГБ оперативной памяти, однако для нагруженных систем эти цифры должны быть значительно выше. Операционная система должна быть актуальной версии, например Ubuntu 20.04/22.04 LTS или CentOS 7/8, с установленными всеми последними обновлениями безопасности.

Обязательно выделите отдельный раздел диска под базы данных. Использование SSD-накопителей является не просто рекомендацией, а строгой необходимостью для современных высоконагруженных систем. Файловая система ext4 или xfs покажет наилучшие результаты при работе с большими объемами мелких файлов и частыми операциями записи. Не размещайте базу данных на том же разделе, где установлена операционная система, чтобы избежать конфликтов ввода-вывода.

Проверьте сетевые настройки сервера. Для корректной работы кластера серверов 1С и подключения клиентов необходимо, чтобы порты были открыты в брандмауэре. Стандартный порт для PostgreSQL — 5432, а для агента сервера 1С — 1540 и 1541. Также убедитесь, что на сервере установлено имя хоста, которое корректно разрешается в IP-адрес, так как многие компоненты 1С чувствительны к настройкам DNS.

⚠️ Внимание: Если вы используете виртуальную машину, убедитесь, что драйверы виртуализации (vmware-tools или guest-additions) установлены корректно. Неправильная работа драйверов диска может снизить производительность СУБД в несколько раз.

📊 Какая у вас операционная система на сервере?
Ubuntu/CentOS (Linux)
Windows Server
Я использую облачный сервис
Пока не определился

Установка и базовая настройка PostgreSQL

Установка СУБД в Linux обычно производится через стандартные репозитории дистрибутива, что гарантирует получение стабильной версии пакетов. Для Ubuntu используйте команду sudo apt install postgresql postgresql-contrib, а для CentOS — sudo yum install postgresql-server postgresql-contrib. После установки сервис необходимо инициализировать и добавить в автозагрузку, чтобы он запускался сразу после перезагрузки сервера.

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

sudo -u postgres psql

CREATE USER usr1c WITH PASSWORD 'strong_password';

CREATE DATABASE db1c OWNER usr1c;

\q

Далее необходимо отредактировать конфигурационные файлы postgresql.conf и pg_hba.conf. В первом файле увеличьте параметр shared_buffers до 25% от доступной оперативной памяти, но не более 8 ГБ, так как дальнейшее увеличение не дает пропорционального прироста производительности. Во втором файле добавьте правило, разрешающее подключение к базе данных с IP-адреса сервера 1С или из всей локальной сети, используя метод аутентификации md5.

💡

Для повышения производительности установите параметр effective_cache_size в postgresql.conf равным 75% от общей оперативной памяти сервера. Это поможет планировщику запросов выбирать более эффективные планы выполнения.

Инсталляция сервера приложений 1С:Предприятие

Сервер 1С выступает посредником между клиентскими рабочими местами и базой данных, управляя блокировками и кэшированием. Дистрибутив сервера для Linux обычно поставляется в виде deb или rpm пакетов. После установки пакетов 1c-enterprise-server и 1c-enterprise-server-common необходимо запустить службу ras (Remote Administration Service), которая управляет кластером серверов.

Создание кластера — это первый шаг в настройке серверной части. Кластер представляет собой логическую группу рабочих серверов, которые распределяют нагрузку между собой. Даже если у вас физически один сервер, создание кластера обязательно. Имя кластера и порт администратора задаются при создании, порт по умолчанию — 1545. Запомните эти данные, они понадобятся для подключения консоли администрирования.

Внутри кластера необходимо создать рабочий сервер и зарегистрировать его. Рабочий сервер — это процесс, который непосредственно выполняет код 1С и обращается к СУБД. При его создании указывается диапазон портов, которые будут использоваться для клиентских соединений. Рекомендуется выделить диапазон, например, от 1560 до 1590, чтобы избежать конфликтов с другими службами.

Параметр Рекомендуемое значение Описание
MaxConnections 150-200 Максимальное число подключений к рабочему серверу
SessionTimeout 0 Время жизни неактивной сессии (0 — бесконечно)
LogLevel 15 Уровень детализации логов (для отладки)
ProcessLimit 4096 Лимит процессов на уровне ОС для пользователя 1С

⚠️ Внимание: Версии платформы 1С и драйверов PostgreSQL должны быть совместимы. Использование слишком новой версии СУБД со старой платформой 1С может привести к ошибкам подключения. Всегда сверяйтесь с таблицей совместимости на сайте поддержки 1С.

Регистрация информационной базы в кластере

После того как инфраструктура подготовлена, необходимо зарегистрировать саму информационную базу в кластере серверов. Это действие связывает логическое имя базы, видимое пользователям в списке баз, с физическими параметрами подключения к PostgreSQL. Операцию можно выполнить через графическую консоль администрирования или утилиту командной строки rac.

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

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

☑️ Регистрация базы в кластере

Выполнено: 0 / 5

Оптимизация производительности и параметры запуска

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

Для оптимизации работы с PostgreSQL рекомендуется настроить параметры work_mem и maintenance_work_mem. Параметр work_mem определяет объем памяти, выделяемый для операций сортировки и хеширования внутри одного запроса. Слишком маленькое значение приведет к использованию временных файлов на диске, что резко замедлит работу отчетов и обработок.

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

⚠️ Внимание: Параметры оптимизации зависят от аппаратной конфигурации. Значения, подходящие для сервера с 64 ГБ памяти, могут привести к падению службы на сервере с 8 ГБ. Тестируйте изменения в нерабочее время.

Диагностика проблем и анализ логов

Если пользователи жалуются на медленную работу или ошибки подключения, первым делом следует обратиться к логам. Сервер 1С ведет подробные журналы событий, которые по умолчанию хранятся в каталоге /var/log/1c или в подкаталоге профиля пользователя 1c-enterprise-server. Анализ этих файлов позволяет выявить причины сбоев, будь то проблемы с сетью, блокировки в СУБД или нехватка ресурсов.

Для глубокой диагностики используйте утилиту rac с ключом session list, которая покажет активные сессии, выполняемые запросы и пользователей. Это помогает найти "тяжелые" запросы, которые блокируют работу других сотрудников. В PostgreSQL для аналогичных целей можно использовать представление pg_stat_activity, показывающее состояние всех подключений в реальном времени.

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

Как включить подробное логирование SQL-запросов?

Для включения логирования всех SQL-запросов в PostgreSQL измените параметр log_statement в файле postgresql.conf на значение 'all'. После этого перезагрузите службу. Будьте осторожны: логи могут расти очень быстро и занять все место на диске.

💡

Регулярный мониторинг логов и использование утилиты rac позволяют предотвращать простои системы, выявляя проблемы до того, как они станут критическими для бизнеса.

Вопросы и ответы (FAQ)

Можно ли установить сервер 1С и PostgreSQL на один физический сервер?

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

Какой пользователь Linux нужен для запуска сервера 1С?

При установке пакетов автоматически создается системный пользователь usr1cv8. Запуск служб должен происходить от имени этого пользователя. Никогда не запускайте сервер 1С от имени root, так как это создает риски безопасности и может привести к некорректной работе прав доступа к файлам журналов регистрации.

Что делать, если при запуске 1С выдает ошибку "Сервер не найден"?

Проверьте, запущена ли служба ragent. Убедитесь, что имя хоста сервера прописано в файле /etc/hosts и резолвится в правильный IP-адрес. Также проверьте настройки брандмауэра — порт 1540 должен быть открыт для входящих соединений от клиентских машин.

Нужно ли покупать лицензию на PostgreSQL для работы с 1С?

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

Как обновить версию PostgreSQL без потери данных?

Простая замена пакетов может не сработать при переходе между мажорными версиями (например, с 12 на 14). Необходимо использовать утилиту pg_upgrade или сделать дамп базы через pg_dump, обновить сервер и восстановить данные через psql. Перед любыми работами обязательно сделайте полную резервную копию.