Администрирование · 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 Configuration Manager и подключитесь из Management Studio
Порт 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С и убедитесь, что кластер доступен
- 2Создайте новую информационную базу: укажите имя, тип СУБД, сервер и имя базы данных
- 3Введите логин и пароль пользователя SQL Server с нужными правами
- 4Отметьте создание базы данных при её отсутствии и сохраните
- 5Откройте базу в конфигураторе и загрузите .dt или создайте конфигурацию
- 6Добавьте базу в список пользователей через файл .v8i или общий список
Альтернативный способ: создание базы из клиента 1С
Если консоль кластера недоступна (например, нет прав администратора кластера), базу можно создать из обычного окна запуска 1С. Нажмите «Добавить» → «Создание новой информационной базы», выберите шаблон конфигурации или пустую базу, а на шаге выбора типа расположения укажите «На сервере 1С:Предприятия».
Далее заполняются те же параметры: имя сервера 1С, имя базы в кластере, тип СУБД, адрес SQL Server, имя базы данных и учётные данные. Платформа обратится к агенту сервера, зарегистрирует информационную базу в кластере и создаст базу на SQL Server. Результат идентичен созданию через консоль — разница только в точке входа.
Этот способ удобен для разработчиков, разворачивающих тестовые копии: не нужно переключаться между инструментами, а созданная база сразу появляется в списке запуска. Ограничение — требуется, чтобы у пользователя были права на создание информационных баз в кластере (роль администратора кластера или отсутствие списка администраторов).
Способы создания базы на 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-аутентификацию.
Если база создана, но пользователи не могут войти с сообщением о несовместимости версий — проверьте совпадение версии платформы на клиенте и сервере. При ошибках вида «база данных заблокирована» проверьте в консоли кластера свойства информационной базы: возможно, включена блокировка начала сеансов, оставшаяся после обновления.
Как проверить результат
База в статусе Online, содержит таблицы платформы
База в статусе Restoring, Suspect или отсутствует в списке
Конфигуратор открывается, конфигурация загружается
Ошибка соединения с СУБД или отказ в доступе
Сеансы пользователей видны и активны
Сеансов нет, либо ошибки лицензий при входе
Блокировка сеансов выключена, параметры соединения корректны
Установлена блокировка начала сеансов или устаревший пароль
Особенности для PostgreSQL и других СУБД
Для PostgreSQL требуется специальная сборка с патчами, которую 1С публикует отдельно, — ванильный PostgreSQL платформа не поддерживает. Установка выполняется из пакетов с сайта 1С, после чего в параметрах информационной базы выбирается тип СУБД PostgreSQL, указываются сервер (порт по умолчанию 5432), имя базы и учётные данные. Логика настройки та же: логин с правами создания базы, доступность порта, корректная локаль и кодировка при инициализации кластера PostgreSQL.
IBM DB2 и Oracle Database поддерживаются платформой, но встречаются значительно реже и требуют отдельных лицензий на СУБД. Общий принцип неизменен: платформа работает с СУБД через собственный слой доступа, поэтому прямое редактирование таблиц SQL-запросами недопустимо на любой из поддерживаемых баз — это нарушает целостность данных и лишает поддержки.
Частые вопросы
Можно ли подключить 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С:Предприятия и зарегистрированная в кластере информационная база с корректными параметрами соединения. Перед любыми операциями делайте резервные копии, не работайте с таблицами напрямую и проверяйте результат на каждом шаге — тогда клиент-серверный режим будет стабильным.