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

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

Как связать SQL Server и 1С: пошаговая настройка

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

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

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

Ниже разобран полный цикл: от подготовки SQL Server до проверки работоспособности, с типичными ошибками и критериями выбора архитектуры.

Какая архитектура подключения вам нужна

Существует два основных способа связать 1С с SQL Server. Первый — классический клиент-серверный: устанавливается сервер 1С:Предприятия, который выступает посредником между клиентами и СУБД. Это рекомендуемый вариант для работы от нескольких пользователей и выше, так как сервер 1С управляет блокировками, кэшем и фоновыми заданиями.

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

Третий, вспомогательный сценарий — обмен данными на уровне SQL: внешние источники данных в 1С, прямые запросы из отчётов или интеграция через linked server. Он не заменяет основную связку, а дополняет её, когда нужно читать данные сторонних систем.

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

Сервер 1С + SQL Server

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

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

Без SQL Server вообще. Подходит для 1–5 пользователей и небольших баз. Ограничен по производительности и надёжности.

Внешние источники данных

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

Подготовка и установка SQL Server

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

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

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

Создание базы данных и настройка прав

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

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

Далее создайте учётную запись для подключения 1С. Для SQL-аутентификации: новый логин на уровне сервера, сопоставление с пользователем базы, роль db_owner на конкретную базу. Не используйте sa для рабочего подключения и не давайте учётной записи серверных ролей вроде sysadmin без необходимости.

Порядок создания базы и прав
  1. 1
    Установите SQL Server и включите TCP/IP, перезапустите службу
  2. 2
    Создайте пустую базу в SSMS с заданными файлами и приростом
  3. 3
    Создайте логин для 1С и назначьте роль db_owner на эту базу
  4. 4
    Проверьте подключение этим логином из SSMS или через sqlcmd
  5. 5
    Зафиксируйте имя сервера, имя базы и учётные данные для регистрации ИБ

Регистрация информационной базы на сервере 1С

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

В полях пользователя и пароля укажите учётную запись SQL Server с правами на базу. Параметр «Создавать базу данных в случае её отсутствия» оставьте выключенным, если база уже создана вручную. Дата-смещение для MS SQL Server оставьте по умолчанию, если нет особых требований.

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

text
sqlcmd -S SERVERNAME -U login_1c -P password -Q "SELECT name FROM sys.databases"

Альтернативы: внешние источники и прямые запросы

Если задача — не перенос основной базы, а чтение данных из сторонней SQL-базы (например, складской или CRM-системы), используйте механизм внешних источников данных в конфигураторе. Он позволяет описать таблицы SQL Server как объекты метаданных и обращаться к ним из запросов и отчётов 1С.

Для разовых выгрузок подойдёт подключение через COM/ADO из встроенного языка 1С с строкой подключения OLE DB или ODBC. Такой способ требует аккуратности с правами и не должен использоваться для записи напрямую в таблицы самой 1С — прямая запись в базу 1С средствами SQL нарушает целостность данных и лишает поддержки.

Проверка работоспособности и частые ошибки

После настройки проверьте связку по контрольным точкам: вход в конфигуратор, запуск пользовательского сеанса, выполнение регламентного задания, наличие таблиц в базе через SSMS. Если база видна в списке кластера, но вход не выполняется — проблема почти всегда в правах или сетевой доступности.

Типичные ошибки: неверное имя экземпляра SQL Server (нужен формат ИМЯ\ЭКЗЕМПЛЯР для именованных инстансов), отключённый TCP/IP, учётная запись без db_owner, устаревший клиентский доступ на сервере 1С. Ещё одна частая ситуация — база создана с неправильным collation; 1С требует сортировку Cyrillic_General_CI_AS для русскоязычных баз, иначе возможны ошибки сравнения строк.

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

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

Вход в конфигуратор и режим Предприятия
Норма

Сеанс открывается без ошибок подключения

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

Ошибка соединения с сервером БД или отказ в доступе

Таблицы в базе через SSMS
Норма

Появились системные таблицы платформы

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

База пустая — регистрация не завершилась

Регламентные задания
Норма

Задания выполняются по расписанию

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

Задания висят или падают с ошибками сеанса

Сортировка базы
Норма

Cyrillic_General_CI_AS

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

Другая collation — риск ошибок сравнения строк

Типичные ошибки
01
Подключение под sa — риск компрометации всего сервера при утечке пароля
02
Процентный автоинкремент файлов — на больших базах приводит к избыточным выделениям места и паузам
03
Прямая запись в таблицы 1С через SQL — разрушение целостности данных
04
Игнорирование резервного копирования журнала при модели Full — разрастание LDF-файла до заполнения диска

Обслуживание связки после настройки

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

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

Итог

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

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

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

Можно ли использовать бесплатный SQL Server Express для 1С?

Технически да, для небольших баз и тестовых сред. Но Express ограничен по объёму базы, памяти и числу ядер, а также не включает агент SQL Server для автоматических заданий обслуживания. Для рабочих баз с несколькими пользователями лучше Standard.

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

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

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

Через выгрузку в файл .dt из конфигуратора файловой базы и последующую загрузку в зарегистрированную клиент-серверную информационную базу. Перед выгрузкой выполните тестирование и исправление, после загрузки — проверьте права пользователей и регламентные задания.

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

Сначала сетевую доступность: ping и telnet на порт SQL Server с машины сервера 1С. Затем — запущена ли служба SQL Server, включён ли TCP/IP, правильно ли указано имя экземпляра и не блокирует ли брандмауэр порт.

Можно ли читать данные 1С напрямую SQL-запросами для отчётов?

Чтение через SELECT технически возможно и используется для внешней аналитики, но структура таблиц 1С сложна и может меняться при обновлениях. Безопаснее использовать СКД, внешние источники данных или выгрузки в отдельную аналитическую базу.