К статье
Практический материал

Администрирование · 13 мин

1С: как подключиться к базе SQL

Подключение 1С к базе SQL Server: установка СУБД, создание базы через консоль кластера, настройка прав, строка подключения, типичные ошибки и их решение.

Клиент-серверный режим работы 1С с базой на Microsoft SQL Server или PostgreSQL — стандарт для организаций, где с программой одновременно работают больше 5–10 пользователей или объём данных превышает несколько гигабайт. В отличие от файлового режима, здесь платформа 1С не хранит данные в файле 1Cv8.1CD, а обращается к СУБД через сервер 1С:Предприятия, который транслирует запросы в SQL.

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

Ниже разобран полный цикл: от подготовки SQL Server до проверки работоспособности базы, с типичными ошибками и способами их диагностики. Инструкция ориентирована на связку «1С + MS SQL Server» как наиболее распространённую; отличия для PostgreSQL и других СУБД указаны отдельно.

Что понадобится перед началом работы

Для клиент-серверного режима требуется три программных компонента: сама СУБД (Microsoft SQL Server, PostgreSQL с патчами от 1С, IBM DB2 или Oracle Database), сервер 1С:Предприятия той же версии платформы, что и клиенты, и лицензии — на сервер 1С и на клиентские места. Без серверной лицензии кластер не запустится в полноценном режиме.

Также заранее подготовьте учётную запись для доступа к SQL Server. Рекомендуется создать отдельный логин с аутентификацией SQL Server (не использовать sa) и выдать ему права на создание базы данных (роль dbcreator) либо заранее создать пустую базу и назначить логину роль db_owner на неё. Это минимально необходимый набор прав — давать учётной записи sysadmin не нужно.

Проверьте сетевую доступность: сервер 1С и сервер СУБД должны видеть друг друга по сети, порт SQL Server (по умолчанию 1433 для TCP/IP) должен быть открыт в брандмауэре. Если оба компонента стоят на одной машине, это упрощает настройку, но для нагруженных систем разнесение на разные серверы предпочтительнее.

Служба SQL ServerЗапущена и принимает подключения

Проверьте через SQL Server Configuration Manager и подключитесь из Management Studio

Агент сервера 1ССлужба работает, кластер доступен

Порт 1540–1541 открыт, консоль кластера подключается без ошибок

Учётная запись СУБДЕсть права на создание или владение базой

Достаточно dbcreator на сервере или db_owner на конкретную базу

Версии платформыСервер и клиенты совпадают по версии

Разные версии платформы на клиенте и сервере приводят к отказу в подключении

Установка и подготовка SQL Server

При установке SQL Server выберите компонент Database Engine и задайте смешанный режим аутентификации (Mixed Mode), иначе подключение по логину SQL будет невозможно. После установки откройте SQL Server Configuration Manager и включите протокол TCP/IP для экземпляра — по умолчанию он часто отключён. После изменения настроек перезапустите службу SQL Server.

Создайте логин для 1С через SQL Server Management Studio: раздел «Безопасность» → «Имена входа» → «Создать имя входа». Укажите аутентификацию SQL Server, задайте надёжный пароль и снимите флаг принудительной смены пароля при первом входе — сервер 1С не умеет менять пароль интерактивно, и подключение завершится ошибкой.

Отдельное внимание уделите параметрам будущей базы. Для 1С критично, чтобы у базы данных был отключён параметр AUTO_CLOSE и включён AUTO_CREATE_STATISTICS с AUTO_UPDATE_STATISTICS — платформа выставляет это сама при создании базы через консоль кластера, но если вы создаёте базу вручную в Management Studio, эти настройки нужно проверить самостоятельно. Модель восстановления для рабочих баз обычно выбирают Full с регулярным бэкапом журнала, для тестовых достаточно Simple.

Установка сервера 1С:Предприятия

Дистрибутив сервера 1С входит в поставку платформы. При установке отметьте компонент «Сервер 1С:Предприятия» и, при необходимости, «Администрирование сервера» — консоль управления кластером. Установщик зарегистрирует службу «Агент сервера 1С:Предприятия», которая по умолчанию работает от имени служебного пользователя USR1CV8.

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

Если сервер 1С и SQL Server на разных машинах

В этом случае службе агента сервера 1С нужны сетевые права. Либо запустите службу от имени доменной учётной записи с доступом к SQL Server (при Windows-аутентификации), либо используйте SQL-аутентификацию — тогда специальных прав на учётную запись службы не требуется, достаточно логина и пароля в настройках информационной базы.

