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

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

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

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

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

Перед началом убедитесь, что у вас есть: установленный и лицензированный SQL Server (подходят редакции Standard и выше; Express пригоден для небольших баз, но имеет ограничения по памяти и размеру), сервер 1С:Предприятия той же версии платформы, что и клиенты, и учётная запись с правами администратора на обеих машинах. Все действия по созданию базы выполняйте в тестовом контуре, если у вас уже есть рабочая система.

Какой вариант подключения выбрать

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

Отдельный случай — подключение к SQL Server из кода 1С через внешние источники данных или COM/ADO, когда нужно читать данные из сторонней базы (не информационной базы 1С). Это задача интеграции, и она решается иначе: строкой подключения в объекте «Внешний источник данных» или через ADODB.Connection.

Сравнение вариантов

Через сервер 1С:Предприятия

Штатный клиент-серверный режим. Подходит для любых рабочих баз, требует установки и лицензирования сервера 1С.

SQL Server Express для малых баз

Бесплатная редакция для небольших команд. Ограничения по объёму базы и используемой памяти — не подходит для крупных внедрений.

Внешний источник данных (ADO)

Для чтения сторонних SQL-баз из кода 1С, а не для размещения информационной базы. Требует написания запросов вручную.

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

Установите SQL Server с компонентом Database Engine. При установке выберите режим проверки подлинности — смешанный (SQL Server и Windows) удобнее, если планируете подключаться по логину и паролю SQL; если используете только Windows-аутентификацию, учётная запись службы сервера 1С должна иметь доступ к СУБД. Запомните или задайте пароль администратора sa, если включали смешанный режим.

После установки проверьте, что служба SQL Server запущена, а в SQL Server Configuration Manager включён протокол TCP/IP — по умолчанию в некоторых редакциях он отключён, и удалённые подключения не пройдут. Если сервер 1С и SQL Server стоят на разных машинах, откройте порт 1433 в брандмауэре Windows (или тот порт, который назначен экземпляру).

Создание базы данных на SQL Server

Базу данных можно создать двумя способами. Первый — вручную в SQL Server Management Studio (SSMS): правый клик по узлу «Базы данных» → «Создать базу данных», задайте имя (латиницей, без пробелов, например trade_base). Второй — создать базу автоматически при создании информационной базы в консоли кластера 1С: платформа сама создаст БД, если у указанной учётной записи достаточно прав.

Для рабочих баз сразу настройте модель восстановления: для продуктивных баз обычно выбирают полную (Full) с регулярным резервным копированием журнала, для тестовых достаточно простой (Simple). Также задайте разумный начальный размер файлов и прирост, чтобы избежать частых авторасширений при загрузке данных.

Создание базы в SSMS
  1. 1
    Откройте SQL Server Management Studio и подключитесь к экземпляру
  2. 2
    Щёлкните правой кнопкой по «Базы данных» → «Создать базу данных»
  3. 3
    Укажите имя базы латиницей без пробелов
  4. 4
    Задайте модель восстановления и размер файлов
  5. 5
    Нажмите OK и убедитесь, что база появилась в списке

Создание информационной базы в консоли сервера 1С

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

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

После нажатия OK платформа создаст структуру базы в SQL Server. Далее добавьте базу в список информационных баз на клиентах: в окне запуска 1С — «Добавить» → «На сервере 1С:Предприятия», укажите имя сервера и имя базы в кластере.

text
Сервер СУБД: SQL01\MSSQLSERVER
Имя базы: trade_base
Пользователь: 1c_db_user
Тип СУБД: MS SQL Server

Настройка прав доступа

Учётная запись, под которой сервер 1С обращается к SQL Server, должна быть владельцем базы (роль db_owner) или иметь эквивалентные права на чтение, запись и изменение структуры. Не используйте учётную запись sa в продуктивной среде — создайте отдельный логин с минимально необходимыми правами.

При Windows-аутентификации права выдаются учётной записи службы «Агент сервера 1С:Предприятия» (по умолчанию это может быть USR1CV8). Добавьте эту учётную запись в логины SQL Server и назначьте ей роль db_owner на конкретной базе. Проверить, под какой учётной записью работает служба, можно в оснастке «Службы».

