Как устроен сервер 1С:Предприятия 8.3 и когда без него не обойтись

· 10 мин

Содержание

Сервер 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С — не одна программа, а набор процессов. Понимать их нужно, чтобы читать консоль администрирования и правильно открывать порты.

ПроцессФайлПорт по умолчаниюЧто делает
Агент сервераragent1540Принимает первое обращение клиента и консоли, запускает остальные процессы
Менеджер кластераrmngr1541Хранит список баз, сеансы, блокировки, распределяет нагрузку
Рабочие процессыrphost1560–1591Выполняют серверный код и общаются с СУБД
Сервер администрированияras1545Даёт доступ к кластеру утилите 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–154 ядра, от 3,5 ГГц16 ГБSSD от 240 ГБ
15–406–8 ядер, от 3,5 ГГц32 ГБNVMe SSD, отдельно под базы и под журналы СУБД
40–10012–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"

Подставьте свою версию платформы в путь. Версия консоли должна совпадать с версией сервера.

Что настроить сразу после установки

  1. Администратор кластера. В разделе администраторов кластера заведите пользователя с паролем. Без этого любой, кто откроет консоль в сети, сможет удалить базу из кластера.
  2. Администратор агента. То же для центрального сервера: иначе можно создавать и удалять кластеры.
  3. Учётная запись службы. По умолчанию служба работает от пользователя USR1CV8. Ей нужны права на каталог srvinfo и на папки, куда пишутся логи.
  4. Параметры рабочего сервера. Здесь задаются диапазон портов, количество баз и соединений на процесс, ограничения памяти.

Параметры памяти рабочего сервера

В свойствах рабочего сервера есть поля, которые спасают от зависаний:

  • 🛑 Критический объём памяти процессов — при превышении сервер начинает принудительно завершать тяжёлые вызовы.
  • 📏 Безопасный расход памяти за один вызов — отсекает «убийственный» отчёт без отборов, который иначе съел бы всю память.
  • 🔁 Временно допустимый объём памяти процессов — порог, после которого сервер начинает перезапуск рабочих процессов.

Значения по умолчанию подходят для начала. Подстраивайте их, только когда видите в мониторинге, что процессы реально упираются в память.

Настройки базы на сервере

В свойствах информационной базы в консоли полезны две вещи:

  • ⏸ Блокировка регламентных заданий — включайте на копиях баз, иначе тестовая база начнёт загружать банк и отправлять отчёты от имени рабочей.
  • 🔒 Блокировка начала сеансов — для обновления или обслуживания. Задайте сообщение и код разрешения, чтобы администратор мог войти.

Для обновления конфигурации монопольный режим нужен только на этапе обновления структуры базы данных. Обычную работу в Конфигураторе он не требует.

Мониторинг и диагностика сервера 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. Предупредите пользователей и выберите время вне рабочего дня: при остановке службы оборвутся все сеансы во всех базах кластера.
  2. Остановите службу агента сервера 1С.
  3. В каталоге srvinfo\reg_1541 удалите папки, чьи имена начинаются на snccntx.
  4. Запустите службу снова.

Файлы реестра кластера (1CV8Clst.lst и подобные) не трогайте: в них список баз и настройки кластера.

Диагностика: выберите симптом

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

Можно ли поставить сервер 1С и СУБД на одну машину?
Да, для 5–50 пользователей это обычная схема. Разносить по разным машинам имеет смысл при сотне пользователей и выше.
Нужен ли сервер 1С для веб-доступа к базе?
Нет. Веб-публикация через Apache или IIS работает и с файловой базой. Но при многих пользователях через веб клиент-серверный вариант заметно стабильнее.
Сколько баз можно держать на одном сервере 1С?
Количество баз лицензией не ограничено. Одна лицензия сервера покрывает все базы кластера на этом компьютере.
Можно ли запустить сервер 1С в облаке или на арендованном VPS?
Можно. Программную лицензию активируют на виртуальной машине, но при её переносе или смене параметров придётся активировать заново.
Обязательно ли покупать MS SQL?
Нет. PostgreSQL в сборке для 1С бесплатен и хорошо подходит для типовых конфигураций.