Как устроен сервер 1С:Предприятия 8.3 и когда без него не обойтись
Содержание
Сервер 1С:Предприятие — это программа-посредник между пользователями и базой данных. Он выполняет серверный код конфигурации (проведение документов, расчёты, отчёты), управляет блокировками и сеансами, а данные хранит не в файле 1Cv8.1CD, а в СУБД: MS SQL Server, PostgreSQL, Oracle или IBM Db2. Нужен он, когда в базе одновременно работает больше 10–15 человек, база выросла до десятков гигабайт или требуется доступ из филиалов без тормозов.
Пользователь при этом ничего не замечает: тот же клиент 1С, те же формы. Меняется то, где выполняется тяжёлая работа. В файловом варианте всё считает компьютер пользователя, гоняя файл базы по сети. В клиент-серверном считает сервер, а по сети идут только команды и готовые результаты.
Файловый и клиент-серверный режим: в чём разница
У 1С 8.3 два варианта работы с информационной базой. Выбор между ними — первое, что нужно решить, прежде чем говорить о сервере.
| Параметр | Файловый вариант | Клиент-серверный вариант |
|---|---|---|
| Где лежат данные | Файл 1Cv8.1CD в общей папке | База в СУБД |
| Кто выполняет серверный код | Клиентское приложение | Рабочие процессы сервера 1С |
| Комфортное число пользователей | До 5–10, при хорошей сети до 15 | Десятки и сотни |
| Блокировки | Таблица целиком | Записи (управляемые блокировки) |
| Резервное копирование | Копия файла или выгрузка .dt | Средствами СУБД, без остановки работы |
| Стоимость | Только клиентские лицензии | Лицензия сервера + СУБД + железо |
Главная боль файловой базы — блокировки. Пока один бухгалтер проводит пачку документов, второй ждёт. В клиент-серверном варианте с управляемыми блокировками двое могут проводить документы по разным контрагентам параллельно.
Перевести базу из файлового режима в серверный можно без переделки конфигурации: выгрузите .dt в Конфигураторе (Администрирование → Выгрузить информационную базу), создайте базу на сервере и загрузите файл туда.
Когда сервер ставить рано
- 🟢 В базе работают 2–4 человека, и они не жалуются на скорость.
- 🟢 База меньше 5–10 ГБ, нет филиалов.
- 🟢 Нет своего администратора, а бюджет на лицензию сервера не заложен.
В таких случаях проще ускорить файловую базу : SSD на компьютере с общей папкой, гигабитная сеть, регулярное тестирование и исправление.
Из каких процессов состоит сервер 1С
Сервер 1С — не одна программа, а набор процессов. Понимать их нужно, чтобы читать консоль администрирования и правильно открывать порты.
| Процесс | Файл | Порт по умолчанию | Что делает |
|---|---|---|---|
| Агент сервера | ragent | 1540 | Принимает первое обращение клиента и консоли, запускает остальные процессы |
| Менеджер кластера | rmngr | 1541 | Хранит список баз, сеансы, блокировки, распределяет нагрузку |
| Рабочие процессы | rphost | 1560–1591 | Выполняют серверный код и общаются с СУБД |
| Сервер администрирования | ras | 1545 | Даёт доступ к кластеру утилите rac и сторонним консолям |
Цепочка подключения такая. Клиент стучится к агенту на порт 1540. Агент направляет его к менеджеру кластера на 1541. Тот назначает рабочий процесс, и дальше клиент работает с ним напрямую через порт из диапазона. Диапазон 1560–1591 задаётся в свойствах рабочего сервера, а не кластера.
Если на сервере включён брандмауэр, открывайте не только 1540 и 1541, но и весь диапазон рабочих процессов. Иначе клиент найдёт сервер, но вылетит с ошибкой соединения при входе в базу.
Кластер, рабочий сервер, служба
- 🖥 Рабочий сервер — физический или виртуальный компьютер, где запущены процессы 1С.
- 🧩 Кластер — логическая группа рабочих серверов с общим списком баз. Чаще всего это один сервер, но кластер можно расширить для распределения нагрузки.
- ⚙️ Служба — в Windows агент запускается как служба «Агент сервера 1С:Предприятия 8.3» с указанием версии платформы. В Linux — как сервис systemd.
Настройки кластера и список баз хранятся в каталоге srvinfo. В Windows по умолчанию это C:\Program Files\1cv8\srvinfo. Внутри лежит папка reg_1541 с реестром кластера и сеансовыми данными.
Автономный сервер
С версии платформы 8.3.14 есть ещё один вариант — автономный сервер ibsrv. Это облегчённый сервер для одной базы без кластера, агента и консоли. Подходит для небольших внедрений и разработки, но для рабочей базы на 20+ пользователей обычно ставят полноценный кластер.
Лицензии на сервер 1С: какие бывают и сколько стоят
Лицензия сервера и клиентские лицензии — разные вещи, и покупать нужно обе. Сервер без клиентских лицензий не пустит пользователей, клиентские без серверной не запустят серверную базу .
| Лицензия | Для чего | Ориентир цены |
|---|---|---|
| Сервер МИНИ | До 5 одновременных подключений к кластеру | Примерно 10–15 тыс. руб. |
| Сервер 32-разрядный | Запуск только 32-разрядного сервера | Примерно 50–60 тыс. руб. |
| Сервер 64-разрядный | 64-разрядный сервер, без ограничения памяти 32-битного процесса | Примерно 85–110 тыс. руб. |
| Сервер КОРП | 64-разрядный сервер с расширенными функциями для крупных систем | В разы дороже обычной 64-разрядной |
| Клиентские | На число одновременных пользователей: 1, 5, 10, 20, 50, 100 и больше | От нескольких тысяч за рабочее место |
Цены ориентировочные, точные дают партнёры 1С на дату покупки.
Программная лицензия или USB-ключ
- 🔑 Программная — привязана к параметрам компьютера. Активируется пин-кодом. При замене материнской платы или переезде на другой сервер понадобится повторная активация резервным пин-кодом.
- 🔌 USB-ключ (HASP) — переносится вместе с ключом. Для виртуальных машин неудобен: нужно пробрасывать USB или ставить сетевой менеджер лицензий.
В клиент-серверном режиме клиентские лицензии удобно держать на сервере. Тогда их получает сервер 1С при входе пользователя, и не нужно активировать их на каждом компьютере.
Лицензия 32-разрядного сервера не запустит 64-разрядный. Если планируете базу больше нескольких десятков гигабайт или больше 20–30 пользователей, сразу берите 64-разрядную: 32-битный рабочий процесс упирается в лимит памяти.
Без лицензии платформа не запустит базу. Исключение — учебная версия, но с серверными базами она не работает .
Требования к серверу 1С: процессор, память, диски
Точных официальных цифр «на N пользователей» нет: нагрузка зависит от конфигурации и того, что делают люди. Ниже — ориентиры из практики для типовых конфигураций (Бухгалтерия, ЗУП, УТ) при размещении сервера 1С и СУБД на одной машине.
| Пользователей | Процессор | Память | Диски |
|---|---|---|---|
| 5–15 | 4 ядра, от 3,5 ГГц | 16 ГБ | SSD от 240 ГБ |
| 15–40 | 6–8 ядер, от 3,5 ГГц | 32 ГБ | NVMe SSD, отдельно под базы и под журналы СУБД |
| 40–100 | 12–16 ядер | 64 ГБ и больше | NVMe в RAID 1 или 10 |
| Свыше 100 | Отдельные машины под 1С и СУБД | По замерам нагрузки | По замерам нагрузки |
Что на самом деле влияет на скорость
- ⚡ Частота ядра. Один вызов сервера выполняется в одном потоке. Проведение документа на процессоре 3,8 ГГц пройдёт заметно быстрее, чем на 2,2 ГГц, даже если ядер вдвое больше.
- 💾 Диски. СУБД постоянно пишет журнал транзакций. HDD под базой 1С в 2020-х — главная причина жалоб на тормоза.
- 🧠 Память. СУБД кэширует данные в оперативке. Если вся рабочая часть базы помещается в память, диск почти не читается.
- 🌐 Сеть между 1С и СУБД. Если они на разных машинах, задержка между ними важнее пропускной способности.
Ориентир по памяти для MS SQL: ограничьте максимальный объём памяти СУБД так, чтобы серверу 1С и системе оставалось 30–40%. Иначе SQL Server займёт всё, и рабочие процессы 1С начнут уходить в своп.
Windows или Linux
Сервер 1С работает на обеих системах. На Windows проще с документацией и MS SQL. На Linux связка «сервер 1С + PostgreSQL» не требует лицензий на ОС и СУБД. Для PostgreSQL используйте сборки с патчами для 1С: обычный «ванильный» PostgreSQL с 1С работает хуже или не работает вовсе.
Настройка кластера под нагрузку
Консоль администрирования серверов ставится вместе с платформой (компонент «Администрирование сервера 1С:Предприятия»). Если после установки в оснастке пусто или она выдаёт ошибку класса, зарегистрируйте библиотеку radmin.dll от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"
Подставьте свою версию платформы в путь. Версия консоли должна совпадать с версией сервера.
Что настроить сразу после установки
- Администратор кластера. В разделе администраторов кластера заведите пользователя с паролем. Без этого любой, кто откроет консоль в сети, сможет удалить базу из кластера.
- Администратор агента. То же для центрального сервера: иначе можно создавать и удалять кластеры.
- Учётная запись службы. По умолчанию служба работает от пользователя
USR1CV8. Ей нужны права на каталогsrvinfoи на папки, куда пишутся логи. - Параметры рабочего сервера. Здесь задаются диапазон портов, количество баз и соединений на процесс, ограничения памяти.
Параметры памяти рабочего сервера
В свойствах рабочего сервера есть поля, которые спасают от зависаний:
- 🛑 Критический объём памяти процессов — при превышении сервер начинает принудительно завершать тяжёлые вызовы.
- 📏 Безопасный расход памяти за один вызов — отсекает «убийственный» отчёт без отборов, который иначе съел бы всю память.
- 🔁 Временно допустимый объём памяти процессов — порог, после которого сервер начинает перезапуск рабочих процессов.
Значения по умолчанию подходят для начала. Подстраивайте их, только когда видите в мониторинге, что процессы реально упираются в память.
Настройки базы на сервере
В свойствах информационной базы в консоли полезны две вещи:
- ⏸ Блокировка регламентных заданий — включайте на копиях баз, иначе тестовая база начнёт загружать банк и отправлять отчёты от имени рабочей.
- 🔒 Блокировка начала сеансов — для обновления или обслуживания. Задайте сообщение и код разрешения, чтобы администратор мог войти.
Для обновления конфигурации монопольный режим нужен только на этапе обновления структуры базы данных. Обычную работу в Конфигураторе он не требует.
Мониторинг и диагностика сервера 1С
Большую часть проблем видно прямо в консоли администрирования.
| Что смотреть | Где | Тревожный признак |
|---|---|---|
| Сеансы | Узел «Сеансы» базы | Сотни «висящих» сеансов с одного компьютера |
| Блокировки | Узел «Блокировки» | Одна запись держит блокировку минутами |
| Рабочие процессы | Узел «Рабочие процессы» | Память растёт без остановки, низкая доступность |
| Соединения | Узел «Соединения» | Соединения без сеансов копятся часами |
Для выгрузки этих данных скриптом есть утилита rac. Она работает через сервер администрирования ras, который сначала нужно запустить. Базовые команды, например rac cluster list и rac session list --cluster=<id>, выводят кластеры и сеансы; остальные параметры смотрите в rac help.
Технологический журнал
Когда консоли мало, включают технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf платформы. В него можно писать долгие запросы к СУБД, взаимоблокировки, исключения рабочих процессов.
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1c_logs" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Этот пример пишет только исключения и хранит логи 24 часа. Не включайте полный журнал всех событий на рабочем сервере надолго: за день он забивает диск десятками гигабайт.
Сброс сеансового кэша
Когда база ведёт себя странно после обновления, а клиентский кэш уже чистили, иногда помогает очистка сеансовых данных сервера:
- Предупредите пользователей и выберите время вне рабочего дня: при остановке службы оборвутся все сеансы во всех базах кластера.
- Остановите службу агента сервера 1С.
- В каталоге
srvinfo\reg_1541удалите папки, чьи имена начинаются наsnccntx. - Запустите службу снова.
Файлы реестра кластера (1CV8Clst.lst и подобные) не трогайте: в них список баз и настройки кластера.