Клиент-серверная 1С 8.3 изнутри: процессы, порты, кластер и администрирование
Содержание
Сервер 1С 8.3 — это набор служб платформы, которые выполняют код конфигурации на отдельной машине и работают с базой через СУБД (MS SQL Server, PostgreSQL, Oracle или IBM Db2). Пользователь подключается не к файлу 1Cv8.1CD в общей папке, а к кластеру по адресу вида srv-1c и имени базы. Вся тяжёлая работа — проведение, отчёты, регламентные задания — идёт на сервере, клиент только показывает формы.
Типичная ситуация: в бухгалтерии было пять человек на файловой базе, стало пятнадцать. Закрытие месяца тянется по часу, база ловит блокировки, раз в квартал «сыпется» файл. Тут и встаёт вопрос о переходе на серверную 1С 8.3. Разберём, из чего состоит сервер, чем он отличается от файла, как его поставить и настроить, чтобы он не съел всю память.
Как работает клиент-серверный вариант 1С
В клиент-серверном режиме участвуют три звена:
- 💻 Клиент — тонкий клиент, толстый клиент или браузер (через веб-сервер с публикацией).
- ⚙️ Кластер серверов 1С — исполняет серверный код конфигурации, держит сеансы, блокировки, кэш.
- 🗄️ СУБД — хранит данные. Сервер 1С обращается к ней как обычный клиент СУБД.
Путь подключения такой. Клиент стучится к агенту сервера на порт 1540. Агент сообщает адрес менеджера кластера (порт 1541). Менеджер кластера назначает соединению рабочий процесс, у которого свой порт из диапазона — по умолчанию 1560–1591. Дальше клиент общается уже напрямую с рабочим процессом.
Отсюда практическое следствие для сети: если открыть в брандмауэре только 1540 и 1541, база не откроется. Нужен и весь диапазон рабочих процессов. Диапазон задаётся в свойствах рабочего сервера в консоли кластера.
СУБД может стоять на той же машине, что и сервер 1С, или на отдельной. Для 10–30 пользователей обычно хватает одного сервера под обе роли. При 50+ пользователях или тяжёлых базах (ERP, УПП) их разносят, чтобы рабочие процессы 1С и СУБД не дрались за память.
Из чего состоит кластер серверов 1С 8.3
Сервер 1С — это не один процесс, а несколько. Их видно в диспетчере задач Windows или в ps на Linux.
| Процесс | Роль | Порт по умолчанию |
|---|---|---|
ragent | Агент сервера: запускает остальные процессы, хранит список кластеров | 1540 |
rmngr | Менеджер кластера: реестр баз, сеансы, блокировки, сервисы кластера | 1541 |
rphost | Рабочий процесс: выполняет серверный код, обращается к СУБД | 1560–1591 |
ras | Сервер администрирования для утилиты rac и сторонних консолей | 1545 |
Агент и менеджер кластера
Агент ragent устанавливается как служба Windows с именем вида «Агент сервера 1С:Предприятия 8.3». Остальные процессы он запускает сам — отдельно стартовать rmngr и rphost не нужно.
Менеджер кластера держит реестр кластера. На Windows он лежит в каталоге srvinfo\reg_1541, главный файл — 1CV8Clst.lst. В нём записаны базы, рабочие серверы, администраторы кластера. Этот файл стоит копировать вместе с бэкапами баз — без него придётся заново регистрировать все информационные базы.
Внутри менеджера работают сервисы кластера: сервис лицензирования, журналов регистрации, полнотекстового поиска, сеансовых данных, блокировок. Если включить флажок «Менеджер под каждый сервис» в свойствах рабочего сервера, сервисы разнесутся по отдельным процессам rmngr. Это помогает на нагруженных серверах.
Рабочие процессы
rphost — главный потребитель памяти и процессора. Один процесс обслуживает несколько баз и много соединений. Сколько их будет, сервер решает сам, исходя из параметров «Количество ИБ на процесс» и «Количество соединений на процесс» в свойствах рабочего сервера.
Кластер и рабочие серверы
Кластер — логическая группа. В него можно добавить несколько физических рабочих серверов и распределять нагрузку между ними. Для небольшой фирмы кластер обычно один, рабочий сервер тоже один, и он же центральный.
Чем серверная база отличается от файловой
| Параметр | Файловая база | Серверная база |
|---|---|---|
| Где хранятся данные | Файл 1Cv8.1CD в папке | Таблицы в СУБД |
| Где выполняется код | На компьютере каждого пользователя | На сервере 1С |
| Комфортное число пользователей | До 5–10 одновременно | Десятки и сотни |
| Блокировки | Таблица целиком | Записи (управляемые блокировки) |
| Резервное копирование | Копия файла или выгрузка .dt | Средства СУБД, в том числе без остановки работы |
| Лицензии | Только клиентские | Клиентские + лицензия на сервер 1С |
| Администрирование | Почти не нужно | Нужен человек, который понимает сервер и СУБД |
Главное отличие для бухгалтера — скорость и стабильность при одновременной работе. В файловом варианте каждый клиент сам читает файл по сети. Пока один проводит документы за месяц, у остальных всё стоит. На сервере данные не гоняются по сети к каждому пользователю, а блокировки ставятся точечно.
Главное отличие для администратора — стоимость. Нужна лицензия на сервер 1С (отдельная для 64-разрядного сервера), машина под сервер и СУБД. PostgreSQL бесплатен, MS SQL Server на большие базы требует платной лицензии.
Перенести файловую базу на сервер просто: в Конфигураторе файловой базы выгрузите .dt через Администрирование → Выгрузить информационную базу, создайте пустую базу в кластере и загрузите в неё этот файл. Структура и данные переедут целиком.
Установка сервера 1С и первая настройка
Порядок для Windows Server 2016 и новее.
1. Подготовьте СУБД
Поставьте PostgreSQL в сборке, адаптированной для 1С, или MS SQL Server. Создайте отдельного пользователя СУБД для 1С. Не используйте sa или postgres в рабочих базах — об этом ниже, в безопасности.
2. Поставьте платформу с компонентами сервера
Запустите установщик технологической платформы 8.3 нужной разрядности. В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Модули расширения веб-сервера», если нужна публикация. Выберите «Установить сервер
как сервис Windows
». Установщик предложит пользователя службы — по умолчанию это USR1CV8.
3. Зарегистрируйте консоль администрирования
Оснастка «Администрирование серверов 1С Предприятия» часто не открывается после установки — MMC пишет, что не может создать оснастку. Её нужно зарегистрировать вручную из командной строки от администратора:
regsvr32 "C:\Program Files\1cv8\8.3.XX.XXXX\bin\radmin.dll"
Подставьте свою версию платформы. Разрядность консоли должна совпадать с разрядностью установленной платформы.
4. Создайте базу в кластере
В консоли раскройте Central 1C:Enterprise 8.3 servers → <имя сервера> → Кластеры → Локальный кластер → Информационные базы, контекстное меню — «Создать → Информационная база». Укажите:
- Имя базы в кластере — его пользователи будут вводить при подключении.
- Тип СУБД, адрес сервера СУБД, имя базы данных.
- Пользователя и пароль СУБД.
- Отметку «Создать базу данных в случае её отсутствия».
То же самое можно сделать из стартового окна 1С: «Добавить → Создание новой информационной базы → На сервере 1С:Предприятия».
5. Активируйте лицензию на сервер
Без лицензии на сервер 1С рабочие процессы не дадут открыть базу . Лицензию получают так же, как клиентскую: при первом запуске базы на сервере платформа предложит ввести пинкод из комплекта. Программная лицензия привязывается к параметрам машины, поэтому после замены оборудования или переноса на другую виртуальную машину её придётся активировать заново резервным пинкодом.
Аппаратный ключ HASP вставляют в сам сервер или в машину с менеджером лицензий в той же сети. Клиентские лицензии могут лежать на сервере — тогда сервер выдаёт их сеансам, и на рабочих местах ничего активировать не нужно.
6. Подключите пользователей
В окне запуска 1С у каждого: «Добавить → Добавление в список существующей информационной базы → На сервере 1С:Предприятия». Кластер — имя или IP сервера, база — имя из шага 4.
Сервер администрирования RAS
RAS нужен, если вы хотите управлять кластером из командной строки утилитой rac, из сторонних консолей или из Linux. Регистрация RAS службой Windows:
sc create "1C:Enterprise 8.3 Remote Server" binpath= "\"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ras.exe\" cluster --service --port=1545 localhost:1540" displayname= "1C:Enterprise 8.3 Remote Server" start= auto
После запуска службы проверьте связь:
rac cluster list localhost:1545
Команда вернёт UUID кластера. Дальше, например, rac session list --cluster=<UUID> localhost:1545 покажет активные сеансы. Остальные подкоманды смотрите в rac help.
Рабочие процессы, память и производительность сервера 1С
Сервер 1С 8.3 «из коробки» не ограничивает себя по памяти. Через месяц работы rphost может занять 10–15 ГБ, и машина начнёт свопиться. Это лечится настройками, а не перезагрузками по расписанию.
Перезапуск рабочих процессов
В свойствах кластера есть параметры:
- 🔁 Интервал перезапуска — через сколько секунд процесс плавно перезапускается. Типовое значение — 86 400 (раз в сутки).
- 📏 Допустимый объём памяти — порог памяти одного процесса.
- ⏱️ Интервал превышения допустимого объёма памяти — сколько секунд процессу можно жить выше порога.
- 🛑 Принудительно завершать проблемные процессы — включайте осознанно.
При плавном перезапуске новые соединения уходят на новый процесс, а старый доживает, пока на нём есть сеансы. Принудительное завершение рвёт сеансы пользователей на этом процессе — непроведённый документ будет потерян.
Ограничения на рабочем сервере
В свойствах рабочего сервера задаются «Максимальный объём памяти рабочих процессов» и «Безопасный расход памяти за один вызов». Второй параметр защищает от отчёта, который пытается выгрузить в память всю базу: вызов прервётся с ошибкой, а остальные пользователи продолжат работать.
Что ещё смотреть при тормозах
- 📊 Технологический журнал — включается файлом
logcfg.xmlв каталогеconfплатформы. Показывает долгие запросы, ожидания на блокировках, взаимоблокировки. - 🔒 Режим блокировок конфигурации — в типовых он управляемый. Автоматические блокировки на сервере дают очереди на ровном месте.
- 🗄️ Обслуживание СУБД — обновление статистики и перестроение индексов по расписанию. Без этого запросы со временем деградируют, и сервер 1С тут не виноват.
- 🧠 Память СУБД — у MS SQL ограничьте
max server memory, иначе он заберёт всё и оставитrphostбез памяти.
Очистка серверного кэша (каталоги snccntx внутри srvinfo\reg_1541) требует остановки службы агента. Все пользователи будут отключены. Делайте это вне рабочего времени и предупредите людей заранее.
Безопасность и резервное копирование серверной 1С
Доступ к кластеру
По умолчанию у кластера нет администратора. Любой, кто дотянется до порта 1540 и откроет консоль, может удалить базу из кластера или завершить чужие сеансы. Поэтому:
- Добавьте администратора агента сервера (узел «Администраторы» в консоли сервера).
- Добавьте администратора кластера в свойствах кластера.
- Для каждой базы задайте администратора ИБ и пароли пользователям 1С.
- Включите в свойствах базы «Блокировка регламентных заданий» на копиях и тестовых базах — иначе копия начнёт отправлять отчётность и загружать банк вместо рабочей.
Сеть и учётные записи
- 🔐 Порты 1540, 1541, 1545 и диапазон рабочих процессов открывайте только внутри локальной сети или VPN. Наружу сервер 1С не публикуется — для удалённых сотрудников есть веб-публикация через HTTPS или RDP.
- 👤 Служба работает от
USR1CV8или доменной учётной записи с минимумом прав. Права локального администратора ей не нужны. - 🗝️ Пользователь СУБД для 1С — отдельный, без прав на чужие базы.
Резервное копирование
Основной бэкап серверной базы делается средствами СУБД, а не выгрузкой .dt:
| Способ | Когда подходит | Минусы |
|---|---|---|
| Полный бэкап СУБД + журнал транзакций (MS SQL) | Рабочие базы, нужна точка восстановления на любой час | Нужно следить за местом и цепочкой журналов |
pg_dump / резервные копии PostgreSQL | Рабочие базы на PostgreSQL | Восстановление большой базы занимает время |
Выгрузка .dt из Конфигуратора | Перед обновлением, перенос базы на другой сервер | Нужен монопольный доступ, на больших базах долго |
Обязательно проверяйте восстановление: раз в месяц разверните бэкап в тестовую базу и откройте её. Бэкап, который ни разу не восстанавливали, — это надежда, а не копия.
Отдельно сохраняйте реестр кластера (1CV8Clst.lst) и файлы лицензий. После переустановки сервера это сэкономит день на повторной регистрации баз.
Частые вопросы о сервере 1С
Нужен ли сервер 1С, если пользователей пять?
Можно ли поставить сервер 1С и СУБД на одну машину?
Подходит ли бесплатный PostgreSQL для рабочей базы?
Сервер 1С работает на Linux?
ras и rac, оснастка MMC есть только под Windows.