Создание информационной базы через консоль кластера

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

В диалоге заполните параметры: имя базы (отображается в списке у пользователей), сервер баз данных (имя или IP-адрес SQL Server, при именованном экземпляре — в формате SERVER\INSTANCE), тип СУБД — MS SQL Server, имя базы данных (будет создана на SQL Server с этим именем), логин и пароль пользователя СУБД. Параметр «Создать базу данных в случае её отсутствия» удобен при первом развёртывании — платформа сама создаст базу с корректными настройками.

Дополнительно задайте блокировку регламентных заданий для тестовых копий и, при необходимости, параметры безопасности соединения. После нажатия «ОК» база появится в кластере, а на SQL Server — новая пустая база данных. Дальше её нужно наполнить: либо загрузить выгрузку .dt через конфигуратор, либо создать пустую конфигурацию.

Порядок создания базы в кластере
  1. 1
    Откройте консоль серверов 1С и убедитесь, что кластер доступен
  2. 2
    Создайте новую информационную базу: укажите имя, тип СУБД, сервер и имя базы данных
  3. 3
    Введите логин и пароль пользователя SQL Server с нужными правами
  4. 4
    Отметьте создание базы данных при её отсутствии и сохраните
  5. 5
    Откройте базу в конфигураторе и загрузите .dt или создайте конфигурацию
  6. 6
    Добавьте базу в список пользователей через файл .v8i или общий список

Альтернативный способ: создание базы из клиента 1С

Если консоль кластера недоступна (например, нет прав администратора кластера), базу можно создать из обычного окна запуска 1С. Нажмите «Добавить» → «Создание новой информационной базы», выберите шаблон конфигурации или пустую базу, а на шаге выбора типа расположения укажите «На сервере 1С:Предприятия».

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

Этот способ удобен для разработчиков, разворачивающих тестовые копии: не нужно переключаться между инструментами, а созданная база сразу появляется в списке запуска. Ограничение — требуется, чтобы у пользователя были права на создание информационных баз в кластере (роль администратора кластера или отсутствие списка администраторов).

Способы создания базы на SQL

Консоль кластера

Полный контроль над параметрами, подходит администраторам; требует доступа к консоли и прав администратора кластера

Окно запуска 1С

Быстро и без отдельного инструмента, база сразу в списке; нужны права на создание баз в кластере

Восстановление бэкапа SQL + регистрация

Подходит для переноса между серверами: базу восстанавливают в Management Studio, затем регистрируют в кластере без создания новой

Подключение существующей базы SQL и перенос данных

Частая задача — подключить к новому серверу 1С базу, которая уже существует на SQL Server (например, после переезда на другое железо). Порядок такой: восстановите бэкап базы на новом SQL Server через Management Studio (Restore Database), убедитесь, что у логина есть отображение на пользователя базы (после переноса связь логина и пользователя часто теряется — её восстанавливают процедурой sp_change_users_login или пересозданием пользователя), затем создайте в кластере информационную базу с тем же именем базы данных, сняв флаг создания новой базы.

Если нужно перевести базу из файлового режима в клиент-серверный, прямого «подключения файла к SQL» не существует. Путь один: открыть файловую базу в конфигураторе, выполнить «Администрирование» → «Выгрузить информационную базу» в файл .dt, затем создать пустую базу на SQL и загрузить .dt через «Загрузить информационную базу». Для больших баз выгрузка и загрузка могут занять часы — планируйте окно обслуживания.

Проверка подключения и диагностика проблем

После создания базы первый признак успеха — вход в конфигуратор или режим предприятия без ошибок. Дополнительно проверьте со стороны SQL: база появилась в списке Management Studio, в ней есть системные таблицы платформы (Config, Params, _YearOffset и другие), размер файлов данных растёт после загрузки .dt.

Типичная ошибка «Ошибка СУБД: соединение с сервером баз данных не установлено» означает, что сервер 1С не достучался до SQL Server. Проверяйте последовательно: запущена ли служба SQL Server, включён ли TCP/IP, открыт ли порт, правильно ли указано имя сервера и экземпляра, верны ли логин и пароль. Ошибка вида «Login failed for user» указывает именно на проблему учётных данных или отключённую SQL-аутентификацию.

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

Контрольные точки

Как проверить результат

База в Management Studio
Норма

