Клиент-серверная 1С: как устроена и когда на неё переходить

· 10 мин

Содержание

«1С на сервере» значит, что база работает в клиент-серверном режиме: данные лежат в СУБД (Microsoft SQL Server, PostgreSQL и др.), а запросы пользователей обрабатывает отдельная служба — сервер 1С:Предприятия. Пользователь не открывает файл 1Cv8.1CD по сети, а подключается к кластеру по адресу вида srv1c\buh.

Если у вас база тормозит при 8–10 одновременных пользователях, падает при закрытии месяца или ломается после обрыва сети — пора переходить с файловой версии на серверную. Конфигурацию менять не придётся: меняется способ хранения данных, требования к железу и порядок обслуживания.

Файловый и клиент-серверный режим: в чём разница

В файловом режиме вся работа идёт на компьютере пользователя. Клиент 1С читает файл базы по сети, сам выполняет запросы, сам ставит блокировки. Сеть гоняет сырые данные, а при обрыве связи файл можно повредить.

В клиент-серверном режиме клиент только показывает формы и отправляет команды. Запросы выполняет сервер 1С, данные хранит и выбирает СУБД. По сети идут уже готовые результаты.

ПараметрФайловый режимКлиент-серверный режим
Где хранятся данныеОдин файл 1Cv8.1CDБаза в СУБД
Кто выполняет запросыКомпьютер пользователяСервер 1С + СУБД
Комфортное число пользователейОриентировочно до 5–10Десятки и сотни
Устойчивость к обрыву сетиНизкая, риск порчи файлаТранзакции СУБД, данные целы
Резервное копированиеКопия файла или выгрузка .dtСредства СУБД, без остановки работы
СтоимостьТолько клиентские лицензииПлюс лицензия сервера, иногда СУБД
АдминистрированиеПочти не нужноНужен администратор

💡 Конфигурация при переходе не меняется. Та же БП 3.0 или ЗУП 3.1 работает в обоих режимах, переносится только база.

Когда переходить на сервер

  • 👥 одновременно работают больше 8–10 человек;
  • 🐢 закрытие месяца или проведение пачки документов занимает часы;
  • 💥 база уже ломалась после сбоя сети или питания;
  • 🔒 пользователи часто получают ошибки блокировок;
  • 🌐 нужен удалённый доступ через тонкий клиент или веб-клиент без терминального сервера;
  • 📦 размер базы — десятки гигабайт.
Нужен ли вам сервер 1С?

Как устроен сервер 1С: агент, кластер, рабочие процессы

Сервер 1С:Предприятия — это не одна программа, а несколько процессов, которые поднимаются службой Windows или демоном Linux.

  • 🛰 ragent — агент сервера. Принимает первое подключение клиента и команды консоли администрирования. По умолчанию порт 1540.
  • 🧭 rmngr — менеджер кластера. Хранит список баз, сеансов, распределяет нагрузку. Порт 1541.
  • ⚙️ rphost — рабочие процессы. Именно они выполняют код конфигурации и запросы к СУБД. Порты берутся из диапазона, по умолчанию 1560–1591.

Путь подключения такой: клиент обращается к агенту на 1540, тот отправляет его к менеджеру кластера на 1541, а дальше клиент работает с назначенным рабочим процессом из диапазона 1560–1591. Поэтому в брандмауэре сервера нужно открыть все три направления, иначе пользователи увидят ошибку подключения.

Кластер и рабочие серверы

Кластер — логическая группа, в которой зарегистрированы информационные базы. Рабочий сервер — физическая или виртуальная машина, на которой запущены процессы кластера.

В небольшой компании кластер состоит из одного рабочего сервера. В крупной — из нескольких: нагрузка распределяется между ними, а при отказе одной машины сеансы переходят на другую. Диапазон портов рабочих процессов, параметры отказоустойчивости и требования назначения функциональности задают в свойствах рабочего сервера, а не кластера.

💡 Служебные файлы кластера лежат в каталоге srvinfo (в Windows по умолчанию C:\Program Files\1cv8\srvinfo). Там же — кэши сеансов. Этот каталог стоит включить в резервное копирование .

Оборудование, ОС и СУБД для серверной 1С

Точных официальных цифр «на N пользователей» нет: нагрузка зависит от конфигурации, объёма документов и доработок. Практические ориентиры для типовых БП, ЗУП и УТ такие.

