Развёртывание клиент-серверной 1С:Предприятия 8.3 с PostgreSQL

· 9 мин

Содержание

Чтобы развернуть 1С на сервере, нужны три компонента: сервер 1С:Предприятия 8.3 (служба агента и кластера), СУБД (PostgreSQL в сборке для 1С или MS SQL Server) и консоль администрирования. Порядок такой: готовите машину и сеть, ставите СУБД, ставите сервер 1С, регистрируете в кластере информационную базу и подключаете клиентов строкой Srvr="имя_сервера";Ref="имя_базы";.

Типичная ситуация: файловая база на общей папке выросла до 15–20 ГБ, пользователей стало больше десяти, и 1С начинает «думать» на каждом проведении. Переезд в клиент-серверный вариант решает это, но только при аккуратной настройке. Ниже — порядок действий для Windows Server и Linux, без лишних компонентов.

1. Подготовка сервера: железо, ОС и сеть

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

Ориентировочные конфигурации (для типовых БП, ЗУП, УТ):

ПользователейПроцессорПамятьДиски
до 104 ядра16 ГБSSD, отдельный том под базы
10–306–8 ядер32 ГБNVMe, базы и журналы СУБД раздельно
30–8012–16 ядер64–128 ГБNVMe в RAID 1/10

Цифры примерные: тяжёлая ERP или много фоновых заданий съедят ресурсы быстрее. Главное узкое место обычно — диск и память под СУБД, а не процессор.

Выбор ОС:

  • 🪟 Windows Server 2016 и новее — привычная консоль администрирования, проще для администратора без опыта Linux, но нужны лицензии Windows и CAL.
  • 🐧 Linux (Ubuntu, Debian, RHEL-совместимые, Astra Linux, РЕД ОС, Альт) — экономия на лицензиях ОС, стабильная работа с PostgreSQL. Список поддерживаемых дистрибутивов зависит от версии платформы, сверяйте его с требованиями к выпуску.

Что сделать до установки:

  1. Задайте серверу постоянное имя и статический IP. Не переименовывайте сервер после установки 1С: кластер запоминает имя компьютера, и после смены имени клиенты перестанут к нему подключаться.
  2. Убедитесь, что имя сервера разрешается с каждого клиентского компьютера: через DNS или строкой в файле hosts. Клиент получает от агента адреса процессов по имени, а не по IP.
  3. Синхронизируйте время (NTP) на сервере и клиентах.
  4. На Linux установите локаль ru_RU.UTF-8 и шрифты Microsoft (пакет ttf-mscorefonts-installer в Debian/Ubuntu) — без них поедут печатные формы.

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

Дистрибутив берите той же версии, что будет на клиентах. Номер платформы на сервере и клиентах должен совпадать до последней цифры, иначе клиент не подключится.

Windows Server

  1. Запустите setup.exe из дистрибутива «Технологическая платформа 1С:Предприятия (64-bit) для Windows».
  2. В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия». Клиент на сервере ставить не обязательно, но для работы в Конфигураторе он пригодится.
  3. На шаге параметров сервера выберите установку как службы Windows. Служба по умолчанию работает от пользователя USR1CV8 — задайте ему надёжный пароль.
  4. После установки проверьте, что служба «Агент сервера 1С:Предприятия 8.3» запущена.
  5. Зарегистрируйте библиотеку консоли той же версии (от имени администратора):
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Без этого консоль «Администрирование серверов 1С Предприятия» не откроется или будет ругаться на несовпадение версий. Этот шаг повторяют после каждого обновления платформы.

Linux

С платформы 8.3.20 для Linux поставляется единый установщик setup-full-8.3.xx.xxxx-x86_64.run. Ставим только серверные компоненты:

chmod +x setup-full-8.3.xx.xxxx-x86_64.run
sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components server,ws

Компонент ws нужен, если планируете публикацию на веб-сервере. Установщик создаёт пользователя usr1cv8, файлы лягут в /opt/1cv8/x86_64/8.3.xx.xxxx/.

В новых версиях платформы в этом каталоге лежит готовый unit-файл systemd. Подключите и запустите службу:

sudo systemctl link /opt/1cv8/x86_64/8.3.xx.xxxx/srv1cv8-8.3.xx.xxxx@.service
sudo systemctl enable --now srv1cv8-8.3.xx.xxxx@default
sudo systemctl status srv1cv8-8.3.xx.xxxx@default

