Серверная база 1С с нуля: СУБД, кластер, первая информационная база и тонкая настройка

· 10 мин

Содержание

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

Порядок важен: СУБД ставят первой, сервер 1С — второй, базу создают последней. Если перепутать шаги, 1С не сможет создать базу данных и выдаст ошибку подключения к СУБД. Команды в инструкции даны для Windows Server 2016 и новее и для Linux на systemd.

1. Что решить до установки сервера 1С

Выбор СУБД

От выбора СУБД зависят стоимость, сопровождение и то, на какой ОС будет жить сервер.

СУБДКогда выбиратьЧто учесть
MS SQL ServerWindows-инфраструктура, уже есть админ SQLЛицензия SQL Server; Express ограничен по объёму базы и памяти — для рабочей базы не подходит
PostgreSQL (сборка для 1С)Linux или экономия на лицензиях СУБДНужна именно сборка с патчами для 1С, а не ванильный PostgreSQL из репозитория
Postgres ProНужна поддержка вендора, крупные базыПлатная редакция, сертифицированные сборки
IBM Db2, OracleТолько если уже есть в компанииРедко встречаются, мало специалистов

💡 Ставить сервер 1С и СУБД на одну машину нормально для 10–50 пользователей. Обмен между ними идёт локально, без сетевых задержек.

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

Цифры ниже — ориентир для типовых конфигураций (БП, ЗУП, УТ). Для ERP и баз от 100 ГБ планируйте с запасом.

ПользователейЦПОЗУ (1С + СУБД на одной машине)Диски
до 104 ядра16 ГБSSD, 2 тома: система и данные
10–306–8 ядер32 ГБSSD/NVMe, отдельный том под журналы СУБД
30–8012–16 ядер64 ГБNVMe, RAID 10
  • ⚡ Важнее частота ядра, чем их число: многие операции 1С идут в один поток.
  • 💾 Под базы, tempdb (или WAL у PostgreSQL) и резервные копии — разные тома.
  • 🔑 Лицензия: нужна лицензия на сервер 1С:Предприятия и клиентские лицензии на сеансы. Без лицензии сервер базу не запустит, исключение — учебная версия.

Учётная запись для службы

На Windows заранее создайте локального пользователя, например USR1CV8. Ему нужны права «Вход в качестве службы» и полный доступ к каталогу данных кластера srvinfo. Делать службу от имени администратора домена не нужно.

2. Установка СУБД для серверной базы 1С

MS SQL Server

  1. Запустите установщик, выберите компонент «Службы ядра СУБД».
  2. Режим проверки подлинности — смешанный: 1С подключается по логину SQL.
  3. Параметры сортировки — Cyrillic_General_CI_AS. Поменять её потом на уже созданной базе сложно.
  4. Задайте пароль пользователя sa или создайте отдельный логин для 1С с ролью dbcreator — тогда 1С сама создаст базу.
  5. В свойствах сервера ограничьте «Максимальный объём памяти сервера», оставив ОС и процессам 1С 6–8 ГБ. Без этого SQL Server заберёт почти всю память.
  6. Для tempdb создайте несколько файлов данных одинакового размера: по одному на ядро, но не больше восьми.

PostgreSQL на Linux

Сборки PostgreSQL для 1С берут на портале поддержки фирмы 1С или у Postgres Professional. Перед установкой проверьте локаль системы:

locale -a | grep ru_RU
sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8

После установки пакетов задайте пароль пользователю postgres:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'СложныйПароль';"

Если СУБД стоит на другой машине, в pg_hba.conf разрешите подключение с адреса сервера 1С, а в postgresql.conf — параметр listen_addresses. Основные параметры памяти (shared_buffers, effective_cache_size, work_mem) подбирайте под объём ОЗУ: shared_buffers обычно около 25% памяти.

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

3. Установка сервера 1С:Предприятия 8.3 и запуск службы

На Windows

Запустите setup.exe из дистрибутива технологической платформы (полный дистрибутив для 64-разрядного сервера). В списке компонентов отметьте:

  • 🖥 «1С:Предприятие 8» — клиент, понадобится для создания базы и Конфигуратора;
  • ⚙️ «Сервер 1С:Предприятия 8»;
  • 🧰 «Администрирование сервера 1С:Предприятия» — консоль кластера.