ПользователейПроцессорПамятьДискиСхема
5–154 ядра с высокой частотой16 ГБSSD/NVMeСервер 1С и СУБД на одной машине
15–406–8 ядер32 ГБNVMe, отдельный том под базыМожно на одной, лучше разнести
40–1008–16 ядер64 ГБ и большеNVMe в RAIDОтдельные серверы 1С и СУБД

На что смотреть в первую очередь:

  1. Частота ядра. Большая часть кода 1С выполняется в одном потоке, поэтому 8 быстрых ядер полезнее 32 медленных.
  2. Диски. Под файлы СУБД — только SSD или NVMe. HDD даёт главные тормоза при проведении.
  3. Память. СУБД кэширует данные в ОЗУ. Если база 40 ГБ, а на сервере 16 ГБ, кэш постоянно вымывается.
  4. Сеть. Между сервером 1С и СУБД — минимум 1 Гбит/с, лучше на одной машине или в одной стойке.

Операционная система

Сервер 1С 8.3 работает на 64-битной Windows Server (2016 и новее) и на Linux. Для Linux поддерживаются дистрибутивы на базе deb и rpm. Отечественные ОС из реестра тоже подходят, это актуально для госзаказчиков.

Какую СУБД выбрать

  • 🐘 PostgreSQL — бесплатна. Фирма 1С выпускает собственные сборки с доработками под платформу, есть сборки Postgres Pro. Для малого и среднего бизнеса это основной вариант.
  • 🪟 Microsoft SQL Server — классика для 1С на Windows. Бесплатная редакция Express ограничена по размеру базы и ресурсам, для рабочих баз нужна платная редакция.
  • 🏢 IBM Db2, Oracle Database — встречаются в крупных компаниях, в малом бизнесе почти не используются.

Версия СУБД должна поддерживаться вашей версией платформы. Перед установкой сверьтесь со списком поддерживаемых версий в документации к платформе, иначе база не создастся или будет работать нестабильно.

Установка сервера 1С и создание первой базы

Порядок для Windows. На Linux логика та же, меняются только команды установки пакетов.

1. Установите СУБД

Поставьте PostgreSQL или SQL Server на ту же или отдельную машину. Создайте пользователя СУБД, от имени которого сервер 1С будет создавать базы: postgres в PostgreSQL или учётную запись с правами на создание баз в SQL Server.

Для SQL Server сразу ограничьте максимальный объём памяти, если на машине стоит ещё и сервер 1С. Иначе СУБД заберёт почти всю ОЗУ и рабочим процессам 1С не хватит места.

2. Установите платформу с компонентом сервера

Скачайте дистрибутив «Технологическая платформа 1С:Предприятия (64-bit) для Windows» нужной версии. В мастере установки отметьте компоненты:

  • Сервер 1С:Предприятия 8;
  • Администрирование сервера 1С:Предприятия;
  • клиентские компоненты — по желанию, если на сервере кто-то будет запускать базу.

Мастер предложит установить сервер как службу Windows и создать пользователя USR1CV8. Соглашайтесь: служба будет стартовать вместе с ОС без входа в систему.

3. Зарегистрируйте консоль администрирования

Это шаг, который чаще всего пропускают. Консоль администрирования — оснастка MMC, и для её работы нужна зарегистрированная библиотека radmin.dll той же версии, что и сервер. В меню «Пуск» в папке платформы есть ярлык регистрации утилиты администрирования. Запустите его от имени администратора.

Вручную то же самое делается командой:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

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

4. Создайте информационную базу

Проще всего сделать это из окна запуска 1С:

  1. Нажмите Добавить → Создание новой информационной базы.
  2. Выберите пустую базу или базу из шаблона.
  3. Тип расположения — На сервере 1С:Предприятия.
  4. Заполните поля: кластер серверов (имя машины), имя базы в кластере, тип СУБД, сервер баз данных, имя базы данных, пользователь и пароль СУБД.
  5. Отметьте Создать базу данных в случае ее отсутствия.
  6. Флажок Разрешить выдачу лицензий сервером 1С:Предприятия ставьте, если лицензии будут храниться на сервере.

5. Перенесите существующую файловую базу

  1. Откройте файловую базу в Конфигураторе.
  2. Администрирование → Выгрузить информационную базу — получите файл .dt.
  3. Откройте в Конфигураторе новую серверную базу .
  4. Администрирование → Загрузить информационную базу и укажите файл .dt.

Загрузка .dt полностью заменяет данные в базе-приёмнике. Проверяйте, в какую базу вы загружаете, особенно если в кластере их несколько.

Лицензии для серверной версии