База в статусе Online, содержит таблицы платформы

Тревожный признак

База в статусе Restoring, Suspect или отсутствует в списке

Вход в конфигуратор
Норма

Конфигуратор открывается, конфигурация загружается

Тревожный признак

Ошибка соединения с СУБД или отказ в доступе

Сеансы в консоли кластера
Норма

Сеансы пользователей видны и активны

Тревожный признак

Сеансов нет, либо ошибки лицензий при входе

Свойства базы в кластере
Норма

Блокировка сеансов выключена, параметры соединения корректны

Тревожный признак

Установлена блокировка начала сеансов или устаревший пароль

Особенности для PostgreSQL и других СУБД

Для PostgreSQL требуется специальная сборка с патчами, которую 1С публикует отдельно, — ванильный PostgreSQL платформа не поддерживает. Установка выполняется из пакетов с сайта 1С, после чего в параметрах информационной базы выбирается тип СУБД PostgreSQL, указываются сервер (порт по умолчанию 5432), имя базы и учётные данные. Логика настройки та же: логин с правами создания базы, доступность порта, корректная локаль и кодировка при инициализации кластера PostgreSQL.

IBM DB2 и Oracle Database поддерживаются платформой, но встречаются значительно реже и требуют отдельных лицензий на СУБД. Общий принцип неизменен: платформа работает с СУБД через собственный слой доступа, поэтому прямое редактирование таблиц SQL-запросами недопустимо на любой из поддерживаемых баз — это нарушает целостность данных и лишает поддержки.

Типичные ошибки при подключении
01
Использование учётной записи sa — риск компрометации всего сервера СУБД, создавайте отдельный логин с минимальными правами
02
Выключенный протокол TCP/IP в SQL Server — сервер 1С не может подключиться даже при верных логине и пароле
03
Флаг обязательной смены пароля у логина — первое подключение платформы завершается ошибкой аутентификации
04
Ручное изменение таблиц базы через SQL-запросы — рассинхронизация метаданных и повреждение данных
05
Перенос базы бэкапом без восстановления связи логина и пользователя — ошибка доступа после восстановления на новом сервере
06
Разные версии платформы на клиенте и сервере — отказ в соединении с кластером

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

Можно ли подключить 1С напрямую к SQL без сервера 1С:Предприятия?

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

Какие права минимально нужны учётной записи SQL Server?

Для создания базы через консоль кластера — серверная роль dbcreator (и public). Если база данных уже создана администратором СУБД, достаточно роли db_owner на эту конкретную базу. Права sysadmin не требуются и не рекомендуются.

Как перенести файловую базу на SQL Server?

Откройте файловую базу в конфигураторе, выгрузите её в файл .dt («Администрирование» → «Выгрузить информационную базу»), создайте пустую базу на SQL через консоль кластера или окно запуска, затем загрузите .dt в новую базу. Прямого преобразования файла 1Cv8.1CD в SQL-формат не существует.

Почему возникает ошибка «Login failed for user» при создании базы?

Наиболее вероятные причины: на SQL Server включена только Windows-аутентификация вместо смешанной, неверный пароль, у логина установлен флаг обязательной смены пароля при первом входе, либо логин отключён. Проверьте режим аутентификации в свойствах сервера и свойства логина в Management Studio.

Сколько пользователей может работать с базой на SQL?

Жёсткого ограничения со стороны платформы нет — упор в лицензии и ресурсы серверов. На практике клиент-серверный режим оправдан уже при 5–10 одновременных пользователях, а при грамотной настройке серверов 1С и SQL Server система обслуживает сотни одновременных сеансов.

Нужен ли отдельный сервер для SQL и сервера 1С?

Для небольших внедрений допустимо размещение обоих компонентов на одной машине — это упрощает сеть и лицензирование. При росте нагрузки их разносят: SQL Server требователен к дисковой подсистеме и памяти, сервер 1С — к процессору и памяти, и совместное размещение приводит к конкуренции за ресурсы.

Итог

Что важно запомнить

Подключение 1С к базе SQL — это цепочка из трёх звеньев: настроенная СУБД с включённым TCP/IP и отдельным логином, работающий сервер 1С:Предприятия и зарегистрированная в кластере информационная база с корректными параметрами соединения. Перед любыми операциями делайте резервные копии, не работайте с таблицами напрямую и проверяйте результат на каждом шаге — тогда клиент-серверный режим будет стабильным.