Администрирование · 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–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Установите SQL Server и включите TCP/IP, перезапустите службу
- 2Создайте пустую базу в SSMS с заданными файлами и приростом
- 3Создайте логин для 1С и назначьте роль db_owner на эту базу
- 4Проверьте подключение этим логином из SSMS или через sqlcmd
- 5Зафиксируйте имя сервера, имя базы и учётные данные для регистрации ИБ
Регистрация информационной базы на сервере 1С
Откройте консоль администрирования серверов 1С:Предприятия. В дереве выберите кластер, затем «Информационные базы» и создайте новую. В диалоге укажите: имя базы (как она будет видна пользователям), тип СУБД — MS SQL Server, имя сервера баз данных (имя машины или имя\экземпляр), имя базы данных, созданной на предыдущем шаге.
В полях пользователя и пароля укажите учётную запись SQL Server с правами на базу. Параметр «Создавать базу данных в случае её отсутствия» оставьте выключенным, если база уже создана вручную. Дата-смещение для MS SQL Server оставьте по умолчанию, если нет особых требований.
После сохранения запустите конфигуратор, выберите созданную базу. При первом входе платформа создаст системные таблицы в базе SQL Server — это признак успешной связки. Далее загрузите конфигурацию из файла .dt или обновите существующую.
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 для русскоязычных баз, иначе возможны ошибки сравнения строк.
Как проверить результат
Сеанс открывается без ошибок подключения
Ошибка соединения с сервером БД или отказ в доступе
Появились системные таблицы платформы
База пустая — регистрация не завершилась
Задания выполняются по расписанию
Задания висят или падают с ошибками сеанса
Cyrillic_General_CI_AS
Другая collation — риск ошибок сравнения строк
Обслуживание связки после настройки
Работающая связка требует регулярного обслуживания: резервное копирование базы средствами 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С сложна и может меняться при обновлениях. Безопаснее использовать СКД, внешние источники данных или выгрузки в отдельную аналитическую базу.