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

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

Как 1С подключается к SQL: пошаговое руководство

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

1С:Предприятие может работать с данными в двух режимах: файловом и клиент-серверном. В клиент-серверном режиме платформа не обращается к файлам базы напрямую — вся работа идёт через связку «сервер 1С:Предприятия + СУБД» (Microsoft SQL Server, PostgreSQL, Oracle или IBM DB2). Понимание этой цепочки важно, потому что большинство проблем с подключением возникает именно на стыке компонентов, а не внутри самой 1С.

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

Ниже разобрана вся цепочка подключения на примере связки с Microsoft SQL Server и PostgreSQL, даны конкретные параметры, команды проверки и типичные ошибки, из-за которых база «не видится» или падает производительность.

Архитектура подключения: кто с кем соединяется

В клиент-серверном варианте участвуют три уровня. Первый — клиентское приложение (тонкий, толстый или веб-клиент), которое обращается к кластеру серверов 1С по протоколу TCP (по умолчанию порты 1540–1541 для агента и 1560–1591 для рабочих процессов). Второй — сервер 1С:Предприятия, который исполняет код, управляет сеансами и транслирует обращения к данным в SQL-запросы. Третий — СУБД, где физически хранятся таблицы.

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

Требования к версиям и разрядности

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

Разрядность сервера 1С и разрядность клиентского доступа к СУБД должны совпадать. Для 64-разрядного сервера 1С нужны 64-разрядные библиотеки доступа к базе (например, ODBC-драйвер или клиентские библиотеки PostgreSQL). Частая ошибка — установка 32-разрядного сервера 1С на 64-разрядную ОС с последующими попытками использовать 64-битный драйвер: база не создаётся с ошибкой загрузки компоненты доступа к данным.

Для PostgreSQL используется специальная сборка, адаптированная под 1С (её распространяют «1С» и партнёры), либо поддерживаемые ванильные версии — это зависит от релиза платформы. Ставить «первую попавшуюся» сборку PostgreSQL с официального сайта без проверки совместимости не следует.

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

На стороне SQL Server потребуется: установленный экземпляр (достаточно редакции Standard для большинства внедрений, Express подходит только для небольших баз из-за ограничений на размер и память), включённая проверка подлинности в смешанном режиме (SQL Server и Windows), если планируется подключение по логину SQL, и открытый порт TCP 1433 (или именованный экземпляр с настроенным портом).

Создайте отдельную учётную запись для сервера 1С. Минимально необходимые права — роль dbcreator на уровне сервера (чтобы платформа могла создать базу при регистрации) либо заранее созданная пустая база, где учётной записи назначена роль db_owner. Давать этой учётной записи роль sysadmin не нужно — это избыточные права и лишний риск.

Дополнительно убедитесь, что у службы SQL Server есть доступ к дискам под файлы данных и журнала, а антивирус не сканирует файлы .mdf/.ldf в реальном времени — это одна из скрытых причин медленной работы 1С на SQL.

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

Дистрибутив сервера 1С ставится с диска ИТС или с портала 1С:Обновление программ. При установке выберите компоненту «Сервер 1С:Предприятия» и при необходимости «Администрирование сервера» (консоль кластера). Служба агента сервера 1С регистрируется автоматически и по умолчанию работает под учётной записью USR1CV8, которую установщик создаёт локально.

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

powershell
Test-NetConnection -ComputerName sqlserver01 -Port 1433

Если TcpTestSucceeded возвращает False, проблема в сети или брандмауэре, и настраивать дальше бессмысленно — сначала восстановите связность. Также проверьте разрешение имён: сервер 1С должен резолвить имя SQL-сервера в правильный IP, иначе получите ошибку «сервер баз данных не обнаружен».

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

Регистрация базы выполняется двумя способами: через консоль кластера серверов (для Windows — оснастка «Администрирование серверов 1С Предприятия») или через диалог добавления базы в окне запуска 1С, где при выборе клиент-серверного режима платформа сама предложит создать базу в кластере.

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

Порядок создания базы
  1. 1
    Установите и настройте СУБД, создайте учётную запись с правами dbcreator
  2. 2
    Установите сервер 1С той же версии платформы, что и клиенты
  3. 3
    Проверьте сетевую связность сервера 1С с SQL-сервером (Test-NetConnection, порт 1433 или 5432)
  4. 4
    Откройте консоль кластера, создайте информационную базу с параметрами СУБД и флагом создания БД
  5. 5
    Дождитесь окончания создания и войдите в базу конфигуратором
  6. 6
    Загрузите конфигурацию из файла .dt или .cf и обновите конфигурацию базы данных

После создания база появляется в списке кластера, а в СУБД — новая база данных с системными таблицами (Config, Params, _YearOffset и другими). Если таблицы появились — соединение «сервер 1С → SQL» работает корректно.

Подключение клиентов и проверка результата

На клиентских машинах база добавляется в список запуска по имени сервера 1С и имени базы в кластере — параметры SQL-сервера пользователям не нужны. Для тонкого клиента строка подключения выглядит как пара «Сервер1С;ИмяБазы», для веб-клиента публикуется отдельная публикация на веб-сервере (IIS или Apache), где в файле default.vrd указывается тот же кластер.