Как управлять сервером на Linux

Графической консоли на Linux нет. Есть два пути:

  • 🖥️ поднять сервер администрирования ras (порт 1545 по умолчанию) и подключаться к нему консолью с Windows-машины;
  • ⌨️ работать утилитой командной строки rac через тот же ras: например, rac cluster list покажет кластеры, а остальные команды — rac help.

Unit-файл для ras в каталоге платформы тоже есть, подключается так же, через systemctl link.

3. PostgreSQL для 1С и создание информационной базы

Обычный PostgreSQL из репозитория дистрибутива 1С не подойдёт: нужна сборка с патчами для 1С (от фирмы 1С или Postgres Pro для 1С). Она содержит расширения и типы данных, без которых база не создастся. Версию сборки выбирайте из тех, что поддерживает ваша версия платформы.

После установки СУБД:

  1. Инициализируйте кластер PostgreSQL с русской локалью (ru_RU.UTF-8), если пакет не сделал этого сам.
  2. Задайте пароль пользователю postgres или создайте отдельную роль для 1С с правом создания баз.
  3. В pg_hba.conf разрешите подключение только с адреса сервера 1С (или с 127.0.0.1, если всё на одной машине).
  4. Поправьте ключевые параметры в postgresql.conf (ориентир для сервера, где СУБД — основная нагрузка):
shared_buffers = 4GB            # около 25% памяти
effective_cache_size = 12GB     # 50–75% памяти
work_mem = 64MB
maintenance_work_mem = 1GB
max_locks_per_transaction = 256 # 1С держит много блокировок в одной транзакции

Значения подбирайте под свой объём памяти и перезапустите службу PostgreSQL. Перезапуск оборвёт подключения, поэтому делайте его до ввода сервера в работу или в нерабочее время.

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

  1. Откройте консоль администрирования, добавьте центральный сервер по имени (для Linux — адрес ras).
  2. Раскройте Кластеры → Локальный кластер → Информационные базы, в контекстном меню выберите Создать → Информационная база.
  3. Заполните поля: имя базы в кластере, тип СУБД PostgreSQL, сервер баз данных, имя базы в СУБД, пользователь и пароль СУБД.
  4. Включите флажок «Создать базу данных в случае ее отсутствия».
  5. Для копии рабочей базы установите блокировку регламентных заданий — иначе тестовая копия начнёт отправлять отчёты и загружать банк.

Перенос файловой базы на сервер

  1. В старой файловой базе Конфигуратор → Администрирование → Выгрузить информационную базу → файл .dt. Выгрузка требует монопольного режима: попросите всех выйти.
  2. Создайте пустую серверную базу (шаги выше), откройте её в Конфигураторе.
  3. Администрирование → Загрузить информационную базу → выберите .dt.
  4. Добавьте базу в список у пользователей: «Добавить → Добавление в список существующей информационной базы → На сервере 1С:Предприятия», укажите кластер и имя базы.

4. Настройка кластера серверов 1С

У кластера три сетевых точки, и их часто путают:

ПортЧто слушаетГде задаётся
1540Агент сервера (ragent)при установке службы
1541Менеджер кластера (rmngr)свойства кластера
1560–1591Рабочие процессы (rphost)свойства рабочего сервера
1545Сервер администрирования rasпараметры запуска ras

Клиент сначала идёт к агенту на 1540, затем к менеджеру кластера на 1541, а дальше получает адрес рабочего процесса из диапазона. Если открыть в брандмауэре только 1540–1541, клиент «увидит» сервер, но работать не сможет.

Что настроить в свойствах рабочего сервера:

  • ⚙️ Количество ИБ на процесс и количество соединений на процесс — для начала оставьте значения по умолчанию, меняйте, если в одном процессе толкаются тяжёлые базы.
  • 🧠 Максимальный объём памяти рабочих процессов — ограничьте с запасом под СУБД, если она на той же машине.
  • 🛡️ Безопасный расход памяти за один вызов — защищает сервер от одного «прожорливого» отчёта.
  • 🔁 Требования назначения функциональности — нужны, когда в кластере несколько рабочих серверов и вы хотите, например, вынести фоновые задания на отдельную машину.

Отказоустойчивость (резервные серверы, уровень отказоустойчивости кластера) настраивают, только если рабочих серверов два и больше. Для одной машины трогать не нужно.

5. Производительность и безопасность сервера 1С

