Установка сервера 1С 8.3: Windows, Linux, кластер и СУБД

Дата: 02.10.2026 17:34:55
сервер 1С
кластер серверов
администрирование 1С
PostgreSQL
rac и ras
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Любые

Установка сервера 1С 8.3 нужна, когда файловая база перестаёт справляться: пользователей больше десятка, база растёт, а обмены должны работать круглосуточно. Ниже — состав кластера, установка сервера 1С:Предприятие на Windows и Linux, выбор СУБД, создание базы, администрирование через консоль и rac, ошибки первого запуска и код для программиста.

Когда нужен сервер вместо файловой базы

Файловая база — один файл 1Cv8.1CD в общей папке, и у неё есть потолки:

  • больше 5–10 человек одновременно ждут друг друга: файловая СУБД блокирует таблицу целиком (см. конфликт блокировок);
  • регламентные задания выполняет один из запущенных клиентских сеансов: никто не работает — обмены стоят;
  • для резервной копии большой базы приходится выгонять всех пользователей;
  • нужны HTTP-сервисы, веб-клиент на много людей или фоновые задания под нагрузкой.

В клиент-серверном варианте данные лежат в СУБД, код выполняют процессы сервера 1С, а копии делаются средствами СУБД без остановки работы. Цена — администрирование, лицензия на сервер и выделенные ресурсы.

Из чего состоит сервер 1С 8.3: кластер, процессы и порты

Сервер — это набор процессов. Кластер — группа рабочих серверов с общим списком информационных баз; на одной машине обычно один кластер на порту 1541.

ПроцессРольПорт по умолчанию
ragentагент: реестр кластеров, запуск остальных процессов, служба ОС1540
rmngrменеджер кластера: список баз, сеансы, блокировки, регламентные задания1541
rphostрабочие процессы: серверный код и запросы к СУБД1560–1591
rasсервер администрирования для rac, отдельная служба1545

Настройки кластера хранятся в каталоге srvinfo: реестр, журналы регистрации баз, сеансовые данные. Клиент сначала обращается к 1541, а затем получает адрес рабочего процесса из диапазона 1560–1591 — поэтому в брандмауэре открывают весь диапазон.

Второй сервер другой версии на том же компьютере ставят на свои порты и со своим каталогом srvinfo — см. несколько версий сервера 1С на одном компьютере. Чтобы новая база появилась у всех пользователей, раздайте общий список баз.

Установка сервера 1С на Windows: служба и пользователь USR1CV8

Сервер 1С:Предприятия 8.3 входит в полный дистрибутив платформы 1С для Windows (64-bit). При установке:

  1. Отметьте компоненты «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия» (консоль кластера).
  2. Оставьте установку сервера как сервиса Windows и выберите «Создать пользователя USR1CV8» или существующую учётную запись с паролем.
  3. Установщик выдаёт пользователю права «Вход в качестве службы» и «Вход в качестве пакетного задания» и включает его в группу «Пользователи журналов производительности». Для другой учётной записи выдайте их вручную через secpol.msc.
  4. Дайте USR1CV8 полный доступ к srvinfo и снимите срок действия пароля, иначе через 42 дня служба перестанет запускаться.

Разрядность. Ставьте 64-битный сервер: 32-битному процессу доступно не больше 4 ГБ памяти. Клиенты могут быть любой разрядности, но внешние компоненты и COM-объекты, создаваемые на сервере, нужны 64-битные, а лицензия на 32-битный сервер для 64-битного не подходит.

После установки в оснастке «Службы» появится «Агент сервера 1С:Предприятия 8.3 (x86-64)»; его командная строка с портами — в комментарии к листингу. Ключ -debug добавляют вручную для отладки на сервере; приёмы отладки — в статье про отладку 1С 8.3.

# PowerShell от имени администратора на сервере
# 1. Служба агента: учётная запись и командная строка. Типичная PathName:
#    "C:\Program Files\1cv8\8.3.27.1786\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540
#    -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Get-CimInstance Win32_Service | Where-Object Name -like '1C*' |
    Select-Object Name, State, StartName, PathName | Format-List

# 2. Кто слушает порты агента, кластера и ras
Get-NetTCPConnection -State Listen -LocalPort 1540, 1541, 1545 -ErrorAction SilentlyContinue |
    Select-Object LocalPort, OwningProcess, @{ Name = 'Process'; Expression = { (Get-Process -Id $_.OwningProcess).ProcessName } }