Серверная 1С требует два вида лицензий, и путаница между ними — частая причина ошибок «не обнаружена лицензия».

  • 🖥 Лицензия на сервер — одна на каждый рабочий сервер кластера. Есть варианты для 64-битного сервера и редакция КОРП с расширенными возможностями: отказоустойчивый кластер, тонкая настройка распределения нагрузки, расширенные средства администрирования.
  • 👤 Клиентские лицензии — по числу одновременных подключений. Это те же лицензии, что и для файловой версии: на 1, 5, 10, 20, 50, 100 мест и т. д.

Клиентские лицензии можно активировать на сервере 1С и выдавать оттуда. Тогда не важно, с какого компьютера человек входит: учитываются только одновременные сеансы.

Ориентиры по цене: лицензия на 64-битный сервер стоит примерно 90–110 тыс. руб., редакция КОРП — в несколько раз дороже. Точную цену уточняйте у партнёра 1С, она меняется.

Программная лицензия привязывается к параметрам оборудования. Замена материнской платы, сетевой карты или перенос виртуальной машины на другой хост могут её «слететь». Пин-коды и регистрационные данные храните отдельно — без них повторную активацию не пройти.

Мониторинг и диагностика: где искать причину тормозов

Консоль администрирования

Запустите оснастку «Администрирование серверов 1С Предприятия», добавьте центральный сервер и раскройте кластер. Что смотреть:

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

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

Утилита rac

Для скриптов и Linux есть консольная утилита rac. Она работает через службу ras (сервер администрирования), её нужно запустить отдельно. Базовые команды:

rac cluster list
rac session list --cluster=<uuid-кластера>
rac session list --cluster=<uuid-кластера> --licenses

Остальные параметры смотрите в справке rac help.

Технологический журнал

Самый подробный инструмент диагностики. Включается файлом logcfg.xml в каталоге conf платформы. В нём задают, какие события писать: длительные запросы, взаимоблокировки, исключения. Журнал быстро растёт, поэтому включайте его на время расследования и ограничивайте срок хранения.

Частые проблемы

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

Резервные копии и защита серверной базы

Копирование средствами СУБД

Выгрузка .dt для серверной базы — запасной вариант, а не основной. Она требует монопольного доступа и на больших базах идёт долго.

Основной способ — штатные средства СУБД:

  • в SQL Server — план обслуживания с полной копией раз в сутки и копиями журнала транзакций в течение дня;
  • в PostgreSQL — pg_dump по расписанию или физическое копирование с архивом WAL для восстановления на момент времени.

Копии хранятся на другом диске и ещё раз — вне сервера. Раз в месяц пробуйте развернуть копию в тестовую базу: копия, которую ни разу не восстанавливали, может оказаться нерабочей.

Администратор кластера

Сразу после установки у кластера нет администратора. Любой, кто установит консоль и знает имя сервера, может удалить базу из кластера или завершить сеансы.

Что сделать:

  1. В консоли создайте администратора центрального сервера (агента).
  2. В свойствах кластера создайте администратора кластера.
  3. Для каждой базы задайте пароль пользователя СУБД, а не храните учётку с полными правами без пароля.

Пароли администраторов храните в менеджере паролей. Если пароль администратора кластера потерян, без доступа к резервной копии каталога srvinfo восстановить управление сложно — обращайтесь к администратору сервера.

Плановые работы

Для обновления конфигурации или регламентных операций в свойствах базы в консоли включают блокировку начала сеансов с сообщением и кодом разрешения. Пользователи увидят предупреждение, а администратор войдёт с кодом и спокойно обновит базу.

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

Можно ли поставить сервер 1С на обычный компьютер, а не на серверное железо?
Можно, если он работает круглосуточно, стоит на SSD и подключён к ИБП. Для 5–10 пользователей этого хватает, но домашняя ОС Windows для службы сервера подходит хуже серверной.
Нужна ли платная СУБД?
Нет. PostgreSQL бесплатен и закрывает задачи большинства компаний. Платная лицензия нужна только для Microsoft SQL Server выше редакции Express.
Работает ли серверная 1С без интернета?
Да. Интернет нужен для активации программных лицензий, интернет-поддержки и обновлений. Сама работа с базой идёт по локальной сети.
Можно ли держать файловые и серверные базы одновременно?
Да. В окне запуска у пользователя могут быть и те и другие. Клиентская лицензия одна и та же.
Как подключиться к серверной базе из дома?
Через VPN к сети офиса, через терминальный сервер или через публикацию базы на веб-сервере для веб-клиента и тонкого клиента по HTTP. Открывать порты 1540–1591 наружу без VPN не стоит.