Проверка подключения и загрузка конфигурации

После создания информационной базы откройте её в конфигураторе. Если база новая — загрузите конфигурацию из файла .dt (Администрирование → Загрузить информационную базу) или загрузите конфигурацию из файла .cf. Для переноса существующей файловой базы сначала выгрузите её в .dt, затем загрузите в серверную базу.

Признаки успешного подключения: конфигуратор открывается без ошибок соединения, обновление конфигурации базы данных выполняется до конца, база запускается в режиме предприятия и пользователи могут войти. В SSMS при этом видны активные соединения к базе от сервера 1С.

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

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

Запуск конфигуратора
Норма

База открывается без сообщений об ошибке соединения

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

Ошибка «Сервер баз данных не обнаружен» или отказ в доступе

Соединения в SSMS
Норма

В Activity Monitor видны сессии от сервера 1С

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

Соединений нет, хотя база запущена

Обновление конфигурации БД
Норма

Реструктуризация завершается успешно

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

Ошибки прав или таймауты при реструктуризации

Типичные ошибки и их устранение

Ошибка «Сервер баз данных не обнаружен» чаще всего означает, что не запущена служба SQL Server, отключён протокол TCP/IP, закрыт порт в брандмауэре или неверно указано имя экземпляра. Проверяйте по порядку: служба → протокол → порт → имя сервера. Полезно проверить доступность командой telnet SERVER 1433 с машины сервера 1С.

Ошибки вида «Login failed for user» указывают на проблему с учётной записью: неверный пароль, отключённый логин, отсутствие прав на базу или несоответствие режима аутентификации (логин SQL не работает, если сервер в режиме только Windows-аутентификации). Ошибка несовместимости версий возникает, когда версия платформы на сервере 1С отличается от версии клиента — приведите их к одному релизу.

Типичные ошибки
01
Указание имени экземпляра без учёта именованных экземпляров — подключение идёт на экземпляр по умолчанию и не находит базу
02
Использование учётной записи sa в продуктиве — риск безопасности и сложность аудита
03
Отключённый TCP/IP в настройках SQL Server — удалённое подключение невозможно
04
Разные версии платформы на сервере и клиенте — отказ в подключении с ошибкой несовместимости
05
Создание базы вручную с неподходящей сортировкой (collation) — ошибки при создании ИБ; используйте сортировку Cyrillic_General_CI_AS

Подключение к сторонней SQL-базе из кода 1С

Если задача — не разместить базу 1С, а прочитать данные из внешней базы SQL Server (например, из другой учётной системы), используйте объект «Внешние источники данных» в конфигураторе: создайте источник, укажите строку подключения, добавьте таблицы. Либо выполните подключение программно через COM-объект ADODB.Connection.

bsl
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.Open("Provider=SQLOLEDB;Data Source=SQL01;Initial Catalog=ExternalDB;User ID=user;Password=pass;");

Учтите, что COM-подключение работает только на стороне, где доступен провайдер (обычно на сервере 1С под Windows), и требует аккуратной обработки ошибок и закрытия соединения. Для регулярных интеграций надёжнее использовать планы обмена или веб-сервисы.

Часто задаваемые вопросы

Можно ли подключить 1С к SQL Server Express?

Да, технически Express-редакция поддерживается и подходит для небольших баз. Учитывайте её ограничения по объёму базы данных, объёму используемой памяти и числу процессоров — для средних и крупных внедрений потребуется платная редакция.

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

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

Какая сортировка (collation) нужна для базы 1С?

Рекомендуется Cyrillic_General_CI_AS. Если база создаётся автоматически консолью кластера, платформа устанавливает нужную сортировку сама. При ручном создании базы в SSMS укажите её явно, иначе возможны ошибки при создании информационной базы.

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

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

Что делать, если ошибка «Ошибка СУБД» появляется при обновлении конфигурации?

Проверьте права учётной записи на базу (нужна роль db_owner), свободное место на дисках SQL Server и журнал ошибок SQL Server — там указана конкретная причина. Также убедитесь, что с базой не работают другие сеансы в монопольном режиме.

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

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

Итог

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

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