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

· 10 мин

Содержание

Серверная база данных 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 ServerWindows-инфраструктура, привычные инструментыЛицензия SQL Server платная; Express ограничен по размеру базы и памяти
PostgreSQLLinux или Windows, экономия на лицензияхНужна сборка с патчами под 1С: от фирмы 1С или Postgres Pro, «ванильная» не подходит
IBM Db2, OracleКрупные компании, где эти СУБД уже естьРедко встречаются, мало специалистов

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

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

  1. Пользователей больше 5–10 одновременно, и все жалуются на зависания при проведении и формировании отчётов.
  2. Ошибки блокировок: Конфликт блокировок при выполнении транзакции или долгие «замирания», пока коллега проводит документ.
  3. Файл базы перерос десятки гигабайт, и открытие, тестирование, выгрузка занимают часы.
  4. Файл повреждается: после сбоя сети или питания приходится запускать chdbfl.exe или «Тестирование и исправление».
  5. Нужен удалённый доступ через тонкий или веб-клиент для филиалов, а файловая база по VPN работает медленно.

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

Развёртывание серверной базы 1С по шагам

Перед стартом проверьте:

Что подготовить до установки
Выполнено: 0 / 6

Шаг 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С на любом клиенте:

  1. Нажмите Добавить → Создание новой информационной базы.
  2. Выберите «Создание информационной базы без конфигурации» (если будете загружать .dt) или из шаблона.
  3. Тип расположения — На сервере 1С:Предприятия.
  4. Заполните поля:
    • Кластер серверов 1С:Предприятия — сетевое имя сервера, не localhost;
    • Имя информационной базы в кластере — латиницей, например buh;
    • Тип СУБД, Сервер баз данных, Имя базы данных, Пользователь и Пароль СУБД;
    • Смещение дат — для MS SQL оставьте 2000;
    • отметьте «Создать базу данных в случае ее отсутствия».
  5. Нажмите Далее и Готово. Платформа сама создаст пустую базу в СУБД.

Строка подключения для ярлыка или скриптов выглядит так:

Srvr="srv1c";Ref="buh";

А запуск из командной строки — 1cv8.exe ENTERPRISE /S srv1c\buh.

Шаг 5. Перенесите данные из файловой базы

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

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

Шаг 6. Проверьте лицензии и подключите пользователей

Лицензию на сервер активируйте на машине, где стоит сервер 1С. Клиентские лицензии можно оставить на компьютерах или перенести на сервер: в свойствах базы в кластере есть флажок «Разрешить выдачу лицензий сервером 1С:Предприятия». Затем добавьте базу пользователям в список (по ссылке на сервер или общим файлом списка баз .v8i).

Лицензия ПРОФ на сервер подходит для типичной небольшой компании. Отказоустойчивый кластер и расширенное управление ресурсами доступны только с лицензией КОРП.

Как ускорить серверную базу 1С: семь настроек

Сервер сам по себе не гарантирует скорость. Медленная серверная база почти всегда упирается в одно из перечисленного.

  1. Диски. Файлы данных и журнала СУБД — на SSD или NVMe. Это даёт больше, чем любые другие настройки.
  2. Память СУБД. У MS SQL ограничьте max server memory, оставив память системе и процессам 1С. В PostgreSQL настройте shared_buffers и effective_cache_size под объём ОЗУ сервера, а не по умолчанию.
  3. Обслуживание индексов и статистики. В MS SQL — план обслуживания с обновлением статистики ежедневно и перестроением индексов раз в неделю. В PostgreSQL — VACUUM ANALYZE по расписанию, если автоочистка не справляется.
  4. Режим блокировок. Современные типовые конфигурации работают в управляемом режиме блокировок. Если у вас старая доработанная конфигурация в автоматическом режиме, перевод на управляемый резко снижает конфликты.
  5. Память рабочих процессов. В свойствах кластера задайте допустимый объём памяти и интервал перезапуска процессов: так «распухший» rphost не съест всю ОЗУ сервера.
  6. Сеть между 1С и СУБД. Если они на разных машинах — гигабитная сеть и минимум промежуточных устройств. Лучше всего держать их в одной стойке или на одном хосте.
  7. Тонкий клиент вместо толстого. Толстый клиент тянет больше данных и нагружает сеть. Для обычных пользователей хватает тонкого.

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

Защита серверной базы 1С: доступы, копии, сбои

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

Доступ к кластеру и СУБД

  • 🔐 Создайте администратора кластера в консоли. Пока его нет, любой пользователь сети может открыть консоль, завершить сеансы или удалить базу из кластера.
  • 🔐 Задайте администратора информационной базы в свойствах базы в кластере.
  • 🧱 Закройте порты брандмауэром: снаружи доступны только 1540, 1541 и диапазон рабочих процессов, и только для своей сети. Порт СУБД (1433 у MS SQL, 5432 у PostgreSQL) открывать клиентам не нужно.
  • 👤 Отдельный пользователь СУБД для 1С с правами только на свои базы, а не учётка администратора.

Резервное копирование

Делайте копии средствами СУБД: полный бэкап MS SQL или pg_dump для PostgreSQL. Их можно снимать, не выгоняя пользователей. Выгрузку .dt оставьте как дополнительную копию раз в неделю или перед обновлением: для неё нужен монопольный доступ.

Храните копии не на том же диске, где лежит база. Сломается диск — пропадут и данные, и бэкапы.

Раз в месяц проверяйте копию: разверните её в тестовую базу и откройте. Непроверенный бэкап может оказаться битым именно в тот день, когда понадобится.

Сбои и отказоустойчивость

Для небольшой компании достаточно ИБП на сервер, RAID-массива и ежедневных копий. Резервирование сервера 1С (второй центральный сервер в кластере) настраивается в свойствах рабочего сервера и требует лицензии КОРП.

Ошибки, которые чаще всего ломают серверную базу

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

Отдельно о перезапуске. Иногда советуют «просто перезапустить службу агента». Это работает, но все пользователи потеряют несохранённые данные и будут отключены. Перезапускайте сервер 1С только в нерабочее время или после предупреждения всех, кто в базе. Перед перезапуском посмотрите список сеансов в консоли.

Частые вопросы о серверной базе 1С

Можно ли поставить сервер 1С и СУБД на обычный офисный компьютер?
Технически да, но надёжность будет как у офисного ПК. Для рабочей базы нужен выделенный сервер с SSD, ИБП и резервными копиями.
Нужна ли лицензия на сервер, если пользователей всего пять?
Да. Любая база на сервере 1С:Предприятия требует лицензии на сервер, независимо от числа пользователей. Клиентские лицензии нужны дополнительно.
Сколько памяти нужно серверу 1С?
Ориентировочно для 10–20 пользователей и базы в несколько десятков гигабайт — 16–32 ГБ ОЗУ на сервер с 1С и СУБД. Точнее покажет нагрузка: смотрите потребление памяти процессами rphost и СУБД.
Можно ли вернуть серверную базу обратно в файловую?
Да. Выгрузите серверную базу в .dt, создайте пустую файловую и загрузите в неё выгрузку. Конфигурация и данные перенесутся полностью.
Где физически лежат данные серверной базы?
В файлах СУБД: у MS SQL — в файлах .mdf и .ldf, у PostgreSQL — в каталоге данных кластера СУБД. Копировать эти файлы вручную на работающем сервере нельзя, копии делают средствами СУБД.