Кластер, СУБД и лицензии: как устроена серверная 1С 8.3 и когда она окупается
Содержание
Сервер 1С:Предприятие 8 — это отдельная программа-посредник между пользователями и базой данных. Клиент 1С не читает файлы базы сам, а отправляет запросы серверу. Сервер выполняет код конфигурации, обращается к СУБД (MS SQL Server или PostgreSQL) и возвращает клиенту готовый результат.
Нужен он, когда файловая база начинает тормозить: в ней работают одновременно 10–20 человек, база весит десятки гигабайт, закрытие месяца идёт часами, а пользователи ловят ошибки блокировок.
Что делает сервер 1С и зачем он нужен
В файловом режиме вся база — один файл 1Cv8.1CD. Каждый пользователь открывает его по сети, и вся обработка идёт на его компьютере. Если десять человек проводят документы, десять машин одновременно гоняют данные по сети и борются за блокировку файла.
С сервером схема другая. Тяжёлые вычисления — запросы, проведение, расчёт себестоимости, регламентные задания — выполняются на одной мощной машине рядом с СУБД. Клиенту по сети приходят только результаты и формы.
Что это даёт на практике:
- 🚀 Скорость под нагрузкой. Отчёт за год считает сервер, а не ноутбук бухгалтера.
- 🔒 Блокировки на уровне записей. Два кладовщика проводят разные документы и не мешают друг другу. В файловой базе блокируется таблица целиком.
- ⏰ Регламентные задания по расписанию. Обмены, загрузка курсов, проверка контрагентов работают ночью без открытого клиента.
- 🌐 Удалённый доступ. Тонкий клиент работает по медленному каналу, веб-клиент — через браузер.
- 💾 Надёжность данных. Резервное копирование и восстановление выполняются средствами СУБД, база не «ломается» от обрыва сети у одного пользователя.
Файловая база или серверная: чем отличаются режимы
Режим выбирается не «навсегда». Файловую базу
можно выгрузить в .dt и загрузить в серверную, и наоборот. Конфигурация при этом та же самая.
| Критерий | Файловый режим | Клиент-серверный режим |
|---|---|---|
| Где хранятся данные | Файл 1Cv8.1CD в сетевой папке | База в СУБД (MS SQL, PostgreSQL и др.) |
| Где выполняется код | На компьютере каждого пользователя | На сервере 1С |
| Блокировки | Таблица целиком | Отдельные записи |
| Регламентные задания | Только при запущенном клиенте | По расписанию, без клиента |
| Что покупать | Клиентские лицензии | Клиентские + лицензия на сервер (+ СУБД, если не PostgreSQL) |
| Администрирование | Почти не нужно | Нужен человек, который понимает сервер и СУБД |
| Порог входа | Сетевая папка | Отдельная машина, настройка, бэкапы |
Порог перехода зависит не только от числа пользователей. Признаки, что файловому режиму пора на пенсию:
- ⛔ регулярные сообщения
Конфликт блокировок при выполнении транзакции; - 🐢 проведение документа занимает десятки секунд при нормальном железе;
- 📦 база выросла за 20–30 ГБ и продолжает расти;
- 🔁 нужны регулярные обмены и фоновые задания без дежурного компьютера.
Из каких частей состоит сервер 1С
Под словом «сервер 1С» обычно понимают сразу несколько процессов. Их полезно различать: от этого зависит, где искать проблему.
Агент сервера (ragent)
Главная служба. В Windows она называется 1C:Enterprise 8.3 Server Agent (в русской локализации — «Агент сервера 1С:Предприятия 8.3»). Агент принимает первое подключение клиента и консоли, хранит список кластеров и администраторов. По умолчанию слушает порт 1540.
Менеджер кластера (rmngr)
Управляет одним кластером: списком информационных баз, сеансами, блокировками, выдачей лицензий. Порт по умолчанию — 1541.
Рабочие процессы (rphost)
Именно они выполняют код конфигурации и ходят в СУБД. Рабочих процессов может быть несколько, сервер сам распределяет между ними соединения. Под них выделяется диапазон портов, по умолчанию 1560–1591. Диапазон задаётся в свойствах рабочего сервера.
СУБД
Хранит сами данные. Сервер 1С поддерживает Microsoft SQL Server, PostgreSQL (включая сборки, адаптированные под 1С, и Postgres Pro), IBM Db2 и Oracle Database. В России чаще всего выбирают MS SQL или PostgreSQL.
Путь клиента выглядит так: клиент стучится к агенту на 1540 → агент направляет к менеджеру кластера на 1541 → менеджер выделяет соединение с рабочим процессом из диапазона 1560–1591 → рабочий процесс выполняет запросы к СУБД.
Если клиент внутри сети подключается, а снаружи нет — почти всегда в файрволе открыт только 1540. Нужны все три: 1540, 1541 и весь диапазон рабочих процессов.
Каталог srvinfo
Служебные данные сервера лежат в каталоге srvinfo (в Windows по умолчанию C:\Program Files\1cv8\srvinfo). Внутри — папка reg_1541 с реестром кластера (1CV8Clst.lst) и сеансовыми данными. Этот каталог стоит включить в резервное копирование: при его потере придётся заново регистрировать все базы в кластере.
Какое железо нужно под сервер 1С
1С плохо распараллеливает одну операцию. Проведение документа или расчёт себестоимости одного пользователя идёт в один поток. Поэтому высокая частота процессора важнее числа ядер: 8 ядер по 4,5 ГГц обычно дадут больше, чем 32 ядра по 2,2 ГГц.
Ориентиры для связки «сервер 1С + СУБД на одной машине» и типовых конфигураций (Бухгалтерия, ЗУП, УТ):
| Пользователей | Процессор | ОЗУ | Диски |
|---|---|---|---|
| до 15 | 4–6 ядер, от 3,5 ГГц | 16–32 ГБ | NVMe SSD 500 ГБ+ |
| 15–50 | 8–12 ядер, от 3,5 ГГц | 32–64 ГБ | NVMe SSD под базу и отдельный диск под логи СУБД и бэкапы |
| 50–150 | 16+ ядер или разнос 1С и СУБД на две машины | 64–128 ГБ | NVMe в RAID 1/10 |
Это стартовые цифры, а не норма. ERP, УПП и большие базы розницы съедают ресурсы заметно быстрее.
На что ещё смотреть:
- 💽 Только SSD. Сервер на HDD — главная причина жалоб «купили сервер, а стало не быстрее».
- 🧠 Память для СУБД. У MS SQL ограничьте максимум памяти, иначе он заберёт всё и оставит рабочим процессам 1С крохи.
- 🌐 Сеть 1 Гбит/с между сервером 1С и СУБД, если они на разных машинах. Задержка тут важнее ширины канала.
- 🖥️ Виртуализация допустима. Но выделяйте ядра без переподписки и не ставьте сервер 1С на хост, где соседи грузят диск.
Не ставьте сервер 1С на машину, которая одновременно служит файловым хранилищем, контроллером домена и терминальным сервером на 30 человек. Нагрузки будут мешать друг другу, и найти виноватого в тормозах станет сложно.
Лицензии для сервера: что купить и сколько это стоит
В клиент-серверном режиме нужны два вида лицензий.
1. Лицензия на сервер. Ставится на каждый рабочий сервер кластера, где работают рабочие процессы. Варианты:
| Лицензия | Для чего | Ориентир цены |
|---|---|---|
| Лицензия на сервер (x86-64) | Обычный 64-битный сервер, подходит большинству компаний | примерно 85–100 тыс. ₽ |
| Лицензия на сервер (32-bit) | Старые 32-битные установки, сейчас почти не встречается | примерно 50–60 тыс. ₽ |
| КОРП. Лицензия на сервер | Крупные внедрения: расширенные настройки кластера, требования назначения функциональности, механизмы масштабирования | примерно 230–260 тыс. ₽ |
Цены ориентировочные: актуальные уточняйте у партнёра 1С на дату покупки.
2. Клиентские лицензии. Считаются по одновременно работающим пользователям, как и в файловом режиме. Их можно активировать прямо на сервере: тогда сервер сам выдаёт лицензию каждому подключившемуся. Для этого в свойствах информационной базы должен стоять флажок Разрешить выдачу лицензий сервером 1С:Предприятия.
Лицензии бывают программные (пин-код, привязка к оборудованию) и аппаратные (USB-ключ HASP). Программная лицензия на сервер привязывается к параметрам машины. Если заменить материнскую плату, диск или перенести виртуалку на другой хост, лицензия может «слететь» и потребует повторной активации резервным пин-кодом.
Сохраните конверт с пин-кодами и регистрационную анкету в надёжном месте. Резервных пин-кодов немного, и без них восстановление лицензии превращается в переписку с центром лицензирования.
СУБД. PostgreSQL распространяется бесплатно, в том числе в сборке под 1С. Microsoft SQL Server требует отдельной лицензии; бесплатная редакция Express ограничена по размеру базы и ресурсам и подходит разве что для теста.
Установка сервера 1С на Windows по шагам
Порядок ниже — для Windows Server 2016 и новее и платформы 8.3 с СУБД на той же машине.
Шаг 1. Подготовьте СУБД
Установите PostgreSQL (сборку под 1С) или MS SQL Server заранее. Запишите имя сервера СУБД, логин и пароль пользователя с правами на создание баз. Для MS SQL проверьте, что включена проверка подлинности SQL Server, если будете входить по логину и паролю.
Шаг 2. Установите компоненты платформы
Запустите setup.exe из дистрибутива технологической платформы для Windows x86-64 (сервер 64-битный — и дистрибутив нужен 64-битный). В списке компонентов отметьте:
Сервер 1С:Предприятия 8.Администрирование сервера 1С:Предприятия— это консоль кластера.- При необходимости —
Модули расширения веб-сервера, если планируете веб-клиент.
На шаге установки сервера включите Установить сервер 1С:Предприятия 8 как сервис Windows и выберите пользователя, от имени которого будет работать служба. По умолчанию создаётся USR1CV8.
Шаг 3. Проверьте службу
Откройте services.msc и найдите агента сервера. Статус — «Выполняется», тип запуска — «Автоматически». В свойствах службы видна строка запуска примерно такого вида:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Здесь видны все порты и путь к srvinfo. Если порты заняты другим экземпляром сервера, их меняют именно в этой строке.
Шаг 4. Зарегистрируйте консоль администрирования
Консоль — это оснастка MMC, ей нужна зарегистрированная библиотека radmin.dll нужной версии. Если консоль не открывается или показывает ошибку, выполните из командной строки от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
Номер версии в пути должен совпадать с установленной платформой. Этот же приём выручает после обновления платформы, когда консоль «вдруг» перестала видеть сервер.
Шаг 5. Создайте или загрузите информационную базу
В консоли разверните Центральные серверы 1С:Предприятия → ваш сервер → Кластеры → кластер → Информационные базы, в контекстном меню выберите создание новой базы. Заполните:
- имя базы в кластере и защищённое соединение;
- тип СУБД, сервер базы данных, имя базы в СУБД, пользователя и пароль;
- смещение дат
2000для MS SQL; - флажки создания базы данных в случае её отсутствия и разрешения выдачи лицензий сервером.
Затем добавьте базу в список запуска у пользователей: Добавить → Добавление в список существующей информационной базы → На сервере 1С:Предприятия, укажите кластер (имя сервера) и имя базы. Строка подключения получится вида Srvr="srv1c";Ref="buh";.
Чтобы перенести данные из файловой базы, выгрузите её в Конфигураторе через Администрирование → Выгрузить информационную базу и загрузите полученный .dt в новую серверную базу
тем же меню.
Ошибки при внедрении сервера 1С и как их обойти
Большинство проблем на старте не связаны с самой 1С. Их вызывает окружение.
Ещё три ошибки, которые не дают явного сообщения, но аукаются позже:
- Нет обслуживания СУБД. Без регулярного обновления статистики и перестроения индексов сервер постепенно замедляется. Настройте план обслуживания в MS SQL или задания
vacuum/analyzeв PostgreSQL. - Бэкап только выгрузкой .dt. Выгрузка требует отключения пользователей и на большой базе идёт долго. Основной бэкап делайте средствами СУБД, а
.dt— дополнительно, перед обновлениями. - Сервер обновили, клиенты нет. Сразу после обновления платформы на сервере пользователи перестают входить. Планируйте обновление клиентов одновременно.
Если для устранения проблемы нужно перезапустить службу агента или завершить рабочий процесс, все пользователи потеряют несохранённые данные. Предупредите людей и делайте это в нерабочее время.