Как устроена клиент-серверная база 1С и когда переходить на неё с файловой
Содержание
Серверная база данных 1С — это информационная база, данные которой хранит отдельная СУБД (Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle), а работу пользователей обслуживает сервер 1С:Предприятия. Пользователь не открывает файл 1Cv8.1CD по сети, как в файловом варианте: его клиент отправляет запросы серверу 1С, тот обращается к СУБД и возвращает готовый результат. Поэтому серверная база держит десятки и сотни одновременных пользователей, не «рассыпается» при обрыве сети и масштабируется добавлением оборудования.
Цена за это — отдельная лицензия на сервер, СУБД, которую кто-то должен обслуживать, и чуть более сложная схема подключения. Ниже по шагам: как это устроено, когда переходить, как развернуть и что настроить, чтобы база работала быстро и надёжно. Всё относится к платформе 8.3 и не зависит от конфигурации: БП, ЗУП, УТ и ERP разворачиваются одинаково.
Чем серверная база 1С отличается от файловой
В файловом варианте вся база — один файл 1Cv8.1CD в папке на диске. Каждый компьютер читает и пишет его напрямую по сети. Отсюда типичные беды: блокировки при одновременной работе, медленное открытие отчётов по сети и риск повредить файл при обрыве связи.
В клиент-серверном варианте файла базы нет. Таблицы лежат в СУБД, а клиент 1С общается только с сервером 1С.
| Параметр | Файловая база | Серверная база |
|---|---|---|
| Где хранятся данные | Файл 1Cv8.1CD | Таблицы в СУБД |
| Комфортное число пользователей | До 5–10 одновременно | Десятки и сотни |
| Обрыв сети у одного клиента | Может повредить файл | Сеанс просто отключается |
| Блокировки | На уровне таблиц | Управляемые, на уровне записей |
| Резервное копирование | Копия файла или .dt | Средства СУБД + .dt, без остановки работы |
| Лицензии | Только клиентские | Клиентские + лицензия на сервер 1С |
| Обслуживание | Почти не нужно | Нужен администратор СУБД и сервера |
💡 Конфигурация в обоих вариантах одна и та же. Перевести базу из файловой в серверную и обратно можно выгрузкой в .dt без потери данных и доработок.
Как работает серверная база данных 1С изнутри
Сервер 1С:Предприятия — не одна программа, а несколько процессов, объединённых в кластер. Схема на один сервер выглядит так:
- 🖥 Агент сервера
ragent— точка входа, слушает порт 1540. Через него подключаются клиенты и консоль администрирования. - 🗂 Менеджер кластера
rmngr— порт 1541. Хранит список баз кластера, распределяет сеансы, следит за рабочими процессами. - ⚙️ Рабочие процессы
rphost— выполняют код конфигурации и запросы к СУБД. Используют диапазон портов, по умолчанию1560:1591. Диапазон задают в свойствах рабочего сервера. - 🗄 СУБД — отдельная служба (часто на том же сервере, в крупных внедрениях — на отдельном). С ней общаются только рабочие процессы, клиенты к ней напрямую не ходят.
Путь запроса: клиент → агент (1540) → менеджер кластера (1541) → назначенный рабочий процесс → СУБД → обратно клиенту уже результат, а не сырые таблицы. Именно поэтому тонкий клиент и веб-клиент в серверном варианте работают быстро даже по слабому каналу.
Сервер устанавливается как служба Windows («Агент сервера 1С:Предприятия 8.3») или демон в Linux. Служба запускается от отдельного пользователя, по умолчанию USR1CV8.
Какую СУБД выбрать
| СУБД | Когда подходит | Что учесть |
|---|---|---|
| Microsoft SQL Server | Windows-инфраструктура, привычные инструменты | Лицензия SQL Server платная; Express ограничен по размеру базы и памяти |
| PostgreSQL | Linux или Windows, экономия на лицензиях | Нужна сборка с патчами под 1С: от фирмы 1С или Postgres Pro, «ванильная» не подходит |
| IBM Db2, Oracle | Крупные компании, где эти СУБД уже есть | Редко встречаются, мало специалистов |
Для небольшой компании, которая только уходит с файловой базы, чаще всего выбирают PostgreSQL: бесплатно и хорошо работает с типовыми конфигурациями.
Когда пора переводить базу 1С на сервер: пять признаков
- Пользователей больше 5–10 одновременно, и все жалуются на зависания при проведении и формировании отчётов.
- Ошибки блокировок:
Конфликт блокировок при выполнении транзакцииили долгие «замирания», пока коллега проводит документ. - Файл базы перерос десятки гигабайт, и открытие, тестирование, выгрузка занимают часы.
- Файл повреждается: после сбоя сети или питания приходится запускать
chdbfl.exeили «Тестирование и исправление». - Нужен удалённый доступ через тонкий или веб-клиент для филиалов, а файловая база по VPN работает медленно.
Если совпадают два признака и больше — переход окупится. Если пользователей трое и база небольшая, файлового варианта достаточно: сервер добавит расходов и забот, а скорость почти не изменится.
Развёртывание серверной базы 1С по шагам
Перед стартом проверьте:
Шаг 1. Установите СУБД
Поставьте выбранную СУБД и задайте пароль администратора. Для PostgreSQL сразу обратите внимание на кодировку и локаль кластера: установщики сборок под 1С по умолчанию выставляют подходящие. Для MS SQL создайте отдельную SQL-учётку для 1С, не работайте под sa.
Шаг 2. Установите сервер 1С:Предприятия
Запустите установщик платформы и отметьте компоненты «Сервер 1С:Предприятия» и «Модули расширения веб-сервера» (если нужен веб-клиент). Отметьте установку сервера как службы. Номер версии сервера должен точно совпадать с версией клиентов, иначе подключиться не получится.
Шаг 3. Зарегистрируйте консоль администрирования
Консоль «Администрирование серверов 1С Предприятия» ставится вместе с сервером, но часто не открывается с ошибкой о невозможности создать оснастку. Лечится регистрацией библиотеки от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
Подставьте свою версию в путь. Регистрировать нужно radmin.dll той же версии, что и запущенный сервер.
Шаг 4. Создайте информационную базу
Проще всего — прямо из окна запуска 1С на любом клиенте:
- Нажмите
Добавить→Создание новой информационной базы. - Выберите «Создание информационной базы без конфигурации» (если будете загружать .dt) или из шаблона.
- Тип расположения —
На сервере 1С:Предприятия. - Заполните поля:
- Кластер серверов
1С:Предприятия — сетевое имя сервера, не
localhost; - Имя информационной базы в кластере — латиницей, например
buh; - Тип СУБД, Сервер баз данных, Имя базы данных, Пользователь и Пароль СУБД;
- Смещение дат — для MS SQL оставьте
2000; - отметьте «Создать базу данных в случае ее отсутствия».
- Кластер серверов
1С:Предприятия — сетевое имя сервера, не
- Нажмите
ДалееиГотово. Платформа сама создаст пустую базу в СУБД.
Строка подключения для ярлыка или скриптов выглядит так:
Srvr="srv1c";Ref="buh";
А запуск из командной строки — 1cv8.exe ENTERPRISE /S srv1c\buh.
Шаг 5. Перенесите данные из файловой базы
- Откройте файловую базу в Конфигураторе.
Администрирование → Выгрузить информационную базу— сохраните файл.dt.- Откройте новую серверную базу в Конфигураторе.
Администрирование → Загрузить информационную базуи выберите тот же.dt.
Загрузка заменяет всё содержимое серверной базы: конфигурацию, данные, пользователей. На время выгрузки и загрузки нужен монопольный доступ, поэтому делайте перенос в нерабочее время.
Шаг 6. Проверьте лицензии и подключите пользователей
Лицензию на сервер активируйте на машине, где стоит сервер 1С. Клиентские лицензии можно оставить на компьютерах или перенести на сервер: в свойствах базы в кластере есть флажок «Разрешить выдачу лицензий сервером 1С:Предприятия». Затем добавьте базу пользователям в список (по ссылке на сервер или общим файлом списка баз .v8i).
Лицензия ПРОФ на сервер подходит для типичной небольшой компании. Отказоустойчивый кластер и расширенное управление ресурсами доступны только с лицензией КОРП.
Как ускорить серверную базу 1С: семь настроек
Сервер сам по себе не гарантирует скорость. Медленная серверная база почти всегда упирается в одно из перечисленного.
- Диски. Файлы данных и журнала СУБД — на SSD или NVMe. Это даёт больше, чем любые другие настройки.
- Память СУБД. У MS SQL ограничьте
max server memory, оставив память системе и процессам 1С. В PostgreSQL настройтеshared_buffersиeffective_cache_sizeпод объём ОЗУ сервера, а не по умолчанию. - Обслуживание индексов и статистики. В MS SQL — план обслуживания с обновлением статистики ежедневно и перестроением индексов раз в неделю. В PostgreSQL —
VACUUM ANALYZEпо расписанию, если автоочистка не справляется. - Режим блокировок. Современные типовые конфигурации работают в управляемом режиме блокировок. Если у вас старая доработанная конфигурация в автоматическом режиме, перевод на управляемый резко снижает конфликты.
- Память рабочих процессов. В свойствах кластера задайте допустимый объём памяти и интервал перезапуска процессов: так «распухший»
rphostне съест всю ОЗУ сервера. - Сеть между 1С и СУБД. Если они на разных машинах — гигабитная сеть и минимум промежуточных устройств. Лучше всего держать их в одной стойке или на одном хосте.
- Тонкий клиент вместо толстого. Толстый клиент тянет больше данных и нагружает сеть. Для обычных пользователей хватает тонкого.
Чтобы найти, что именно тормозит, включите технологический журнал (logcfg.xml в каталоге conf платформы) с отбором длинных запросов и ожиданий на блокировках. Журнал быстро растёт, поэтому включайте его на время диагностики и задавайте срок хранения.
Защита серверной базы 1С: доступы, копии, сбои
Серверный вариант надёжнее файлового, но только если его настроить. Сразу после установки кластер открыт любому, кто видит сервер по сети.
Доступ к кластеру и СУБД
- 🔐 Создайте администратора кластера в консоли. Пока его нет, любой пользователь сети может открыть консоль, завершить сеансы или удалить базу из кластера.
- 🔐 Задайте администратора информационной базы в свойствах базы в кластере.
- 🧱 Закройте порты брандмауэром: снаружи доступны только 1540, 1541 и диапазон рабочих процессов, и только для своей сети. Порт СУБД (1433 у MS SQL, 5432 у PostgreSQL) открывать клиентам не нужно.
- 👤 Отдельный пользователь СУБД для 1С с правами только на свои базы, а не учётка администратора.
Резервное копирование
Делайте копии средствами СУБД: полный бэкап MS SQL или pg_dump для PostgreSQL. Их можно снимать, не выгоняя пользователей. Выгрузку .dt оставьте как дополнительную копию раз в неделю или перед обновлением: для неё нужен монопольный доступ.
Храните копии не на том же диске, где лежит база. Сломается диск — пропадут и данные, и бэкапы.
Раз в месяц проверяйте копию: разверните её в тестовую базу и откройте. Непроверенный бэкап может оказаться битым именно в тот день, когда понадобится.
Сбои и отказоустойчивость
Для небольшой компании достаточно ИБП на сервер, RAID-массива и ежедневных копий. Резервирование сервера 1С (второй центральный сервер в кластере) настраивается в свойствах рабочего сервера и требует лицензии КОРП.
Ошибки, которые чаще всего ломают серверную базу
Отдельно о перезапуске. Иногда советуют «просто перезапустить службу агента». Это работает, но все пользователи потеряют несохранённые данные и будут отключены. Перезапускайте сервер 1С только в нерабочее время или после предупреждения всех, кто в базе. Перед перезапуском посмотрите список сеансов в консоли.
Частые вопросы о серверной базе 1С
Можно ли поставить сервер 1С и СУБД на обычный офисный компьютер?
Нужна ли лицензия на сервер, если пользователей всего пять?
Сколько памяти нужно серверу 1С?
rphost и СУБД.Можно ли вернуть серверную базу обратно в файловую?
.dt, создайте пустую файловую и загрузите в неё выгрузку. Конфигурация и данные перенесутся полностью.Где физически лежат данные серверной базы?
.mdf и .ldf, у PostgreSQL — в каталоге данных кластера СУБД. Копировать эти файлы вручную на работающем сервере нельзя, копии делают средствами СУБД.