Клиент-серверная база 1С 8.3 с нуля: сервер, СУБД, кластер и первый запуск

· 10 мин

Содержание

Базу клиент-сервер в 1С 8.3 создают в два хода. Сначала ставят сервер 1С:Предприятия и СУБД (Microsoft SQL Server или PostgreSQL в сборке для 1С). Затем регистрируют информационную базу в кластере: через консоль администрирования (Информационные базы → Создать → Информационная база) или прямо из окна запуска 1С кнопкой Добавить с вариантом «На сервере 1С:Предприятия».

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

Что подготовить до создания базы

Клиент-серверный вариант — это три отдельных слоя. Пользователь работает в клиенте, клиент обращается к серверу 1С, сервер 1С хранит данные в СУБД. Каждый слой нужно поставить и проверить заранее.

КомпонентЧто ставимКомментарий
Сервер 1С«Сервер 1С:Предприятия 8 (x86-64)» из дистрибутива платформыОдин номер версии с клиентами
Консоль«Администрирование сервера 1С:Предприятия»Ставится тем же установщиком
СУБДMS SQL Server или PostgreSQL для 1СМожно на той же машине или отдельно
ЛицензииЛицензия на сервер (ПРОФ или КОРП) + клиентскиеБез серверной лицензии база не запустится

Что проверить до установки:

  • 🖥️ Windows Server 2016 или новее, 64-битный.
  • 🔢 Номер версии платформы на сервере и у всех клиентов совпадает до последней цифры. Клиент 8.3.24 к серверу 8.3.25 не подключится.
  • 🌐 Имя сервера разрешается с рабочих мест по DNS. Если DNS нет, пропишите имя в C:\Windows\System32\drivers\etc\hosts на каждом клиенте.
  • 💾 Для файлов СУБД — отдельный быстрый диск (SSD), не системный.

Для PostgreSQL используйте только сборки с патчами для 1С (например, Postgres Pro для 1С или сборку PostgreSQL, которую распространяет фирма 1С). Обычный PostgreSQL из репозитория дистрибутива с платформой работает плохо или не работает.

Установка сервера 1С и запуск кластера

Шаг 1. Ставим сервер как службу

  1. Запустите setup.exe из полного дистрибутива платформы (не из дистрибутива тонкого клиента ).
  2. В списке компонентов включите «Сервер 1С:Предприятия 8 (x86-64)» и «Администрирование сервера 1С:Предприятия».
  3. На шаге параметров отметьте «Установить 1С:Предприятие 8 как сервис Windows ».
  4. Укажите пользователя службы. По умолчанию установщик создаёт локального пользователя USR1CV8 — для одного сервера этого достаточно.

После установки в списке служб появится «Агент сервера 1С:Предприятия 8.3 (x86-64)». Проверьте, что он в состоянии «Выполняется» и тип запуска — «Автоматически».

При первом старте агент сам создаёт кластер с именем «Локальный кластер». Служебные файлы кластера лежат в каталоге srvinfo, по умолчанию C:\Program Files\1cv8\srvinfo. У пользователя службы должны быть полные права на эту папку.

Шаг 2. Регистрируем консоль

Консоль администрирования — оснастка MMC. Чтобы она открылась, библиотеку radmin.dll той же версии, что и сервер, нужно зарегистрировать. Командная строка от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.25.1394\bin\radmin.dll"

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

Шаг 3. Подключаем центральный сервер в консоли

  1. Откройте «Администрирование серверов 1С Предприятия» из меню «Пуск».
  2. Правой кнопкой по корню «Central 1C:Enterprise 8.3 servers» → Создать → Центральный сервер 1С:Предприятия 8.3.
  3. Имя — сетевое имя машины с сервером (localhost подходит только для работы с самого сервера), IP-порт — 1540.
  4. Раскройте сервер → «Кластеры». Там уже есть «Локальный кластер» с портом 1541.

Шаг 4. Открываем порты

ПортКто слушаетЗачем
1540Агент сервераПервое обращение клиента и консоли
1541Менеджер кластераРаспределение соединений
1560–1591Рабочие процессыРабота пользователей с базой
1545Сервер администрирования rasНужен только для rac и сторонних консолей