# 3. Входящее правило брандмауэра: агент, кластер и диапазон рабочих процессов
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP `
    -LocalPort '1540-1541', '1560-1591' -Action Allow

# 4. После обновления платформы: консоль кластера и COM-коннектор новой версии
regsvr32 "C:\Program Files\1cv8\8.3.27.1786\bin\radmin.dll"
regsvr32 "C:\Program Files\1cv8\8.3.27.1786\bin\comcntr.dll"

# 5. С клиентской машины: доступен ли кластер (ожидаем TcpTestSucceeded : True)
Test-NetConnection srv01 -Port 1541

Второй агент (например, на время перехода на новую версию платформы) запускают на сдвинутых портах со своим srvinfo. Там же регистрируют ras, без которого не работает rac:

# Второй агент: порты 2540/2541/2560–2591 и свой каталог кластера
$ver  = "8.3.27.1786"
$bin  = "C:\Program Files\1cv8\$ver\bin"
$data = "C:\Program Files\1cv8\srvinfo_2541"
New-Item -ItemType Directory -Force $data | Out-Null
icacls $data /grant "USR1CV8:(OI)(CI)F"
New-Service -Name "1C:Enterprise 8.3 Server Agent 2541" `
    -DisplayName "Агент сервера 1С:Предприятия $ver (2540)" `
    -BinaryPathName "`"$bin\ragent.exe`" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d `"$data`"" `
    -StartupType Automatic `
    -Credential (Get-Credential -UserName ".\USR1CV8" -Message "Пароль USR1CV8")
Start-Service -Name "1C:Enterprise 8.3 Server Agent 2541"

# ras для rac: слушает 1545 и обращается к агенту на 1540
New-Service -Name "1C:Enterprise 8.3 Remote Server" `
    -DisplayName "Сервер администрирования 1С:Предприятия 8.3 (ras)" `
    -BinaryPathName "`"$bin\ras.exe`" cluster --service --port=1545 localhost:1540" `
    -StartupType Automatic
Start-Service -Name "1C:Enterprise 8.3 Remote Server"

# Настройки службы: в PowerShell пишите sc.exe, просто sc — это Set-Content
sc.exe qc "1C:Enterprise 8.3 Server Agent (x86-64)"

Сервер 1С на Linux: установщик и systemd

С версии 8.3.20 платформа для Linux ставится единым установщиком setup-full-<версия>-x86_64.run вместо deb/rpm-пакетов. Он кладёт файлы в /opt/1cv8/x86_64/<версия>/ и создаёт пользователя usr1cv8 и группу grp1cv8. Служба подключается к systemd юнитом из каталога платформы, свой у каждой версии.

# Linux, платформа 8.3.20+; номер версии подставьте свой
V=8.3.27.1786
chmod +x setup-full-$V-x86_64.run
sudo ./setup-full-$V-x86_64.run --mode unattended --enable-components server,ws
id usr1cv8                     # пользователь, от которого работает сервер

# служба из юнита в каталоге платформы
sudo systemctl link /opt/1cv8/x86_64/$V/srv1cv8-$V@.service
sudo systemctl enable --now srv1cv8-$V@default
systemctl status srv1cv8-$V@default --no-pager
sudo ss -ltnp | grep -E 'ragent|rmngr|rphost'

# ras для rac, демоном от имени usr1cv8
sudo -u usr1cv8 /opt/1cv8/x86_64/$V/ras cluster --daemon --port=1545 localhost:1540

# брандмауэр firewalld (для ufw: sudo ufw allow 1540:1541/tcp и 1560:1591/tcp)
sudo firewall-cmd --permanent --add-port=1540-1541/tcp --add-port=1560-1591/tcp
sudo firewall-cmd --reload

Выбор СУБД: PostgreSQL или MS SQL

  • PostgreSQL — бесплатный и основной вариант для Linux. Нужна сборка с патчами для 1С (дистрибутив фирмы «1С» или Postgres Pro): в обычном PostgreSQL нет типов mchar/mvarchar, и база не создастся. Смещение дат — 0.
  • MS SQL Server — привычен Windows-администраторам и хорошо держит большие базы, но требует лицензий. Express ограничен 10 ГБ на базу — для рабочей базы не годится. Смещение дат обычно ставят 2000.

