Как завести информационную базу в кластер 1С и связать её с СУБД

· 10 мин

Содержание

Чтобы подключить базу к серверу 1С, её регистрируют в кластере серверов 1С:Предприятия и указывают, в какой СУБД и под каким пользователем лежат данные. Делается это одной формой: в окне запуска Добавить → Создание новой информационной базы → На сервере 1С:Предприятия или в консоли кластера через Информационные базы → Создать. Платформа сама создаст пустую базу данных в PostgreSQL или MS SQL, если у пользователя СУБД есть на это право.

Дальше в базу загружают выгрузку .dt из файловой версии, и пользователи подключаются к ней по строке вида Srvr="srv1c";Ref="buh";. Если файловую базу переносят на сервер, это и есть весь переезд: пустая база в кластере плюс загрузка выгрузки.

1. Что подготовить на сервере СУБД

Сервер 1С сам данные не хранит. Он ходит в СУБД, поэтому начинать надо с неё.

PostgreSQL

  • 🐘 Ставьте сборку PostgreSQL, адаптированную для 1С (её выпускают сама фирма 1С и Postgres Professional). Обычный «ванильный» PostgreSQL без патчей с базами 1С работает плохо или не работает вовсе.
  • 👤 Заведите отдельного пользователя для баз 1С, а не работайте под postgres. Если 1С будет сама создавать базу, у роли должно быть право CREATEDB.
  • 🌐 Разрешите подключения с адреса сервера 1С в pg_hba.conf и проверьте listen_addresses в postgresql.conf. После правки конфигурации PostgreSQL нужно перечитать настройки или перезапустить службу.

Пример создания роли:

CREATE ROLE usr1c WITH LOGIN PASSWORD 'СложныйПароль' CREATEDB;

MS SQL Server

  • 🔑 Включите смешанную аутентификацию (SQL Server и Windows), если 1С будет входить по логину и паролю SQL.
  • 👤 Создайте отдельный логин. Для создания баз из 1С ему нужна серверная роль dbcreator. Если базу заранее создаёт администратор СУБД — достаточно роли db_owner в этой базе.
  • 🌐 Откройте TCP-порт SQL Server (по умолчанию 1433) и включите протокол TCP/IP в SQL Server Configuration Manager.

Создавать пустую базу руками или доверить 1С

Надёжнее доверить. Платформа создаёт базу с нужной кодировкой и параметрами сортировки. Ручное создание оправдано, когда у администратора 1С нет прав на создание баз в СУБД — так бывает в компаниях с отдельной службой DBA.

Если пустую базу создаёт DBA, для PostgreSQL нужна кодировка UTF8, для MS SQL — параметры сортировки с поддержкой кириллицы (Cyrillic_General_CI_AS). Ошибка в сортировке всплывёт не сразу, а при загрузке .dt или в отчётах.

2. Как проверить кластер серверов 1С и агент

Кластер — это набор процессов на сервере 1С. После установки сервера 1С:Предприятия в Windows появляется служба «Агент сервера 1С:Предприятия 8.3», в Linux — служба srv1cv8 (в новых версиях её имя включает номер платформы).

Порты по умолчанию:

КомпонентПортДля чего
Агент сервера (ragent)1540Точка входа для консоли и клиентов
Менеджер кластера (rmngr)1541Адрес, который указывают при подключении базы
Рабочие процессы (rphost)1560–1591Обмен данными с клиентами
Сервер администрирования (ras)1545Работа утилиты rac

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

Консоль кластера: если её нет в списке оснасток

Консоль администрирования серверов 1С ставится вместе с сервером. Если в mmc она не появилась или пишет об ошибке, перерегистрируйте библиотеку radmin.dll от имени администратора — путь к папке bin подставьте свой:

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

После этого в консоли добавьте центральный сервер по имени и порту 1540. В дереве появятся «Кластеры», внутри — «Информационные базы», «Рабочие серверы», «Администраторы».

Сразу проверьте, под каким именем сервер записан в кластере. Клиенты будут обращаться к нему именно по этому имени. Если его нет в DNS, пропишите имя в hosts на рабочих местах.

3. Регистрация информационной базы в кластере

Есть три равноценных способа. Результат один: в кластере появляется база, связанная с базой данных в СУБД.

Через окно запуска 1С

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

Через консоль кластера

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

Через утилиту rac

Удобно для Linux и скриптов. На сервере должна работать служба ras. Сначала узнайте идентификатор кластера, потом создайте базу:

rac cluster list
rac infobase --cluster=<UUID_кластера> create --create-database \
  --name=buh --dbms=PostgreSQL --db-server=pgsrv --db-name=buh \
  --db-user=usr1c --db-pwd=Пароль --locale=ru

Если кластер защищён паролем администратора, добавьте учётные данные администратора кластера. Полный список ключей покажет rac help infobase.

Что вписать в поля

