Администрирование · 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С при создании базы.
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Установите сборку PostgreSQL для 1С и задайте пароль postgres
- 2Настройте postgresql.conf под объём ОЗУ и перезапустите службу
- 3Установите сервер 1С той же разрядности и запустите агент
- 4Откройте консоль кластера и создайте информационную базу с типом СУБД PostgreSQL
- 5Загрузите конфигурацию через конфигуратор или восстановите dt-файл
- 6Проверьте вход пользователя в тонком клиенте и скорость типовых операций
При переносе существующей базы из файлового режима используйте выгрузку в dt из конфигуратора и загрузку в новую серверную базу. Прямое копирование файла 1Cv8.1CD в клиент-серверный вариант невозможно — форматы хранения различаются.
Проверка работоспособности и производительности
После запуска проверьте три вещи: пользователи подключаются без ошибок, типовые операции (проведение документов, отчёты) выполняются за приемлемое время, а в журнале PostgreSQL и журнале регистрации 1С нет повторяющихся ошибок. Для диагностики медленных запросов включите в postgresql.conf параметр log_min_duration_statement, например со значением 1000 — в лог будут писаться запросы длиннее секунды.
На стороне 1С используйте технологический журнал и консоль кластера: в ней видны активные сеансы, соединения с СУБД и блокировки. Взаимные блокировки (deadlock) в PostgreSQL-логе — сигнал о проблемах в коде конфигурации, а не в настройках сервера.
Как проверить результат
Тонкий клиент открывает базу за несколько секунд
Ошибка соединения с сервером 1С или СУБД
Свободная ОЗУ не опускается в ноль, swap почти не используется
Постоянный свопинг и рост потребления памяти
Нет регулярных deadlock и ошибок подключения
Повторяющиеся взаимоблокировки и отказы соединений
Проведение документов и отчёты укладываются в привычное время
Резкое замедление после перехода на клиент-серверный режим
Резервное копирование и обслуживание
В клиент-серверном режиме копирование файла базы невозможно — резервные копии делаются средствами СУБД. Базовый вариант — pg_dump по расписанию через cron или планировщик Windows с хранением нескольких последних копий на отдельном диске или сетевом ресурсе. Для больших баз рассмотрите физические копии и WAL-архивацию, но это требует более глубокой настройки.
Регулярно проверяйте восстановление из копии на тестовом сервере: резервная копия, которую никто не пробовал развернуть, не считается надёжной. Также следите за свободным местом на диске с данными PostgreSQL — переполнение раздела приводит к остановке СУБД и риску повреждения данных.
Частые вопросы
Подойдёт ли обычный 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, а результат проверяйте по логам и скорости типовых операций.