Администрирование · 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С можно простой командой:
Test-NetConnection -ComputerName sqlserver01 -Port 1433Если TcpTestSucceeded возвращает False, проблема в сети или брандмауэре, и настраивать дальше бессмысленно — сначала восстановите связность. Также проверьте разрешение имён: сервер 1С должен резолвить имя SQL-сервера в правильный IP, иначе получите ошибку «сервер баз данных не обнаружен».
Создание информационной базы в кластере
Регистрация базы выполняется двумя способами: через консоль кластера серверов (для Windows — оснастка «Администрирование серверов 1С Предприятия») или через диалог добавления базы в окне запуска 1С, где при выборе клиент-серверного режима платформа сама предложит создать базу в кластере.
Параметры, которые нужно указать: имя информационной базы в кластере (произвольное, отображается пользователям), имя сервера 1С, тип СУБД, имя сервера баз данных, имя базы данных в СУБД и учётные данные для подключения. При создании новой базы оставьте флаг «Создать базу данных в случае её отсутствия» — платформа сама создаст БД в СУБД и развернёт системные таблицы.
- 1Установите и настройте СУБД, создайте учётную запись с правами dbcreator
- 2Установите сервер 1С той же версии платформы, что и клиенты
- 3Проверьте сетевую связность сервера 1С с SQL-сервером (Test-NetConnection, порт 1433 или 5432)
- 4Откройте консоль кластера, создайте информационную базу с параметрами СУБД и флагом создания БД
- 5Дождитесь окончания создания и войдите в базу конфигуратором
- 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 — проблема сети или брандмауэра
Нет повторяющихся ошибок подключения к СУБД
Регулярные ошибки таймаута или отказа в доступе
Типичные ошибки и их причины
Самая частая ошибка — «Ошибка СУБД: сервер баз данных не обнаружен». Причины: не запущена служба SQL Server, закрыт порт, неверно указано имя экземпляра (для именованных экземпляров нужен формат ИМЯСЕРВЕРА\ЭКЗЕМПЛЯР) или не запущена служба обозревателя SQL Server Browser, которая нужна как раз для именованных экземпляров.
Вторая группа — ошибки прав доступа: «Login failed for user». Здесь проверяют режим проверки подлинности (смешанный ли), активность логина и наличие прав на базу. Третья группа — несовпадение версий платформы между сервером и клиентом: клиент версии 8.3.22 не подключится к кластеру, где база требует другую версию, если на сервере не установлены нужные релизы.
Ограничения и альтернативы
Файловый режим остаётся разумной альтернативой для баз с небольшим числом одновременных пользователей (ориентировочно до 5–10 активных сеансов): он не требует ни СУБД, ни сервера 1С и обслуживается простым копированием файла 1Cv8.1CD. Переход на клиент-сервер оправдан при росте числа пользователей, объёма данных, требованиях к параллельности и регламентным заданиям.
Из альтернативных СУБД чаще всего выбирают PostgreSQL как бесплатный вариант, но с учётом необходимости специальной сборки и более тонкой настройки. Oracle и IBM DB2 поддерживаются платформой, но применяются редко и требуют отдельных лицензий и компетенций.
Сравнение вариантов
Подходит для небольших баз и нескольких пользователей; ограничение — низкая параллельность и риск повреждения файла при сбоях сети
Стандарт для средних и крупных внедрений; ограничение — стоимость лицензий SQL Server при большом числе ядер
Бесплатная СУБД для клиент-серверного режима; ограничение — нужна адаптированная сборка и ручная настройка параметров
Подключение к 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 на обоих серверах. Сопоставление времени ошибок на разных уровнях обычно сразу показывает сбойный сегмент.