ПолеПримерЧто важно
Кластер серверов 1С:Предприятияsrv1c или srv1c:1541Порт пишут, если он не стандартный
Имя информационной базы в кластереbuhЕго вводят пользователи; без пробелов
Тип СУБДPostgreSQL / MS SQL Server
Сервер баз данныхpgsrv или sqlsrv\INSTИмя сервера СУБД, для MS SQL — с экземпляром
Имя базы данныхbuhИмя базы внутри СУБД
Пользователь сервера БДusr1cТот, кому выдали права в шаге 1
Смещение дат2000 для MS SQL, 0 для PostgreSQLПосле создания не меняют
Разрешить выдачу лицензий серверомДаНужна серверная лицензия на клиентов
Установить блокировку регламентных заданийДа для копии, нет для рабочейЧтобы копия не слала обмены и ЭДО

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

Загрузка данных из файловой базы

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

Загрузка .dt требует монопольного доступа: в базе не должно быть других сеансов. На большой базе процесс идёт долго — от десятков минут до нескольких часов.

4. Драйверы и клиентские компоненты СУБД

Сервер 1С обращается к СУБД своими средствами. Отдельный источник данных ODBC в панели Windows для этого создавать не нужно. Но на машине с сервером 1С должны стоять клиентские компоненты СУБД.

СУБДЧто нужно на сервере 1С
MS SQL ServerКлиентский драйвер Microsoft для SQL Server (Native Client или ODBC Driver for SQL Server — какой поддерживает ваша версия платформы, указано в её системных требованиях)
PostgreSQLОтдельный драйвер не ставят: клиентская библиотека входит в поставку сервера 1С

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

Проверить связь без 1С можно так. Для PostgreSQL выполните с сервера 1С:

psql -h pgsrv -U usr1c -d postgres -c "select version();"

Для MS SQL удобно проверить через sqlcmd или создать временный файл test.udl на рабочем столе: двойной щелчок открывает окно свойств подключения с кнопкой проверки.

5. Права доступа и безопасность при подключении базы

В клиент-серверной 1С три уровня прав, и путать их нельзя.

  • 🖥️ Учётная запись службы сервера 1С. По умолчанию — локальный пользователь USR1CV8. Ему нужен полный доступ к каталогу кластера (srvinfo). При входе в MS SQL по Windows-аутентификации права в SQL выдают именно этой учётной записи, а значит, её лучше сделать доменной.
  • 🗄️ Пользователь СУБД. Тот, что указан в параметрах базы. Права — только на свои базы. Пользователь sa или postgres в настройках базы — плохая практика: пароль увидит любой администратор кластера.
  • 👥 Пользователи 1С. Список внутри самой базы. Ими управляют в Конфигураторе или в режиме Предприятия.

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

Пока в кластере нет администраторов, любой, кто откроет консоль, может создать или удалить базу. Добавьте администратора в ветке «Администраторы» кластера. Вместе с ним заведите администратора агента — иначе защищён только сам кластер.

Отдельно стоит параметр «Защищённое соединение» в свойствах базы. Он включает шифрование трафика между клиентом и сервером 1С — полезно, если пользователи работают через внешние сети.

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

Подключение пользователей к готовой базе

На рабочем месте: Добавить → Добавление в список существующей информационной базы → На сервере 1С:Предприятия. Указывают тот же кластер и имя базы в кластере. Версия клиента должна совпадать с версией сервера 1С до последней цифры номера сборки.

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

Srvr="srv1c";Ref="buh";
Перед первым входом пользователей
Выполнено: 0 / 6

6. Ошибки подключения базы к серверу и как их разобрать

Текст ошибки обычно прямо подсказывает, на каком звене рвётся связь. Сначала определите звено — клиент → сервер 1С или сервер 1С → СУБД.

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

Порядок диагностики

  1. Проверьте службу сервера 1С: запущена ли, под какой учётной записью работает.
  2. Проверьте порты с рабочего места: Test-NetConnection srv1c -Port 1540 и -Port 1541.
  3. Подключитесь к СУБД с машины сервера 1С тем логином, что указан в базе.
  4. Откройте журнал регистрации базы или технологический журнал сервера, если ошибка плавающая.

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

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

Можно ли держать сервер 1С и СУБД на одной машине?
Можно, для небольших компаний это обычная схема. Главное — дать СУБД достаточно памяти и ограничить её потребление в настройках, чтобы рабочим процессам 1С тоже хватало.
Сколько баз можно подключить к одному кластеру?
Жёсткого ограничения на число баз нет. Упираются обычно в ресурсы сервера и лицензии: каждый пользователь занимает клиентскую лицензию, а сам сервер требует серверной лицензии.
Как перенести базу на другой сервер 1С без потери настроек?
Выгрузите .dt в Конфигураторе, создайте базу на новом сервере и загрузите файл. Либо перенесите базу средствами СУБД и зарегистрируйте её в новом кластере без флага создания базы данных.
Что будет, если удалить базу из кластера?
В консоли при удалении предлагают выбрать: оставить базу данных в СУБД, очистить или удалить её. Если оставить, данные сохранятся, и базу можно снова зарегистрировать с теми же параметрами.
Нужен ли отдельный сервер лицензий?
Не обязательно. Клиентские лицензии можно активировать прямо на сервере 1С и включить их выдачу сервером, тогда рабочим местам ключи не нужны.