Версию СУБД сверяйте с системными требованиями платформы на v8.1c.ru. Если СУБД и сервер 1С на одной машине, ограничьте память СУБД (в MS SQL — max server memory), иначе рабочим процессам её не хватит.

Создание информационной базы на сервере

Проще всего — из окна запуска: «Добавить» → «Создание новой информационной базы» → «На сервере 1С:Предприятия». Поля:

  • Кластер серверов — имя сервера или srv01:2541, если кластер не на 1541;
  • Имя информационной базы в кластере — его указывают клиенты при подключении (Ref);
  • Параметры СУБД — тип, сервер, имя базы данных и учётная запись с правом создавать базы;
  • флажок «Создать базу данных в случае её отсутствия», а для копий — «Установить блокировку регламентных заданий», чтобы копия не отправляла обмены.

Файловую базу переносят выгрузкой: в конфигураторе «Администрирование» → «Выгрузить информационную базу» (*.dt), затем в пустой серверной базе — «Загрузить информационную базу».

Лицензирование сервера кратко

Серверу нужна своя лицензия (варианты ПРОФ и КОРП, для 32 и 64 бит), пользователям — клиентские. Клиентские удобно держать на сервере: у базы включают «Разрешить выдачу лицензий сервером 1С:Предприятия». Программная лицензия привязана к параметрам компьютера: после замены оборудования или переноса виртуальной машины её активируют заново. Что именно требует КОРП, уточняйте у партнёра.

Настройка сервера 1С: консоль кластера и rac/ras

Консоль «Администрирование серверов 1С Предприятия» — оснастка MMC для Windows: в ней добавляют центральный сервер (порт 1540), смотрят базы, сеансы и процессы, блокируют сеансы и регламентные задания. После обновления платформы консоль не подключится, пока не зарегистрирован radmin.dll новой версии (первый листинг).

Сразу заведите администраторов агента и кластера: без них любой, кто видит порт 1540, может удалить базу из кластера.

rac умеет то же из командной строки и на любой ОС, но работает через ras (порт 1545) — сначала запустите его.

# rac лежит рядом с ragent (на Windows — ...\bin\rac.exe)
RAC=/opt/1cv8/x86_64/8.3.27.1786/rac
RAS=srv01:1545
$RAC $RAS cluster list
CL=$($RAC $RAS cluster list | awk '$1 == "cluster" { print $3; exit }')

# базы, сеансы и лицензии, выданные рабочими процессами
$RAC $RAS infobase summary list --cluster=$CL
$RAC $RAS session list --cluster=$CL
$RAC $RAS process list --cluster=$CL --licenses

# новая база в PostgreSQL; пароли — из переменных окружения, а не в тексте скрипта;
# --cluster-user/--cluster-pwd — только если заведены администраторы кластера
$RAC $RAS infobase create --cluster=$CL \
    --cluster-user="$CL_ADMIN" --cluster-pwd="$CL_PWD" \
    --create-database --name=buh_test --dbms=PostgreSQL \
    --db-server=pg01 --db-name=buh_test --db-user=postgres --db-pwd="$PG_PWD" \
    --locale=ru --license-distribution=allow --scheduled-jobs-deny=on

# завершить сеанс (идентификатор — из session list)
$RAC $RAS session terminate --cluster=$CL --session=$SID --error-message="Обновление конфигурации"

Проверка работы

  1. Служба запущена, в процессах видны ragent, rmngr и хотя бы один rphost; порты 1540 и 1541 слушаются.
  2. Консоль или rac cluster list видят кластер, в нём — рабочий сервер с правильным именем компьютера.
  3. База открывается с другой машины, в сеансах есть фоновые задания; дальнейшие тормоза — уже диагностика производительности.

Работа с сервером 1С из кода

Программисту нужны две вещи: понимать, в каком варианте работает база, и видеть сеансы кластера. Вариант виден по строке соединения: у серверной базы в ней есть Srvr и Ref, у файловой — File.

