Клиент-серверная 1С 8.3 изнутри: процессы, порты, кластер и администрирование

· 10 мин

Содержание

Сервер 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. Имя базы в кластере — его пользователи будут вводить при подключении.
  2. Тип СУБД, адрес сервера СУБД, имя базы данных.
  3. Пользователя и пароль СУБД.
  4. Отметку «Создать базу данных в случае её отсутствия».

То же самое можно сделать из стартового окна 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С готов к работе, если:
Выполнено: 0 / 7

Рабочие процессы, память и производительность сервера 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. Добавьте администратора агента сервера (узел «Администраторы» в консоли сервера).
  2. Добавьте администратора кластера в свойствах кластера.
  3. Для каждой базы задайте администратора ИБ и пароли пользователям 1С.
  4. Включите в свойствах базы «Блокировка регламентных заданий» на копиях и тестовых базах — иначе копия начнёт отправлять отчётность и загружать банк вместо рабочей.

Сеть и учётные записи

  • 🔐 Порты 1540, 1541, 1545 и диапазон рабочих процессов открывайте только внутри локальной сети или VPN. Наружу сервер 1С не публикуется — для удалённых сотрудников есть веб-публикация через HTTPS или RDP.
  • 👤 Служба работает от USR1CV8 или доменной учётной записи с минимумом прав. Права локального администратора ей не нужны.
  • 🗝️ Пользователь СУБД для 1С — отдельный, без прав на чужие базы.

Резервное копирование

Основной бэкап серверной базы делается средствами СУБД, а не выгрузкой .dt:

СпособКогда подходитМинусы
Полный бэкап СУБД + журнал транзакций (MS SQL)Рабочие базы, нужна точка восстановления на любой часНужно следить за местом и цепочкой журналов
pg_dump / резервные копии PostgreSQLРабочие базы на PostgreSQLВосстановление большой базы занимает время
Выгрузка .dt из КонфигуратораПеред обновлением, перенос базы на другой серверНужен монопольный доступ, на больших базах долго

Обязательно проверяйте восстановление: раз в месяц разверните бэкап в тестовую базу и откройте её. Бэкап, который ни разу не восстанавливали, — это надежда, а не копия.

Отдельно сохраняйте реестр кластера (1CV8Clst.lst) и файлы лицензий. После переустановки сервера это сэкономит день на повторной регистрации баз.

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

Нужен ли сервер 1С, если пользователей пять?
Обычно нет. Файловая база справляется с 5–7 одновременными пользователями. Сервер оправдан, если база больше 10–15 ГБ, есть тяжёлые обмены или фирма растёт.
Можно ли поставить сервер 1С и СУБД на одну машину?
Да, для небольших фирм это нормальная схема. Ограничьте память СУБД, чтобы рабочим процессам 1С осталось место, и ставьте базы на SSD.
Подходит ли бесплатный PostgreSQL для рабочей базы?
Да, если взять сборку, адаптированную для 1С. Типовые конфигурации на ней работают, при этом лицензия СУБД не нужна.
Сервер 1С работает на Linux?
Да. Платформа ставится из пакетов deb или rpm и работает как служба. Управлять кластером удобно через ras и rac, оснастка MMC есть только под Windows.
Можно ли разные версии платформы на одном сервере?
Можно, но каждой версии нужен свой агент на своих портах (например, 1540 и 2540) и своя служба. Клиент должен совпадать по версии с сервером, к которому подключается.