На шаге установки сервера выберите «Установить сервер 1С:Предприятия 8 как сервис Windows» и укажите пользователя USR1CV8 с паролем. Служба появится под именем «Агент сервера 1С:Предприятия 8.3 (x86-64)» с типом запуска «Автоматически».

Если служба не создалась или её нужно пересоздать с другими портами, зарегистрируйте её вручную из каталога bin установленной версии:

cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
ragent.exe -rmsrvc
ragent.exe -instsrvc -usr .\USR1CV8 -pwd Пароль -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
ragent.exe -start

ragent.exe -rmsrvc удаляет службу, а её остановка обрывает все сеансы. Делайте это, когда в базах никто не работает.

Консоль администрирования не увидит сервер, пока не зарегистрирована библиотека radmin.dll нужной версии. Это первое, что проверяют, когда оснастка пустая или выдаёт ошибку класса:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

После обновления платформы регистрацию повторяют для новой версии.

На Linux

С платформы 8.3.20 сервер ставится единым установщиком setup-full-<версия>-x86_64.run: графический мастер или режим --mode unattended с ключом --enable-components. Список доступных компонентов покажет --help.

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

sudo systemctl link /opt/1cv8/x86_64/<версия>/srv1cv8-<версия>@.service
sudo systemctl enable --now srv1cv8-<версия>@default
sudo systemctl status srv1cv8-<версия>@default

Открываем порты

Клиент сначала обращается к агенту (1540), затем к менеджеру кластера (1541) и рабочим процессам из диапазона 1560–1591. Этот диапазон задаётся в свойствах рабочего сервера. Все три должны быть открыты на брандмауэре:

netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

4. Кластер серверов 1С: консоль и проверка

При установке службы кластер по умолчанию («Локальный кластер», порт 1541) создаётся автоматически. Проверьте его:

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. В корне «Central 1C:Enterprise 8.3 servers» создайте «Центральный сервер 1С:Предприятия» с именем машины и портом 1540.
  3. Разверните его: должен появиться кластер и в нём «Рабочие серверы» с одной записью.
  4. В свойствах кластера задайте администратора. Пока он не задан, управлять кластером может любой, у кого есть доступ к порту.

На Linux консоль заменяют утилитой rac, которая работает через сервер администрирования ras. Проверить кластер:

/opt/1cv8/x86_64/<версия>/ras cluster --daemon
/opt/1cv8/x86_64/<версия>/rac cluster list

💡 Пароль администратора кластера запишите в хранилище паролей сразу. Если его потеряют, придётся останавливать службу и восстанавливать файлы кластера из резервной копии.

5. Создание серверной базы 1С

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

Поля формы:

ПолеЧто указать
Кластер серверов 1С:ПредприятияИмя сервера 1С; если порт не 1541 — server:1641
Имя информационной базы в кластереЛатиница без пробелов, например buh_ooo_romashka
Тип СУБДMS SQL Server или PostgreSQL
Сервер баз данныхИмя сервера СУБД; для именованного экземпляра SQL — server\instance
Имя базы данныхОбычно совпадает с именем в кластере
Пользователь и пароль сервера БДsa/postgres или отдельный логин для 1С
Смещение датДля MS SQL Server — 2000

Отметьте «Создать базу данных в случае её отсутствия». Если базу будут наполнять из .dt, включите и «Установить блокировку регламентных заданий». Иначе регламентные задания (обмены, загрузка курсов) запустятся на копии и могут, например, отправить данные в рабочую базу или в сервисы.

После создания база появится в консоли кластера в узле «Информационные базы». Загрузку копии делают через Конфигуратор: Администрирование → Загрузить информационную базу. Для этой операции нужен монопольный доступ.

6. Настройка производительности сервера 1С и серверной базы

Технологический журнал