Проверка результата включает три уровня: вход пользователя в базу без ошибок, наличие таблиц в СУБД и отсутствие ошибок в журнале регистрации и в логах агента сервера 1С (каталог srvinfo, подпапки reg_1541). Если вход выполняется, но работа медленная, смотрите уже на нагрузку SQL — длительные запросы видны в динамических административных представлениях (sys.dm_exec_requests для SQL Server).

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

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

Вход в базу тонким клиентом
Норма

Пользователь входит за несколько секунд, сеанс виден в консоли кластера

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

Ошибка «информационная база не обнаружена» или долгое ожидание на этапе соединения

База в СУБД
Норма

В SQL Server Management Studio видна база с системными таблицами 1С

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

База отсутствует или в статусе Recovery Pending / Suspect

Связность серверов
Норма

Test-NetConnection к порту СУБД возвращает True

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

TcpTestSucceeded = False — проблема сети или брандмауэра

Логи агента 1С
Норма

Нет повторяющихся ошибок подключения к СУБД

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

Регулярные ошибки таймаута или отказа в доступе

Типичные ошибки и их причины

Самая частая ошибка — «Ошибка СУБД: сервер баз данных не обнаружен». Причины: не запущена служба SQL Server, закрыт порт, неверно указано имя экземпляра (для именованных экземпляров нужен формат ИМЯСЕРВЕРА\ЭКЗЕМПЛЯР) или не запущена служба обозревателя SQL Server Browser, которая нужна как раз для именованных экземпляров.

Вторая группа — ошибки прав доступа: «Login failed for user». Здесь проверяют режим проверки подлинности (смешанный ли), активность логина и наличие прав на базу. Третья группа — несовпадение версий платформы между сервером и клиентом: клиент версии 8.3.22 не подключится к кластеру, где база требует другую версию, если на сервере не установлены нужные релизы.

Типичные ошибки
01
Указание учётной записи с правами sysadmin вместо минимально необходимых — избыточный риск при компрометации сервера 1С
02
Игнорирование разрядности: 32-битный сервер 1С с 64-битным драйвером СУБД — база не создаётся с ошибкой загрузки компоненты
03
Размещение файлов данных и журнала SQL на одном медленном диске — деградация производительности при росте базы
04
Антивирусное сканирование файлов .mdf и .ldf в реальном времени — блокировки и падение скорости запросов
05
Подключение клиентов напрямую к SQL-серверу в обход сервера 1С для чтения данных без понимания структуры — риск получить некорректные данные из-за хранения ссылок и типов в формате платформы

Ограничения и альтернативы

Файловый режим остаётся разумной альтернативой для баз с небольшим числом одновременных пользователей (ориентировочно до 5–10 активных сеансов): он не требует ни СУБД, ни сервера 1С и обслуживается простым копированием файла 1Cv8.1CD. Переход на клиент-сервер оправдан при росте числа пользователей, объёма данных, требованиях к параллельности и регламентным заданиям.

Из альтернативных СУБД чаще всего выбирают PostgreSQL как бесплатный вариант, но с учётом необходимости специальной сборки и более тонкой настройки. Oracle и IBM DB2 поддерживаются платформой, но применяются редко и требуют отдельных лицензий и компетенций.

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

Файловый режим

Подходит для небольших баз и нескольких пользователей; ограничение — низкая параллельность и риск повреждения файла при сбоях сети

1С + Microsoft SQL Server

Стандарт для средних и крупных внедрений; ограничение — стоимость лицензий SQL Server при большом числе ядер

1С + PostgreSQL

Бесплатная СУБД для клиент-серверного режима; ограничение — нужна адаптированная сборка и ручная настройка параметров

1С в облаке (1С:Фреш и аналоги)

Подключение к SQL полностью на стороне провайдера; ограничение — зависимость от сервиса и меньше контроля над инфраструктурой

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

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

Итог

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

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

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

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

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

Достаточно SQL-логина с ролью dbcreator на этапе создания базы; после создания можно оставить только db_owner на конкретную базу. Права sysadmin не требуются и не рекомендуются.

Почему при создании базы возникает ошибка «сервер баз данных не обнаружен»?

Чаще всего не запущена служба SQL Server, закрыт порт 1433 на брандмауэре, неверно указано имя экземпляра или сервер 1С не может разрешить имя SQL-сервера в IP-адрес. Проверяйте связность командой Test-NetConnection с машины сервера 1С.

Нужна ли специальная версия PostgreSQL для 1С?

Да, для большинства релизов платформы требуется адаптированная сборка PostgreSQL, распространяемая «1С» и партнёрами, либо версии из списка поддерживаемых. Произвольная сборка с официального сайта PostgreSQL может не заработать.

Как перенести файловую базу в клиент-серверный режим?

Через выгрузку в файл .dt в конфигураторе файловой базы, создание пустой базы в кластере серверов и загрузку .dt в неё. Прямого «подключения файла к SQL» не существует — данные переносятся именно выгрузкой и загрузкой.

Где смотреть логи, если база перестала подключаться?

Проверьте журнал регистрации 1С, логи агента сервера в каталоге srvinfo (reg_1541), журнал ошибок SQL Server и системный журнал Windows на обоих серверах. Сопоставление времени ошибок на разных уровнях обычно сразу показывает сбойный сегмент.