Диапазон рабочих процессов задаётся в свойствах рабочего сервера («Кластеры → Локальный кластер → Рабочие серверы → свойства»). Если поменяли диапазон — поменяйте и правило брандмауэра.

Подготовка MS SQL Server или PostgreSQL под базу 1С

Саму базу данных в СУБД заранее создавать не обязательно. Сервер 1С создаст её сам, если при регистрации отметить флажок «Создать базу данных в случае её отсутствия». Но пользователь СУБД, под которым 1С подключается, должен иметь на это права.

Microsoft SQL Server

  • 🔤 Параметры сортировки сервера при установке — Cyrillic_General_CI_AS.
  • 👤 Создайте отдельный SQL-логин для 1С (проверка подлинности SQL Server). Дайте ему серверную роль dbcreator: так он сможет создать базу и станет её владельцем.
  • 🧠 Ограничьте «Максимальный размер памяти сервера» в свойствах экземпляра. Если SQL и 1С стоят на одной машине, оставьте оперативную память рабочим процессам 1С. Например, при 64 ГБ отдайте SQL около 40 ГБ.
  • 📉 Модель восстановления. «Полная» нужна, только если вы реально делаете бэкапы журнала транзакций. Иначе журнал разрастается до размера диска — для небольших компаний ставят «Простую».

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

PostgreSQL для 1С

  • Порт по умолчанию — 5432, его тоже откройте, если СУБД на отдельной машине.
  • Кластер базы инициализируйте с локалью ru_RU.UTF-8.
  • Для 1С заведите отдельную роль с правом создавать базы, а не работайте под postgres.
  • В pg_hba.conf разрешите подключение с адреса сервера 1С.

Регистрация базы в кластере: два способа

Способ 1. Через консоль кластера

  1. В консоли раскройте «Локальный кластер» → правой кнопкой по «Информационные базы» → Создать → Информационная база.
  2. Заполните поля:
ПолеЧто указать
ИмяИмя базы в кластере, его вводят пользователи. Например, buh_ooo_romashka
Сервер баз данныхИмя сервера СУБД; для именованного экземпляра MS SQL — SERVER\INSTANCE
Тип СУБДMS SQL Server или PostgreSQL
База данныхИмя базы в самой СУБД
Пользователь / пароль сервера БДЛогин, созданный для 1С
Разрешить выдачу лицензий сервером 1С:Предприятия«Да», если лицензии стоят на сервере
Смещение дат2000 для MS SQL Server; для PostgreSQL — 0
Создать базу данных в случае её отсутствияОтметить
Установить блокировку регламентных заданийОтметить для копии рабочей базы
  1. Нажмите «ОК». Сервер 1С подключится к СУБД и создаст пустую базу.

Смещение дат после создания базы не меняется. Чтобы его исправить, придётся выгрузить базу в .dt и загрузить в новую.

Способ 2. Из окна запуска 1С

  1. На рабочем месте или прямо на сервере откройте окно запуска → Добавить → «Создание новой информационной базы».
  2. Выберите шаблон типовой конфигурации или «Создание информационной базы без конфигурации».
  3. Укажите вариант «На сервере 1С:Предприятия».
  4. Заполните те же поля: кластер серверов (имя машины с сервером 1С), имя базы в кластере, тип СУБД, сервер баз данных, имя базы данных, пользователь и пароль, смещение дат. Отметьте создание базы при её отсутствии.

Способ 2 удобен тем, что база сразу регистрируется в списке окна запуска, а из шаблона загружается конфигурация.

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

Заполнение базы и первый запуск в режиме предприятия

Пустая база без конфигурации бесполезна. Есть три способа её наполнить.

Исходные данныеЧто делать в Конфигураторе
Новая чистая база из типовойСоздать из шаблона (способ 2 выше)
Перенос файловой базыАдминистрирование → Загрузить информационную базу, указать .dt
Только конфигурация .cfКонфигурация → Загрузить конфигурацию из файла, затем Конфигурация → Обновить конфигурацию базы данных (F7)

