Как устроен сервер 1С и как поднять его с нуля
Содержание
Сервер 1С:Предприятие — это набор служб, которые выполняют код конфигурации и хранят данные базы в СУБД (MS SQL Server, PostgreSQL и другие). Клиент на рабочем месте только показывает формы, а расчёты, проведение документов и запросы идут на сервере. Чтобы его настроить, нужно установить серверную часть платформы как службу, открыть порты 1540, 1541 и 1560–1591, создать базу в консоли кластера и активировать серверную лицензию .
Частое заблуждение: «сервер 1С» — это компьютер, на котором лежит общая папка с базой. Нет, это файловый вариант. В нём каждый клиент сам читает файл 1Cv8.1CD по сети. Клиент-серверный вариант работает иначе, и настраивать в нём приходится другие вещи.
Из чего состоит сервер 1С Предприятие
Сервер — это не одна программа, а кластер из нескольких процессов. Каждый отвечает за своё.
| Процесс | Файл | Порт по умолчанию | Что делает |
|---|---|---|---|
| Агент сервера | ragent | 1540 | Принимает первое обращение клиента и консоли, хранит список кластеров |
| Менеджер кластера | rmngr | 1541 | Ведёт реестр баз, сеансов, блокировок, распределяет нагрузку |
| Рабочие процессы | rphost | 1560–1591 | Выполняют серверный код и запросы к СУБД |
| Сервер администрирования | ras | 1545 | Даёт доступ к кластеру для утилиты rac и сторонних консолей |
Путь клиента такой: сначала он обращается к агенту на 1540, затем к менеджеру кластера на 1541. Тот направляет соединение в рабочий процесс из диапазона портов. Диапазон задаётся в свойствах рабочего сервера.
Консоль администрирования тоже подключается через агент. Поэтому если 1540 закрыт файрволом, не открываются ни базы, ни консоль.
💡 Отдельно стоит СУБД. Её можно поставить на тот же компьютер или на соседний. Для небольшой фирмы на 10–30 пользователей обычно хватает одного сервера, где стоят и 1С, и СУБД.
Когда сервер действительно нужен
- 👥 Одновременно работают больше 10–15 человек и файловая база начинает «подвисать».
- 📦 Размер базы растёт к десяткам гигабайт.
- 🌐 Нужны веб-клиент, обмены и регламентные задания, которые работают круглосуточно.
- 🔐 Нужен контроль: кто в базе, какие блокировки, сколько памяти ест процесс.
Установка сервера 1С пошагово
Подготовка
- Выберите ОС. Для Windows подойдёт Windows Server 2016 и новее, для Linux — дистрибутив из списка поддерживаемых в документации к вашей версии платформы.
- Установите СУБД и создайте пользователя с правом создавать базы. Для PostgreSQL берите сборку, адаптированную для 1С: обычный PostgreSQL без патчей с платформой работает хуже.
- Дайте серверу постоянный IP-адрес и имя, которое резолвится с клиентов. Клиенты подключаются по имени, и если DNS отдаёт другое имя, начнутся ошибки соединения.
- Скачайте дистрибутив технологической платформы той же версии, что стоит на клиентах.
Версия платформы на клиенте и на сервере должна совпадать до последней цифры сборки. Иначе клиент не подключится.
Установка серверной части
- Запустите
setup.exeиз дистрибутива платформы (64-разрядного). - В списке компонентов отметьте «Сервер 1С:Предприятия 64-bit» и «Администрирование сервера 1С:Предприятия». Модули расширения веб-сервера нужны, только если будете публиковать базы через IIS или Apache.
- Выберите установку сервера как службы Windows. Установщик предложит создать пользователя
USR1CV8— от его имени служба будет работать. - Дождитесь окончания установки и проверьте в
services.msc, что служба агента сервера запущена.
Под Linux порядок тот же по смыслу: установщик ставит пакеты сервера, а служба управляется через systemctl.
Консоль кластера
После установки консоль часто не открывается: оснастка MMC не зарегистрирована. Это лечится одной командой от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"
Номер версии в пути подставьте свой. После этого откройте «Администрирование серверов 1С Предприятия», добавьте центральный сервер по имени и увидите кластер на порту 1541.
Создание информационной базы
- В консоли раскройте кластер, на узле «Информационные базы» выберите «Создать».
- Заполните имя базы в кластере — его клиенты будут указывать при подключении.
- Укажите сервер СУБД, тип СУБД, имя базы данных, пользователя и пароль СУБД.
- Отметьте «Создать базу данных в случае её отсутствия».
- Для копии рабочей базы включите «Установить блокировку регламентных заданий». Иначе копия начнёт отправлять обмены и письма от имени рабочей.
На клиенте добавьте базу через «Добавить → Создание новой ИБ → На сервере 1С:Предприятия» или как существующую: укажите имя сервера и имя базы в кластере.
Две версии платформы на одном сервере
Это приём, без которого не обойтись при переходе на новую версию. Вторую службу регистрируют на других портах:
"C:\Program Files\1cv8\8.3.26.1521\bin\ragent.exe" -instsrvc -port 2540 -regport 2541 -range 2560:2591 -d "D:\srvinfo2" -usr ".\USR1CV8" -pwd "пароль"
Клиенты новой версии подключаются к серверу с портом: server1:2541. Каталог данных -d у каждой службы должен быть свой.
Настройка рабочих процессов и памяти
Основные параметры лежат в свойствах рабочего сервера: в консоли раскройте кластер → «Рабочие серверы» → свойства сервера.
| Параметр | Зачем нужен | С чего начать |
|---|---|---|
| Количество ИБ на процесс | Сколько баз обслуживает один rphost | 0 (без ограничения) для 1–3 баз; 1, если баз много и одна «тяжёлая» мешает другим |
| Количество соединений на процесс | Порог, после которого кластер запускает новый процесс | Оставьте значение по умолчанию, пока нет проблем |
| Безопасный расход памяти за один вызов | Обрывает вызов, который съел слишком много памяти | Ставьте, если отчёты пользователей роняют процесс |
| Временно допустимый объём памяти процессов | Порог, после которого процессы перезапускаются плавно | Примерно 70–80 % свободной RAM сервера |
| Критический объём памяти процессов | Порог аварийного завершения процесса | Выше предыдущего, но ниже всей RAM |
| Диапазон IP-портов | Порты для rphost | 1560:1591, расширяйте при большом числе процессов |
Неудачно заданный критический объём памяти приведёт к тому, что процессы будут завершаться посреди рабочего дня. Пользователи получат обрыв соединения и потеряют несохранённые данные. Меняйте пороги вечером и следите за поведением 1–2 дня.
Перезапуск процессов
В свойствах кластера есть интервал перезапуска рабочих процессов. Кластер поднимает новый процесс, переводит на него соединения, а старый гасит. Для пользователя это почти незаметно. На серверах с утечками памяти в доработках интервал около суток снимает часть проблем, но причину утечки он не устраняет.
Сколько ресурсов закладывать
Ориентиры для одного сервера, где стоят и 1С, и СУБД:
- 🖥 До 20 пользователей БП или ЗУП — примерно 4–8 ядер и 16–32 ГБ RAM, база на SSD.
- 🖥 30–60 пользователей с УТ или КА — примерно 8–16 ядер и 32–64 ГБ RAM.
- 💾 Диски СУБД — SSD или NVMe. Медленный диск даёт больше тормозов, чем нехватка процессора.
Это стартовые цифры. Точнее покажет нагрузка после двух недель работы.
Лицензии для сервера 1С
Сервер требует собственную лицензию, отдельную от клиентских. Без неё клиент-серверная база не запустится.
| Лицензия | Для чего | Как ставится |
|---|---|---|
| Серверная ПРОФ | Обычная работа кластера | Программная (пин-код) или аппаратный ключ |
| Серверная КОРП | Расширенное управление кластером: счётчики и ограничения потребления ресурсов, требования назначения функциональности | Программная или аппаратный ключ |
| Клиентская | Право на сеанс пользователя | На рабочем месте или на сервере |
Программная лицензия
- Запустите клиент 1С на самом сервере (или откройте базу на этом сервере) и начните получение лицензии.
- Выберите получение на компьютер, где работает сервер 1С, введите регистрационный номер и пин-код из комплекта.
- Укажите данные организации — они должны совпадать при повторной активации.
Файлы лицензий хранятся в каталоге лицензий на сервере. Под Windows это обычно C:\ProgramData\1C\licenses. Пин-код привязывается к параметрам железа: при замене процессора, материнской платы или переносе виртуальной машины лицензию придётся активировать заново резервным пин-кодом.
💡 Сохраните регистрационный номер, все пин-коды и использованные данные организации в отдельный файл. Без них повторная активация превращается в переписку.
Клиентские лицензии на сервере
Клиентские лицензии можно активировать на сервере. Тогда сеансы берут их оттуда, и не нужно ставить ключи на каждое рабочее место. Для этого в свойствах информационной базы в консоли включите «Выдача лицензий сервером 1С:Предприятия».
Какой сеанс занял какую лицензию, видно в консоли в списке сеансов или через rac:
rac cluster list
rac session --cluster=<uuid кластера> list --licenses
Перед работой с rac запустите ras cluster на сервере: утилита подключается к нему на порт 1545. Полный список параметров смотрите в rac help.
Аппаратные ключи
Для сетевых USB-ключей HASP на сервере ставят менеджер лицензий HASP. Клиентские ключи для 1С 8.3 ищутся по сети, поэтому порт менеджера лицензий должен быть открыт между клиентами и сервером ключа. Для виртуальных машин удобнее программные лицензии: пробрасывать USB в виртуалку капризно.
Мониторинг и диагностика сервера 1С
Консоль кластера
Ежедневные проверки занимают пару минут:
- 👤 «Сеансы» — кто подключён, с какого компьютера, сколько времени вызова и памяти тратит сеанс.
- 🔒 «Блокировки» — кто держит управляемые блокировки. Если документ «висит», здесь видно, чей сеанс мешает.
- ⚙️ «Рабочие процессы» — занятая память, доступность и среднее время вызова у каждого
rphost.
Если сеанс завис и держит блокировку, его можно завершить из консоли. Пользователь при этом потеряет несохранённые данные — предупредите его до того, как нажмёте кнопку.
Технологический журнал
Когда причина непонятна, включают технологический журнал. Это файл logcfg.xml в подкаталоге conf каталога bin платформы. Пример для сбора исключений:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Параметр history — сколько часов хранить логи. Журнал быстро растёт: пишите его на отдельный диск и выключайте, когда собрали данные.
Журнал регистрации и кэш
Журнал регистрации каждой базы лежит в каталоге данных кластера (srvinfo\reg_1541\<идентификатор базы>). Там же хранится сеансовый кэш в папках snccntx. Когда сервер ведёт себя странно после обновления конфигурации, помогает очистка этого кэша:
- Предупредите пользователей и выберите время без работы — все сеансы оборвутся.
- Остановите службу агента сервера.
- Удалите папки
snccntx*вsrvinfo\reg_1541. - Запустите службу.
Кроме этого полезны счётчики производительности Windows: загрузка процессора, очередь диска, свободная память. Высокая очередь диска СУБД почти всегда видна раньше, чем жалобы пользователей.
Резервные копии и отказоустойчивость
Что копировать
| Что | Чем | Как часто |
|---|---|---|
| База данных | Средствами СУБД: план обслуживания SQL Server, pg_dump для PostgreSQL | Полная — каждую ночь, журнал транзакций — каждые 15–60 минут |
Выгрузка .dt | Конфигуратор | Перед обновлением и крупными доработками |
| Реестр кластера | Копия каталога srvinfo (файл 1CV8Clst.lst) | После изменения настроек кластера |
| Файлы лицензий | Копия каталога лицензий | После каждой активации |
Выгрузка .dt не заменяет копию СУБД: на базе в 50 ГБ она идёт долго, а восстановить из неё состояние на 14:30 нельзя. Копия СУБД с журналом транзакций — можно.
Копия 1CV8Clst.lst выручает, когда забыли пароль администратора кластера. Порядок: остановить службу, вернуть файл из копии, запустить службу. Пересоздавать кластер ради этого не нужно.
Раз в месяц разворачивайте копию на тестовом сервере и открывайте базу. Копия, которую ни разу не восстанавливали, — это надежда, а не копия.
Отказоустойчивость
Для неё в кластер добавляют второй рабочий сервер и назначают его центральным. Затем в консоли задают уровень отказоустойчивости — сколько серверов может выйти из строя без остановки кластера. При падении одного сервера сеансы переподключаются к другому.
Резерв для самой СУБД настраивается отдельно, средствами СУБД: AlwaysOn у SQL Server, потоковая репликация у PostgreSQL. Кластер 1С без резерва СУБД от падения сервера базы не спасает.
Частые ошибки при настройке сервера 1С
- ❌ Открыли 1540 и 1541, забыли диапазон 1560–1591. База находится, но при входе соединение обрывается. Откройте весь диапазон из свойств рабочего сервера.
- ❌ Служба работает от учётной записи без прав на каталог данных. Сервер не стартует или не может записать журнал. Проверьте права
USR1CV8наsrvinfoи каталог лицензий. - ❌ Обновили платформу на сервере, а клиенты остались на старой. Клиенты не подключаются. Обновляйте всё одновременно или держите вторую службу на других портах.
- ❌ Антивирус проверяет каталоги СУБД и
srvinfo. Получаются случайные тормоза и блокировки файлов. Добавьте эти каталоги в исключения. - ❌ Подняли копию рабочей базы без блокировки регламентных заданий. Тестовая копия отправляет обмены и выгрузки в реальные системы.
Частые вопросы
Можно ли поставить сервер 1С и СУБД на один компьютер?
Нужна ли серверная лицензия для одной базы на 5 человек?
Как перенести базу из файлового варианта на сервер?
.dt через Конфигуратор, создайте пустую базу в кластере и загрузите файл в неё. Загрузка .dt требует монопольного доступа к новой базе.