Клиент-серверная база 1С 8.3 с нуля: сервер, СУБД, кластер и первый запуск
Содержание
Базу клиент-сервер в 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. Ставим сервер как службу
- Запустите
setup.exeиз полного дистрибутива платформы (не из дистрибутива тонкого клиента ). - В списке компонентов включите «Сервер 1С:Предприятия 8 (x86-64)» и «Администрирование сервера 1С:Предприятия».
- На шаге параметров отметьте «Установить 1С:Предприятие 8 как сервис Windows ».
- Укажите пользователя службы. По умолчанию установщик создаёт локального пользователя
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С Предприятия» из меню «Пуск».
- Правой кнопкой по корню «Central 1C:Enterprise 8.3 servers» →
Создать → Центральный сервер 1С:Предприятия 8.3. - Имя — сетевое имя машины с сервером (
localhostподходит только для работы с самого сервера), IP-порт —1540. - Раскройте сервер → «Кластеры». Там уже есть «Локальный кластер» с портом
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. Через консоль кластера
- В консоли раскройте «Локальный кластер» → правой кнопкой по «Информационные базы» →
Создать → Информационная база. - Заполните поля:
| Поле | Что указать |
|---|---|
| Имя | Имя базы в кластере, его вводят пользователи. Например, buh_ooo_romashka |
| Сервер баз данных | Имя сервера СУБД; для именованного экземпляра MS SQL — SERVER\INSTANCE |
| Тип СУБД | MS SQL Server или PostgreSQL |
| База данных | Имя базы в самой СУБД |
| Пользователь / пароль сервера БД | Логин, созданный для 1С |
| Разрешить выдачу лицензий сервером 1С:Предприятия | «Да», если лицензии стоят на сервере |
| Смещение дат | 2000 для MS SQL Server; для PostgreSQL — 0 |
| Создать базу данных в случае её отсутствия | Отметить |
| Установить блокировку регламентных заданий | Отметить для копии рабочей базы |
- Нажмите «ОК». Сервер 1С подключится к СУБД и создаст пустую базу.
Смещение дат после создания базы не меняется. Чтобы его исправить, придётся выгрузить базу
в .dt и загрузить в новую.
Способ 2. Из окна запуска 1С
- На рабочем месте или прямо на сервере откройте окно запуска →
Добавить→ «Создание новой информационной базы». - Выберите шаблон типовой конфигурации или «Создание информационной базы без конфигурации».
- Укажите вариант «На сервере 1С:Предприятия».
- Заполните те же поля: кластер серверов (имя машины с сервером 1С), имя базы в кластере, тип СУБД, сервер баз данных, имя базы данных, пользователь и пароль, смещение дат. Отметьте создание базы при её отсутствии.
Способ 2 удобен тем, что база сразу регистрируется в списке окна запуска, а из шаблона загружается конфигурация.
Заполнение базы и первый запуск в режиме предприятия
Пустая база без конфигурации бесполезна. Есть три способа её наполнить.
| Исходные данные | Что делать в Конфигураторе |
|---|---|
| Новая чистая база из типовой | Создать из шаблона (способ 2 выше) |
| Перенос файловой базы | Администрирование → Загрузить информационную базу, указать .dt |
Только конфигурация .cf | Конфигурация → Загрузить конфигурацию из файла, затем Конфигурация → Обновить конфигурацию базы данных (F7) |
Перенос с файловой базы на сервер — самый частый сценарий. Порядок такой:
- Откройте старую файловую базу в Конфигураторе.
Администрирование → Выгрузить информационную базу— получите файл.dt. Выгрузка требует, чтобы все пользователи вышли из базы.- Откройте новую серверную базу в Конфигураторе. Пользователей в ней ещё нет, вход без пароля.
Администрирование → Загрузить информационную базу→ выберите.dt.- Запустите базу в режиме «1С:Предприятие». Типовая конфигурация может запустить обработку обновления данных — дождитесь её окончания.
Загрузка .dt полностью заменяет содержимое базы. Не перепутайте базу в списке, особенно если рядом зарегистрирована рабочая.
Строка подключения клиент-серверной базы выглядит так:
Srvr="srv1c01";Ref="buh_ooo_romashka";
Её можно разослать пользователям или раздать списком баз через общий файл .v8i.
Права доступа: кластер, СУБД и пользователи базы
В клиент-серверном варианте три уровня учётных записей. Их легко перепутать.
- Администраторы кластера. Пока список пуст, управлять кластером может любой, кто откроет консоль. Добавьте администратора: «Локальный кластер» → «Администраторы» →
Создать. После этого консоль будет запрашивать логин и пароль. - Пользователь СУБД. Логин, под которым сервер 1С ходит в SQL или PostgreSQL. Пользователи 1С его не знают и не вводят.
- Пользователи информационной базы. Их заводят внутри конфигурации: в Конфигураторе
Администрирование → Пользователиили в режиме предприятия. В Бухгалтерии 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. Пишите только нужные события (например, длинные запросы и исключения) и ограничьте срок хранения. Полный журнал без фильтров за сутки забивает диск.
Частые вопросы
Можно ли поставить сервер 1С и СУБД на разные компьютеры?
Подойдёт ли бесплатная редакция MS SQL Server Express?
Сколько баз можно создать в одном кластере?
Чем имя базы в кластере отличается от имени базы в СУБД?
Как сделать тестовую копию серверной базы?
.dt рабочей базы. Сразу включите блокировку регламентных заданий, чтобы копия не отправляла обмены и почту от имени рабочей.