К статье
Практический материал

Администрирование · 11 мин

Как настроить сервер 1С и PostgreSQL для стабильной работы

Пошаговая настройка сервера 1С:Предприятие и PostgreSQL: установка, параметры postgresql.conf, создание базы, типичные ошибки и проверка производительности.

Связка «сервер 1С:Предприятие + PostgreSQL» — самый распространённый способ перевести базы из файлового режима в клиент-серверный без покупки дорогой лицензии MS SQL. PostgreSQL для 1С распространяется в специальной сборке с патчами, а сама настройка сводится к трём этапам: установка СУБД, установка и запуск сервера 1С, создание информационной базы через консоль кластера.

Главная ошибка новичков — поставить «ванильный» PostgreSQL с официального сайта PostgreSQL Global Development Group. 1С требует сборку с особыми параметрами локали и патчами: обычная версия либо не примет базу, либо будет работать с ошибками сортировки и сравнения строк. Дистрибутив нужной сборки публикуется на портале 1С и в комплекте поставки некоторых партнёрских решений.

Второй критический момент — настройки памяти и соединений в postgresql.conf. Параметры по умолчанию рассчитаны на слабое оборудование и не используют ресурсы сервера, из-за чего даже мощная машина будет «тормозить» на отчётах и проведении документов. Ниже разберём установку, тюнинг и проверку результата по шагам.

Требования к оборудованию и выбор версий

Перед установкой определите разрядность и версии компонентов. Сервер 1С:Предприятие и PostgreSQL должны совпадать по разрядности: 64-битный сервер 1С работает с 64-битной СУБД. Версию платформы 1С выбирайте не ниже той, под которую разработана ваша конфигурация, а версию PostgreSQL — из списка поддерживаемых конкретной платформой (эта информация есть в документации 1С и на диске ИТС).

По железу ориентируйтесь на размер базы и число пользователей. Минимально комфортная конфигурация для небольшой базы — 16 ГБ ОЗУ и SSD-диски; для баз в десятки гигабайт и 30+ пользователей — от 32–64 ГБ ОЗУ. Именно объём оперативной памяти определяет, сколько данных PostgreSQL сможет держать в кэше, а это главный фактор скорости работы 1С.

Операционная система — обычно Linux (Debian, Ubuntu, CentOS-подобные дистрибутивы) или Windows Server. Linux-вариант чаще выбирают из-за отсутствия лицензионных затрат на ОС, но требует навыков администрирования командной строки. Если опыта с Linux нет, начинайте с Windows Server — настройка там выполняется через графические установщики.

Установка PostgreSQL сборки 1С

Скачайте дистрибутив PostgreSQL, адаптированный для 1С, с портала portal.1c.ru (раздел обновлений программ) или получите его у франчайзи 1С. Установка на Linux выполняется пакетным менеджером, на Windows — мастером установки. При установке задайте надёжный пароль суперпользователя postgres и запомните порт (по умолчанию 5432).

После установки убедитесь, что служба PostgreSQL запущена и принимает подключения. На Linux проверка выполняется командой systemctl status postgresql, на Windows — через оснастку «Службы». Если сервер 1С и СУБД стоят на разных машинах, откройте порт 5432 в брандмауэре и разрешите подключения в файле pg_hba.conf, добавив строку для подсети сервера 1С.

Проверка локали

База 1С создаётся с локалью, соответствующей языку конфигурации — для российских конфигураций это ru_RU.UTF-8 на Linux или Russian_Russia.1251/UTF-8 на Windows. Если при создании базы возникает ошибка несовпадения локали, пересоздайте кластер PostgreSQL с нужной локалью через initdb или укажите параметры локали в консоли кластера 1С при создании базы.

bash
sudo systemctl status postgresql && sudo -u postgres psql -c "SELECT version();"

Настройка postgresql.conf под 1С

Файл postgresql.conf находится в каталоге данных PostgreSQL (например, /var/lib/pgsql/data или C:\Program Files\PostgreSQL\...\data). После каждого изменения файла службу PostgreSQL нужно перезапускать. Ниже — ключевые параметры, которые чаще всего меняют под нагрузку 1С.

shared_buffers — объём памяти под кэш данных СУБД; типичная рекомендация — 20–25% от ОЗУ сервера. work_mem — память на операции сортировки и соединений в одном запросе; для 1С обычно поднимают до 32–128 МБ в зависимости от числа одновременных пользователей. effective_cache_size подсказывает планировщику, сколько памяти доступно под кэш с учётом кэша ОС — ставят 50–70% ОЗУ.

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

ПараметрРольОриентир для старта
shared_buffersКэш данных СУБД20–25% от ОЗУ
work_memПамять на сортировки в запросе32–128 МБ
effective_cache_sizeОценка общего кэша для планировщика50–70% от ОЗУ
maintenance_work_memПамять для VACUUM и индексов256 МБ – 1 ГБ
max_connectionsЛимит подключенийЧисло сеансов + запас 20–30%

Установка и настройка сервера 1С:Предприятие