Сразу после развёртывания закройте доступ, пока к серверу не подключились пользователи.

  1. Администраторы центрального сервера. В консоли у агента добавьте администратора с паролем. Пока список пуст, любой в сети может управлять сервером.
  2. Администраторы кластера. В свойствах кластера → «Администраторы» заведите отдельную учётную запись. Пароль запишите в хранилище паролей: если его потерять, придётся останавливать службу и восстанавливать файлы настроек кластера из резервной копии.
  3. Брандмауэр. Порты 1540, 1541, 1560–1591 откройте только для локальной сети или VPN. Порт PostgreSQL 5432 наружу не открывайте совсем.
  4. Пользователи баз. В каждой базе заведите пользователей с паролями и снимите галочку «Показывать в списке выбора» для администратора.

По производительности практические приёмы такие:

  • 💾 Каталог srvinfo (журналы регистрации, сеансовые данные) держите на быстром диске. На Windows по умолчанию это C:\Program Files\1cv8\srvinfo, на Linux — домашний каталог usr1cv8.
  • 🧹 Настройте регламентное обслуживание PostgreSQL: VACUUM ANALYZE по расписанию в нерабочее время, если автоочистка не справляется на больших таблицах.
  • 🔌 На Windows включите схему электропитания «Высокая производительность» — с экономичной схемой частота процессора скачет, и 1С это чувствует.
  • 📊 Счётчики загрузки рабочих процессов смотрите в консоли кластера, раздел «Рабочие процессы»: там видно память и число соединений каждого rphost.

6. Резервное копирование и восстановление серверных баз

Выгрузка .dt из Конфигуратора требует монопольного режима и на большой базе идёт долго. Для ежедневных копий удобнее средства СУБД — они работают без выгона пользователей.

Ночная копия PostgreSQL:

pg_dump -U postgres -Fc -f /backup/buh_$(date +%F).backup buh
find /backup -name "buh_*.backup" -mtime +14 -delete

Восстановление в новую пустую базу:

createdb -U postgres -T template0 buh_restore
pg_restore -U postgres -d buh_restore /backup/buh_2026-10-01.backup

Затем зарегистрируйте buh_restore в кластере как новую информационную базу с блокировкой регламентных заданий и проверьте данные. Восстанавливать поверх рабочей базы не стоит: если копия окажется битой, вы останетесь без обеих.

Схема, которой достаточно небольшой компании:

ЧтоКак частоЧем
Дамп базы СУБДкаждую ночьpg_dump по расписанию (cron или планировщик)
Выгрузка .dtраз в неделю или перед обновлениемКонфигуратор
Каталог настроек кластера (srvinfo)после изменений в кластерекопирование файлов при остановленной службе
Копия на другой носительежедневнолюбой инструмент синхронизации

Остановка службы 1С для копирования srvinfo обрывает все сеансы. Делайте это в нерабочее время и заранее предупреждайте пользователей.

Раз в месяц делайте пробное восстановление. Копия, которую ни разу не разворачивали, — это надежда, а не резерв.

7. Ошибки при развёртывании сервера 1С

Диагностика: выберите симптом

Если после всех проверок клиенты с одного компьютера подключаются, а с другого нет, сравните на них версию платформы, файл hosts и антивирус: сетевые экраны антивирусов часто режут исходящие соединения на нестандартные порты.

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

Можно ли держать сервер 1С и PostgreSQL на одной машине?
Да, для компаний до нескольких десятков пользователей это обычная схема. Ограничьте память рабочих процессов 1С, чтобы оставить СУБД её долю.
Нужен ли MS SQL Server, или хватит PostgreSQL?
Типовые конфигурации работают с обеими СУБД. PostgreSQL в сборке для 1С бесплатен, MS SQL требует лицензий, но привычнее Windows-администраторам.
Сколько лицензий нужно для серверной 1С?
Одна лицензия на сервер 1С плюс клиентские лицензии по числу одновременных сеансов пользователей. Лицензии на конфигурации покупаются отдельно.
Можно ли обновить платформу на сервере, не трогая клиентов?
Нет. После обновления сервера клиенты со старой версией не подключатся, поэтому обновляют платформу и там, и там в одно окно обслуживания.
Как перенести серверную базу на новый сервер?
Сделайте дамп в СУБД или выгрузку .dt, разверните на новом сервере, зарегистрируйте базу в его кластере и поменяйте адрес сервера в списке баз у пользователей.