Технологический журнал включают файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\. Сервер подхватывает изменения без перезапуска. Минимальная настройка для поиска исключений и долгих блокировок:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1c_techlog" history="24">
    <event><eq property="name" value="EXCP"/></event>
    <event><eq property="name" value="TTIMEOUT"/></event>
    <event><eq property="name" value="TDEADLOCK"/></event>
    <property name="all"/>
  </log>
</config>

history="24" хранит логи 24 часа. Без ограничения журнал быстро займёт диск, поэтому подробные события включайте на время расследования.

Журнал регистрации

Журнал регистрации каждой базы лежит в каталоге кластера srvinfo\reg_1541\<GUID базы>\1Cv8Log. На активной базе он растёт на гигабайты. В Конфигураторе: Администрирование → Настройка журнала регистрации — уровень логирования и сокращение журнала с выгрузкой старых записей в файл.

Мониторинг

  • 📊 Счётчики Windows: загрузка ЦП, очередь диска, свободная память, ожидания на tempdb.
  • 👥 Консоль кластера: число сеансов, соединений, память рабочих процессов, «Блокировки».
  • 🔐 rac session list --licenses покажет, кто занимает лицензии.

Фоновые задания

Если регламентные задания (обмены, пересчёты итогов) мешают пользователям днём, перенесите их расписание на ночь. При двух и более рабочих серверах в кластере задайте «Требования назначения функциональности» в свойствах рабочего сервера: так фоновые задания будут выполняться на одном сервере, а клиентские соединения — на другом.

Сеть, файловая система, лимиты

  • 🌐 Сервер 1С и СУБД — в одной подсети, лучше на одной машине. Задержка между ними сильнее влияет на скорость, чем ЦП.
  • ⚡ На Windows включите схему электропитания «Высокая производительность».
  • 🛡 Исключите из проверки антивируса каталог srvinfo, файлы данных и журналов СУБД, каталог технологического журнала.
  • 💾 На Linux для томов с данными используйте ext4 или XFS с опцией noatime.
  • 📂 Поднимите лимит открытых файлов для службы: для systemd — LimitNOFILE=65536 в override-файле через systemctl edit srv1cv8-<версия>@, для PostgreSQL — аналогично.

7. Проверка серверной базы после установки

Прежде чем пускать людей, убедитесь, что база цела и работает:

  1. 🔍 Запустите базу в режиме 1С:Предприятие под администратором, откройте пару журналов документов и отчётов.
  2. 🧪 В Конфигураторе выполните Администрирование → Тестирование и исправление с отметкой «Проверка логической целостности», без исправления. Нужен монопольный доступ.
  3. 🗄 На стороне СУБД: для MS SQL — DBCC CHECKDB, для PostgreSQL — vacuumdb --analyze по базе 1С.
  4. 💾 Настройте резервное копирование средствами СУБД и проверьте восстановление на тестовую базу.
Серверная база готова к работе
Выполнено: 0 / 7

8. Ошибки при установке серверной базы 1С

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

Не удаляйте и не пересоздавайте кластер, чтобы «починить» сервер. Вместе с ним пропадают регистрации баз и настройки. Сначала остановите службу в нерабочее время и сохраните копию каталога srvinfo.

9. Частые вопросы о серверной базе 1С

Можно ли перевести файловую базу на сервер без переустановки?
Да. Выгрузите файловую базу в .dt через Конфигуратор, создайте пустую серверную базу и загрузите в неё файл. Данные и пользователи переносятся полностью.
Нужна ли отдельная лицензия на сервер 1С?
Да, серверу нужна своя лицензия, а пользователям — клиентские. Без лицензии сервер не запустит базу, исключение — учебная версия платформы.
Можно ли поставить на одну машину две версии сервера 1С?
Можно, если у каждой службы свои порты агента, менеджера и рабочих процессов и свой каталог данных. Например, вторая служба на портах 2540, 2541 и диапазоне 2560–2591.
Что быстрее для 1С: MS SQL Server или PostgreSQL?
На небольших базах разницы пользователи обычно не замечают. На крупных многое решают настройка СУБД и дисковая подсистема, а не сам выбор движка.
Сколько баз можно держать в одном кластере?
Жёсткого ограничения нет. На практике упираются в память и ЦП сервера: десятки небольших баз в одном кластере — обычная ситуация.