Дистрибутив сервера 1С устанавливается с того же диска или скачанного пакета платформы: выберите компоненты «Сервер 1С:Предприятие» и «Администрирование сервера 1С». На Windows служба регистрируется автоматически, на Linux запускается скриптом srv1cv8 или через systemd-юнит, идущий в поставке.

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

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

Создание информационной базы через консоль кластера

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

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

Порядок действий
  1. 1
    Установите сборку PostgreSQL для 1С и задайте пароль postgres
  2. 2
    Настройте postgresql.conf под объём ОЗУ и перезапустите службу
  3. 3
    Установите сервер 1С той же разрядности и запустите агент
  4. 4
    Откройте консоль кластера и создайте информационную базу с типом СУБД PostgreSQL
  5. 5
    Загрузите конфигурацию через конфигуратор или восстановите dt-файл
  6. 6
    Проверьте вход пользователя в тонком клиенте и скорость типовых операций

При переносе существующей базы из файлового режима используйте выгрузку в dt из конфигуратора и загрузку в новую серверную базу. Прямое копирование файла 1Cv8.1CD в клиент-серверный вариант невозможно — форматы хранения различаются.

Проверка работоспособности и производительности

После запуска проверьте три вещи: пользователи подключаются без ошибок, типовые операции (проведение документов, отчёты) выполняются за приемлемое время, а в журнале PostgreSQL и журнале регистрации 1С нет повторяющихся ошибок. Для диагностики медленных запросов включите в postgresql.conf параметр log_min_duration_statement, например со значением 1000 — в лог будут писаться запросы длиннее секунды.

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

Контрольные точки

Как проверить результат

Подключение клиента к базе
Норма

Тонкий клиент открывает базу за несколько секунд

Тревожный признак

Ошибка соединения с сервером 1С или СУБД

Нагрузка на память
Норма

Свободная ОЗУ не опускается в ноль, swap почти не используется

Тревожный признак

Постоянный свопинг и рост потребления памяти

Логи PostgreSQL
Норма

Нет регулярных deadlock и ошибок подключения

Тревожный признак

Повторяющиеся взаимоблокировки и отказы соединений

Скорость операций
Норма

Проведение документов и отчёты укладываются в привычное время

Тревожный признак

Резкое замедление после перехода на клиент-серверный режим

Резервное копирование и обслуживание

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

Регулярно проверяйте восстановление из копии на тестовом сервере: резервная копия, которую никто не пробовал развернуть, не считается надёжной. Также следите за свободным местом на диске с данными PostgreSQL — переполнение раздела приводит к остановке СУБД и риску повреждения данных.

Типичные ошибки
01
Установка ванильного PostgreSQL вместо сборки 1С — ошибки локали и отказ в создании базы
02
Оставленные дефолтные параметры памяти — сервер с 64 ГБ ОЗУ работает как с 1 ГБ
03
Отключение autovacuum ради ускорения — раздувание таблиц и деградация производительности через недели
04
Отсутствие pg_dump-расписания после перехода с файлового режима — база остаётся без резервных копий
05
Размещение данных PostgreSQL на медленном HDD при активной работе пользователей — постоянные задержки на дисковых операциях

Частые вопросы

Подойдёт ли обычный PostgreSQL с официального сайта для 1С?

Нет. 1С требует сборку PostgreSQL с патчами и особыми настройками локали — она публикуется на портале 1С. Ванильная версия выдаст ошибку при создании базы или приведёт к некорректной сортировке строк в отчётах и списках.

Можно ли поставить сервер 1С и PostgreSQL на один компьютер?

Да, для небольших внедрений это нормальная практика: меньше сетевых задержек и проще администрирование. Следите только за тем, чтобы суммарного потребления памяти обеими службами хватало в рамках установленного ОЗУ.

Как перенести файловую базу 1С на PostgreSQL?

Через конфигуратор: выгрузите базу в файл dt из файлового режима, создайте пустую серверную базу в консоли кластера и загрузите в неё dt. После загрузки проверьте права пользователей и выполните тестирование и исправление при необходимости.

Какие порты нужно открыть для работы сервера 1С?

Агент сервера использует порт 1540, кластер — 1541, рабочие процессы — диапазон 1560–1591, PostgreSQL — 5432. Если все компоненты на одной машине, открывать порты наружу не нужно; при разнесённой схеме откройте их в брандмауэре между серверами и клиентами.

Почему база на PostgreSQL работает медленнее файловой версии?

Чаще всего причина в дефолтных настройках postgresql.conf: малый shared_buffers и work_mem не используют ресурсы сервера. Второй типичный фактор — медленные диски. Настройте память, перенесите данные на SSD и проанализируйте долгие запросы через log_min_duration_statement.

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

Настройте pg_dump по расписанию через cron или планировщик задач Windows с сохранением копий на отдельный носитель. Периодически проверяйте восстановление копии на тестовом сервере — это единственный способ убедиться, что бэкап рабочий.

Итог

Что важно запомнить

Используйте только сборку PostgreSQL с портала 1С, совпадающую по разрядности с сервером 1С. Настройте память в postgresql.conf под реальное ОЗУ, не отключайте autovacuum и сразу организуйте резервное копирование через pg_dump. Базу создавайте через консоль кластера с пользователем postgres, а результат проверяйте по логам и скорости типовых операций.