Перенос с файловой базы на сервер — самый частый сценарий. Порядок такой:

  1. Откройте старую файловую базу в Конфигураторе.
  2. Администрирование → Выгрузить информационную базу — получите файл .dt. Выгрузка требует, чтобы все пользователи вышли из базы.
  3. Откройте новую серверную базу в Конфигураторе. Пользователей в ней ещё нет, вход без пароля.
  4. Администрирование → Загрузить информационную базу → выберите .dt.
  5. Запустите базу в режиме «1С:Предприятие». Типовая конфигурация может запустить обработку обновления данных — дождитесь её окончания.

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

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

Srvr="srv1c01";Ref="buh_ooo_romashka";

Её можно разослать пользователям или раздать списком баз через общий файл .v8i.

Права доступа: кластер, СУБД и пользователи базы

В клиент-серверном варианте три уровня учётных записей. Их легко перепутать.

  1. Администраторы кластера. Пока список пуст, управлять кластером может любой, кто откроет консоль. Добавьте администратора: «Локальный кластер» → «Администраторы» → Создать. После этого консоль будет запрашивать логин и пароль.
  2. Пользователь СУБД. Логин, под которым сервер 1С ходит в SQL или PostgreSQL. Пользователи 1С его не знают и не вводят.
  3. Пользователи информационной базы. Их заводят внутри конфигурации: в Конфигураторе Администрирование → Пользователи или в режиме предприятия. В Бухгалтерии 3.0 и ЗУП 3.1 путь — Администрирование → Настройки пользователей и прав → Пользователи.

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

Для пользователей домена включите «Аутентификацию операционной системы» в карточке пользователя и укажите учётную запись в формате \\DOMAIN\ivanov. Тогда сотрудник открывает базу без ввода пароля 1С.

Если забыли пароль администратора кластера, не пересоздавайте кластер. Остановите службу агента (предупредите пользователей: все сеансы оборвутся), восстановите файл реестра кластера 1CV8Clst.lst из каталога srvinfo\reg_1541 из резервной копии и запустите службу снова.

Производительность и контроль работы сервера

Клиент-серверная база сама себя не обслуживает. Без регламента через полгода запросы начинают тормозить.

Регламент на стороне СУБД

  • 📊 Обновление статистики — ежедневно, ночью.
  • 🧱 Перестроение или реорганизация индексов — раз в неделю.
  • 💾 Полная резервная копия средствами СУБД — каждую ночь, с проверкой восстановления раз в месяц.

В MS SQL Server это настраивают планом обслуживания. В PostgreSQL — vacuum и analyze по расписанию: автовакуум включён, но на больших базах его не хватает.

Что смотреть в консоли кластера

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

Те же данные доступны из командной строки через утилиту rac. Для неё должна быть запущена служба ras:

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

UUID кластера берут из вывода первой команды. Остальные параметры смотрите в rac help.

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

Для разбора медленных запросов и взаимоблокировок включают технологический журнал. Его настраивают файлом logcfg.xml в каталоге C:\Program Files\1cv8\conf. Пишите только нужные события (например, длинные запросы и исключения) и ограничьте срок хранения. Полный журнал без фильтров за сутки забивает диск.

Перед тем как пустить пользователей в новую базу
Выполнено: 0 / 7

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

Можно ли поставить сервер 1С и СУБД на разные компьютеры?
Да. В поле «Сервер баз данных» укажите имя машины с СУБД. Между ними нужна быстрая сеть и открытый порт СУБД: 1433 для MS SQL Server, 5432 для PostgreSQL.
Подойдёт ли бесплатная редакция MS SQL Server Express?
Технически база заработает. Но у Express ограничение 10 ГБ на одну базу данных и лимит по памяти и ядрам. Для учёта одной небольшой компании на старте хватит, для роста — нет.
Сколько баз можно создать в одном кластере?
Жёсткого лимита на число баз нет. Ограничивают ресурсы сервера и лицензии: клиентские лицензии расходуются на сеансы, а не на базы.
Чем имя базы в кластере отличается от имени базы в СУБД?
Имя в кластере вводят пользователи в строке подключения. Имя в СУБД видит только администратор SQL. Они могут совпадать, но это разные параметры.
Как сделать тестовую копию серверной базы?
Создайте в кластере новую базу с другим именем и загрузите в неё .dt рабочей базы. Сразу включите блокировку регламентных заданий, чтобы копия не отправляла обмены и почту от имени рабочей.