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

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

Как подключить базу данных SQL к 1С

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

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

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

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

Какую СУБД выбрать для 1С

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

PostgreSQL — бесплатная альтернатива, но требует специальной сборки с патчами от 1С или Postgres Pro и более внимательной настройки. Oracle и DB2 встречаются в крупных организациях, где эти СУБД уже развёрнуты для других систем. Если лицензионная политика критична, сравните стоимость: MS SQL Server лицензируется по ядрам или по модели «сервер + CAL», и для среднего предприятия это заметная статья расходов.

Сравнение вариантов СУБД

MS SQL Server

Максимум документации и специалистов, простая настройка. Ограничение — платные лицензии; редакция Express не подходит из-за ограничений на размер базы и память.

PostgreSQL / Postgres Pro

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

Oracle / DB2

Подходят, если СУБД уже есть в компании. Ограничение — высокая стоимость и требования к квалификации администратора.

Что подготовить перед подключением

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

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

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

Установите MS SQL Server в редакции Standard или выше. При установке выберите проверку подлинности в смешанном режиме (Mixed Mode): 1С подключается к SQL Server под отдельной учётной записью SQL, и чисто Windows-аутентификация в типовом сценарии не используется. Задайте надёжный пароль для sa или сразу создайте отдельный логин для баз 1С.

После установки откройте SQL Server Configuration Manager и включите протокол TCP/IP для экземпляра, затем перезапустите службу. Проверьте подключение через SQL Server Management Studio (SSMS): если локально подключиться удаётся, а с сервера 1С — нет, проблема почти всегда в файрволе или отключённом TCP/IP. Служба SQL Server Browser нужна, если экземпляр именованный и порт динамический.

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

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

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

После установки убедитесь, что служба агента запущена, и установите консоль администрирования (она входит в дистрибутив). Консоль можно поставить на рабочее место администратора и подключаться к кластеру по сети — ходить на сам сервер не обязательно.

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

Это ключевой шаг, где происходит собственно «подключение» SQL-базы к 1С. Откройте консоль администрирования серверов 1С, зарегистрируйте в ней ваш сервер (центральный сервер кластера), раскройте ветку «Кластеры» → «Локальный кластер» → «Информационные базы» и выберите создание новой ИБ. В диалоге укажите параметры соединения с СУБД.

Порядок создания базы
  1. 1
    Откройте консоль кластера и в ветке «Информационные базы» выберите «Создать» → «Информационная база».
  2. 2
    Задайте имя базы в кластере (оно будет видно пользователям в списке баз).
  3. 3
    Выберите тип СУБД — MS SQL Server, укажите имя сервера СУБД (и экземпляр, если он именованный).
  4. 4
    Укажите имя базы данных в СУБД — если такой нет, включите флаг создания новой базы.
  5. 5
    Введите логин и пароль учётной записи SQL Server с правами на создание базы.
  6. 6
    Установите флаг «Создать базу данных в случае её отсутствия» и при необходимости задайте дату запрета изменения данных и параметры блокировок.
  7. 7
    Сохраните. Затем добавьте базу в список на клиенте или откройте конфигуратор и загрузите конфигурацию из файла .cf либо выгрузку .dt.

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

Выгрузка и загрузка .dt для больших баз занимает заметное время, иногда часы. Планируйте переезд на нерабочее время и заранее оцените длительность на тестовом прогоне. Альтернатива для очень больших баз — копирование через средства СУБД (backup/restore) с последующей регистрацией базы в кластере, но это более сложный сценарий, требующий аккуратности.

Настройка прав и параметров безопасности

Минимально необходимый набор прав для рабочей эксплуатации: учётная запись SQL Server, указанная в свойствах ИБ, должна быть владельцем базы (db_owner) — этого достаточно для всех операций платформы, включая реструктуризацию таблиц при обновлении конфигурации. Право dbcreator после создания базы можно отозвать.

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

Отдельно настройте резервное копирование. Средства 1С (выгрузка .dt) не заменяют бэкапы СУБД: настройте в SQL Server регулярное полное копирование и копирование журнала транзакций, если база в полной модели восстановления. Без этого при сбое диска вы рискуете потерять данные за период между выгрузками.

Типичные ошибки
01
Учётная запись SQL без прав на создание базы — создание ИБ обрывается с ошибкой доступа. Решение: выдать dbcreator или создать базу вручную и дать db_owner.
02
Отключённый TCP/IP или закрытый порт 1433 — кластер не видит SQL Server. Проверяется подключением через SSMS с сервера 1С.
03
Разные версии платформы на сервере и клиентах — база не открывается или обновление конфигурации падает.
04
Перенос базы копированием файлов .mdf/.ldf вместо backup/restore или выгрузки .dt — высокий риск получить несогласованную базу.
05
Отсутствие регламентных бэкапов в СУБД — при сбое данные восстановить нечем.
06
Слишком маленький начальный размер и прирост файлов базы по 1 МБ — фрагментация и просадка производительности при росте данных.

Проверка результата и типичные проблемы

После загрузки конфигурации откройте базу в режиме предприятия и выполните несколько типовых операций: создайте и проведите документ, сформируйте отчёт, зайдите под вторым пользователем одновременно. В SSMS проверьте, что база данных существует, таблицы созданы (их имена начинаются с префиксов вида _Document, _Reference), и растёт размер данных после ввода документов.

Если при создании ИБ появляется ошибка «Ошибка СУБД» или «соединение с сервером баз данных не установлено», проверяйте по цепочке: доступен ли SQL Server с сервера 1С (SSMS или telnet на порт 1433), верны ли логин/пароль, есть ли права. Если база создалась, но клиент не подключается — проверяйте имя сервера кластера в списке баз пользователя и доступность портов кластера.

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

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

База в консоли кластера
Норма

ИБ отображается в списке, свойства открываются без ошибок

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

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

База в SSMS
Норма

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

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

Базы нет, статус Suspect или Recovery Pending

Работа пользователей
Норма

Вход под учёткой 1С, документы проводятся, отчёты формируются

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

Ошибки при входе, зависания при проведении, сообщения о блокировках

Резервное копирование
Норма

Задание бэкапа в SQL Server выполняется по расписанию, файл создаётся

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

Бэкапов нет или задание завершается ошибкой

Сразу после создания базы в MS SQL Server задайте разумный начальный размер файлов данных и журнала (с запасом под ожидаемый объём) и прирост в мегабайтах, а не в процентах. Это избавляет от частых автоприращений, которые заметно тормозят работу в моменте. Также периодически обновляйте статистику и перестраивайте индексы — для 1С это стандартная часть регламентного обслуживания.
ПЗ
Практическое замечание

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

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

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

Подойдёт ли бесплатная редакция SQL Server Express?

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

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

Стандартный путь: открыть файловую базу в конфигураторе, выполнить выгрузку в файл .dt, затем создать пустую серверную ИБ в консоли кластера, открыть её в конфигураторе и загрузить .dt. Перед выгрузкой запустите тестирование и исправление базы. После загрузки обновите список баз у пользователей, указав сервер кластера и имя ИБ.

Можно ли разместить сервер 1С и SQL Server на одной машине?

Можно, и для небольших баз это нормальная практика — упрощается сеть и лицензирование Windows. Ограничение в ресурсах: обе службы активно потребляют оперативную память, поэтому машине нужен запас RAM и быстрые диски. При росте нагрузки сервера разносят, оставляя СУБД на машине с максимальным объёмом памяти и быстрым дисковым массивом.

Что делать, если при создании базы возникает ошибка доступа к SQL Server?

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

Нужно ли вручную создавать таблицы в SQL-базе под 1С?

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

Итог

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

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