Подключение базы 1С к Microsoft SQL Server с нуля

· 9 мин

Содержание

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

Инструкция для клиент-серверного варианта на платформе 8.3 и Windows Server 2016 или новее. Файловая база так не подключается: её сначала нужно выгрузить в .dt и загрузить уже в серверную.

Какую версию SQL Server выбрать

Жёсткого списка в статье не будет: он меняется с каждым релизом платформы. Правило простое. Откройте документацию к вашей версии платформы (раздел о системных требованиях клиент-серверного варианта) и возьмите версию SQL Server из списка поддерживаемых. Если платформа свежая, а SQL Server старый, соединение может не установиться или база будет работать с ограничениями.

Что учесть при выборе:

  • 🧩 Редакция. Для небольших баз хватает Standard. Express ограничен по размеру базы и памяти, для рабочей бухгалтерии на несколько пользователей его берут редко.
  • 🖥️ Разрядность. Платформа и сервер 1С должны быть 64-разрядными. SQL Server сегодня выпускается только в 64-разрядном виде.
  • 🔤 Сортировка (collation). Нужна нечувствительная к регистру, например Cyrillic_General_CI_AS. Проверяйте её сразу: сменить сортировку сервера после установки неприятно.
  • 🧮 Лицензия SQL Server. Это отдельный продукт Microsoft и отдельные деньги: лицензия 1С на него не распространяется.
РазмещениеКогда подходитМинус
SQL и сервер 1С на одной машинедо 10–15 пользователей, тестыОба сервиса делят память и диск
Два сервера: 1С отдельно, SQL отдельноот 20–30 пользователей, тяжёлые отчётыНужна быстрая сеть между ними

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

Ставьте SQL Server на выделенный диск или хотя бы на раздел, где нет файла подкачки Windows. Под файлы данных, журнал транзакций и tempdb лучше развести разные тома. Если дисков один, это не критично для старта, но потом пригодится.

При установке отметьте:

  1. Компонент Database Engine Services. Полнотекстовый поиск 1С использует свой механизм, он вам не нужен.
  2. Сортировку Cyrillic_General_CI_AS на странице Server Configuration → Collation.
  3. Режим проверки подлинности: Mixed Mode, если планируете логин SQL (sa или отдельная учётка для 1С). Режим только Windows подходит не всем сценариям, поэтому проще оставить смешанный.
  4. Администраторов SQL Server: добавьте себя, пароль sa задайте длинный и сохраните.

После установки откройте SQL Server Configuration Manager:

  • SQL Server Network Configuration → Protocols for MSSQLSERVER: включите TCP/IP.
  • В свойствах TCP/IP на вкладке IP Addresses проверьте порт. Для основного экземпляра это 1433. Именованный экземпляр использует динамический порт, и его лучше зафиксировать вручную.
  • Перезапустите службу SQL Server.

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

Настройки, которые советует 1С

В SSMS откройте свойства сервера (Properties) и поправьте:

  • Max degree of parallelism — 1. Параллельные планы запросов для 1С обычно вредят.
  • Max server memory — оставьте системе 2–4 ГБ. Если SQL и 1С на одной машине, оставьте больше: сервер 1С тоже потребляет память.
  • Режим восстановления базы — Full, если нужны бэкапы журнала, или Simple, если достаточно полных копий раз в сутки.

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

Запустите установщик платформы на машине сервера и отметьте компонент Сервер 1С:Предприятия. Сразу ставьте консоль администрирования серверов, если собираетесь управлять с этой же машины.

Установщик предложит запускать службу от имени локального пользователя USR1CV8. Это нормальный вариант. Если сервер 1С и SQL находятся на разных машинах, учётка службы 1С к SQL не обращается: в SQL заходит логин, заданный в настройках информационной базы.

Проверьте, что служба Агент сервера 1С:Предприятия запущена и стоит автозапуск. По умолчанию она слушает порт 1540, менеджер кластера использует 1541, рабочие процессы получают порты из диапазона 1560–1591. В брандмауэре откройте эти порты на сервере 1С и 1433 на сервере SQL (если машины разные).

Создание логина и прав в SQL Server

Для 1С нужен логин с правами создавать базы. Заходить в базу от имени sa технически можно, но это плохая практика.

  1. В SSMS: Security → Logins → New Login.
  2. Тип — SQL Server authentication, задайте имя, например onec_user, и пароль.
  3. На вкладке Server Roles отметьте dbcreator, чтобы 1С сама создала базу.
  4. Если базу вы создали в SSMS заранее, дайте логину роль db_owner на ней.

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

Создание информационной базы на SQL Server

Основной путь — консоль администрирования серверов 1С.

  1. Запустите консоль. В дереве правой кнопкой по Центральные серверы 1С:Предприятия выберите Создать → Центральный сервер, укажите имя машины и порт 1540. Если сервер уже добавлен, просто разверните его.
  2. Откройте Кластеры → Local cluster (кластер по умолчанию).
  3. Правой кнопкой по Информационные базы → Создать → Информационная база.
  4. Заполните форму:
ПолеЧто вводить
ИмяИмя базы в списке 1С, например buh_firma
Защищённое соединениеОставьте «выключено», если нет специальных требований
Тип СУБДMicrosoft SQL Server
Сервер баз данныхИмя машины SQL или имя\экземпляр
База данныхИмя базы в SQL, можно совпадающее с именем
Пользователь сервера БДЛогин из предыдущего раздела
ПарольПароль этого логина
Смещение дат2000 (для новых баз)
Создать базу данных в случае её отсутствияПоставьте флажок
  1. Нажмите OK. Через несколько секунд база появится в списке.

Смещение дат 2000 менять не нужно, если вы не переносите старую базу. При загрузке .dt из базы со смещением 0 параметр обычно выставляют так же, как был у источника.

Второй способ — создать базу из списка запуска клиента: Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации, затем указать «На сервере 1С:Предприятия», кластер сервер:1541 и параметры СУБД. Результат тот же, но консоль показывает больше настроек.

Добавление базы в список запуска и загрузка данных

Чтобы пользователи увидели базу:

  1. В окне запуска 1С нажмите Добавить → Добавление в список существующей информационной базы.
  2. Тип размещения — На сервере 1С:Предприятия.
  3. Кластер: имя_сервера:1541. Имя информационной базы — то, что вы задали в консоли.
  4. Завершите мастер и выберите способ аутентификации.

Чтобы загрузить данные из файловой базы:

  1. Откройте файловую базу в Конфигураторе и выберите Администрирование → Выгрузить информационную базу, сохраните .dt.
  2. Откройте новую серверную базу в Конфигураторе и выберите Администрирование → Загрузить информационную базу.

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

Куда ставить SQL Server?

Проверка соединения и поиск ошибок

После создания проверьте три вещи:

  • 🔌 В консоли базу видно, и в её свойствах нет красных пометок.
  • 👤 Клиент открывает базу и пускает пользователя.
  • 🗃️ В SSMS появилась база с нужным именем и она не в состоянии Restoring или Offline.

Если соединение не поднялось, смотрите на текст ошибки.

Диагностика: выберите симптом

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

Что настроить для хорошей скорости

Разовые настройки уже сделаны выше. Остальное — привычки обслуживания.

  • 📊 Статистика. Обновляйте её регулярно, лучше ежедневно ночью. Устаревшая статистика — самая частая причина внезапно медленных отчётов.
  • 🧱 Индексы. Раз в неделю реорганизуйте или перестраивайте самые фрагментированные. Для большинства небольших баз хватает стандартных планов обслуживания SQL Server.
  • 💾 Файлы. Задайте разумный авторост (например, 256–512 МБ) вместо процентного. Процентный на крупной базе даёт долгие паузы.
  • 🧠 Память. Следите за тем, чтобы Windows не уходила в своп из-за аппетитов SQL.
  • 🚫 Журнал. В режиме Full без бэкапов журнала файл .ldf растёт без конца. Либо делайте копии журнала, либо переведите базу в Simple.

Если регламентные задания (закрытие месяца, обновление индексов 1С) идут долго, смотрите не на «оптимизацию», а на нагрузку: в SSMS есть Activity Monitor, он показывает ожидания и блокировки.

Резервное копирование и регулярное обслуживание

Копию данных удобнее делать средствами SQL Server: она быстрее, чем выгрузка в .dt, и содержит точное состояние базы.

Минимальный план:

  1. Полная копия — раз в сутки ночью.
  2. Копии журнала транзакций — каждые 15–60 минут, если режим Full.
  3. Копию кладите на другой диск или другую машину, а не рядом с базой.
  4. Раз в месяц разворачивайте копию на тестовой базе и убеждайтесь, что она открывается.

Восстановление выполняйте в новую базу (RESTORE DATABASE ... WITH MOVE), а в списке запуска добавьте её отдельной записью. Заменять рабочую базу, не убедившись, что копия живая, нельзя.

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

Перед обновлением платформы или конфигурации снимите полную копию. Для отката это быстрее, чем разбирать последствия.

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

Можно ли подключить 1С к SQL Server без сервера 1С:Предприятия?
Нет. Клиент общается с кластером серверов 1С, а тот с СУБД. Прямого доступа с рабочего места нет.
Нужна ли отдельная лицензия на SQL Server?
Да. SQL Server лицензируется Microsoft отдельно. Условия и редакцию уточняйте у поставщика.
Можно ли хранить базу 1С на SQL Server Express?
Технически можно, но у редакции есть ограничения по размеру базы, памяти и числу ядер. Для рабочей базы с ростом данных её быстро не хватает.
Что делать, если нужно сменить пароль логина SQL, под которым работает база?
Смените его в SSMS, затем в консоли администрирования откройте свойства информационной базы и укажите новый пароль. Делайте это, когда в базе нет активных сеансов.
Можно ли поменять СУБД у существующей базы?
Прямого переключения нет. Выгрузите базу в .dt, создайте новую на нужной СУБД и загрузите данные.