// Общий модуль с флагом «Сервер». Разбирает строку соединения текущей базы:
// серверная — Srvr="srv01:1541";Ref="buh";  файловая — File="D:\Bases\buh";
Функция ПараметрыСоединенияБазы() Экспорт

	Результат = Новый Структура("Серверная, Сервер, ИмяВКластере, Каталог", Ложь, "", "", "");

	Для Каждого Часть Из СтрРазделить(СтрокаСоединенияИнформационнойБазы(), ";", Ложь) Цикл
		Позиция = СтрНайти(Часть, "=");
		Если Позиция = 0 Тогда
			Продолжить;
		КонецЕсли;
		Ключ = НРег(СокрЛП(Лев(Часть, Позиция - 1)));
		Значение = СтрЗаменить(СокрЛП(Сред(Часть, Позиция + 1)), """", "");
		Если Ключ = "srvr" Тогда
			Результат.Серверная = Истина;
			Результат.Сервер = Значение;
		ИначеЕсли Ключ = "ref" Тогда
			Результат.ИмяВКластере = Значение;
		ИначеЕсли Ключ = "file" Тогда
			Результат.Каталог = Значение;
		КонецЕсли;
	КонецЦикла;

	Возврат Результат;

КонецФункции

// Защита тяжёлой операции от запуска на файловой базе.
// В конфигурациях на БСП то же проверяет ОбщегоНазначения.ИнформационнаяБазаФайловая().
Процедура ПроверитьКлиентСерверныйВариант() Экспорт

	Соединение = ПараметрыСоединенияБазы();
	Если Не Соединение.Серверная Тогда
		ВызватьИсключение СтрШаблон("Операция рассчитана на сервер 1С, а база файловая: %1", Соединение.Каталог);
	КонецЕсли;

КонецПроцедуры

Сеансы кластера на Windows получают через COM-объект V83.COMConnector. БСП при ошибке подключения перерегистрирует comcntr.dll для текущего пользователя: regsvr32.exe /n /i:user /s comcntr.dll.

// Сервер на Windows или толстый клиент. Нужен зарегистрированный comcntr.dll
// той же версии и разрядности, что и процесс, в котором выполняется код.
Функция СеансыКластераЧерезCOM(Знач АдресАгента = "tcp://srv01:1540",
	Знач АдминистраторКластера = "", Знач ПарольАдминистратора = "") Экспорт

	ТипСтрока = Новый ОписаниеТипов("Строка");
	Таблица = Новый ТаблицаЗначений;
	Таблица.Колонки.Добавить("База", ТипСтрока);
	Таблица.Колонки.Добавить("Номер", Новый ОписаниеТипов("Число"));
	Таблица.Колонки.Добавить("Пользователь", ТипСтрока);
	Таблица.Колонки.Добавить("Приложение", ТипСтрока);
	Таблица.Колонки.Добавить("Компьютер", ТипСтрока);
	Таблица.Колонки.Добавить("Начат", Новый ОписаниеТипов("Дата"));

	Попытка
		Коннектор = Новый COMОбъект("V83.COMConnector");
		Агент = Коннектор.ConnectAgent(АдресАгента);
	Исключение
		ВызватьИсключение "Нет связи с агентом сервера " + АдресАгента + ": "
			+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
	КонецПопытки;

	Для Каждого Кластер Из Агент.GetClusters() Цикл
		// Пустые имя и пароль, если администраторы кластера не заведены
		Агент.Authenticate(Кластер, АдминистраторКластера, ПарольАдминистратора);
		Для Каждого Сеанс Из Агент.GetSessions(Кластер) Цикл
			НоваяСтрока = Таблица.Добавить();
			НоваяСтрока.База         = Сеанс.InfoBase.Name;
			НоваяСтрока.Номер        = Сеанс.SessionID;
			НоваяСтрока.Пользователь = Сеанс.UserName;
			НоваяСтрока.Приложение   = Сеанс.AppID;
			НоваяСтрока.Компьютер    = Сеанс.Host;
			НоваяСтрока.Начат        = Сеанс.StartedAt;
		КонецЦикла;
	КонецЦикла;

	Таблица.Сортировать("База, Начат");
	Возврат Таблица;

КонецФункции

На Linux COM нет. В конфигурациях на БСП 3.1 общий модуль АдминистрированиеКластера с типом подключения "RAS" вызывает rac и разбирает его вывод, а программный интерфейс тот же, что и для COM.

// Конфигурация на БСП 3.1, тот же общий модуль. Тип подключения "RAS": БСП вызывает rac
// из каталога платформы на сервере, поэтому код работает и с сервером на Linux.
Функция ФоновыеСеансыТекущейБазы() Экспорт

	ИмяВКластере = ПараметрыСоединенияБазы().ИмяВКластере; // функция из первого листинга
	Если ПустаяСтрока(ИмяВКластере) Тогда
		ВызватьИсключение "База файловая: сеансов кластера у неё нет";
	КонецЕсли;

	ПараметрыКластера = АдминистрированиеКластера.ПараметрыАдминистрированияКластера();
	ПараметрыКластера.ТипПодключения = "RAS";
	ПараметрыКластера.АдресСервераАдминистрирования = "srv01";
	ПараметрыКластера.ПортСервераАдминистрирования = 1545;
	ПараметрыКластера.ПортКластера = 1541;
	// Если в кластере заведены администраторы, заполните ИмяАдминистратораКластера
	// и ПарольАдминистратораКластера (пароль держите в безопасном хранилище БСП)

	ПараметрыИБ = АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера();
	ПараметрыИБ.ИмяВКластере = ИмяВКластере;

	Фильтр = АдминистрированиеКластера.ФильтрСеансов();
	Фильтр.Свойство = "ИдентификаторКлиентскогоПриложения";
	Фильтр.Значение = "BackgroundJob";

	Попытка
		Сеансы = АдминистрированиеКластера.СеансыИнформационнойБазы(ПараметрыКластера, ПараметрыИБ, Фильтр);
	Исключение
		ЗаписьЖурналаРегистрации("Администрирование кластера", УровеньЖурналаРегистрации.Ошибка, , ,
			ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		ВызватьИсключение;
	КонецПопытки;

	Для Каждого Сеанс Из Сеансы Цикл
		Сообщить(СтрШаблон("Фоновый сеанс %1: %2, начат %3",
			Сеанс.Номер, Сеанс.ИмяПользователя, Сеанс.МоментСозданияСеанса));
	КонецЦикла;

	Возврат Сеансы;

КонецФункции

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

Типичные ошибки

  • «Сервер 1С:Предприятия не обнаружен». Служба не запущена, указан не тот порт кластера или клиент не разрешает имя сервера: кластер сообщает адрес рабочего процесса по имени компьютера, и подключение по IP не спасает — нужна запись в DNS или hosts. То же бывает после переименования сервера: в реестре кластера осталось старое имя.
  • Порт занят. Порты 1540/1541 уже слушает второй агент или старая версия: служба стартует и сразу останавливается, в журнале бывает «Ошибка запуска процесса менеджера кластера». Найдите владельца порта (первый листинг) и разведите порты, как во втором.
  • «Ошибка 1069: Служба не запущена из-за ошибки входа в систему». Сменился или истёк пароль USR1CV8 либо нет права «Вход в качестве службы» — задайте пароль заново в свойствах службы. Если служба падает без этой ошибки, проверьте права на srvinfo и место на диске, а сеансовые данные чистите по статье про кэш сервера.
  • «Не обнаружена лицензия для использования программы!» или «Не обнаружено свободной лицензии!». Сервер не видит клиентских лицензий, у базы выключена их выдача сервером или все лицензии заняты. Проверьте флажок у базы и вывод rac process list --licenses.
  • Брандмауэр. Открыт только 1541: кластер находится, но соединение с рабочим процессом обрывается — «Ошибка сетевого доступа» с кодом 10060 или 10061 («Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение»). Откройте диапазон 1560–1591.
  • «Администратор кластера не аутентифицирован. Создание информационной базы невозможно». В кластере заведены администраторы — укажите их при создании базы или в ключах rac.
  • «Информационная база не обнаружена!» Указано имя базы в СУБД вместо имени в кластере (Ref).
  • Разные версии клиента и сервера. Тонкий клиент должен совпадать с сервером до номера сборки: после обновления сервера обновите платформу на клиентах.

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

Можно ли поставить сервер 1С на Windows 10 или 11, а не на Windows Server?

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

Сколько версий платформы можно держать на одном сервере?

Несколько, если у каждого агента свои порты и свой srvinfo (второй листинг). Базу переводят на новую версию, регистрируя в новом кластере с тем же подключением к СУБД и удаляя из старого без удаления базы данных.

Зачем rac, если есть консоль кластера?

Функции почти те же, но rac работает на Linux и запускается из скриптов и планировщика: блокировка сеансов перед обновлением, завершение зависших. Консоль удобнее для ручной работы на Windows.

Когда проще заказать

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

По теме

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.