База 1С на Microsoft SQL Server: настройка от сервера до первого запуска

· 9 мин

Содержание

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

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

Что должно быть готово до начала

Проверьте заранее. Половина «необъяснимых» ошибок при подключении растёт отсюда.

  • ✅ Установлен сервер 1С:Предприятия и запущена служба «Агент сервера 1С:Предприятия». Кластер виден в консоли администрирования.
  • ✅ Установлен Microsoft SQL Server (на этой же машине или на отдельной). Подойдёт редакция Standard или Express, но у Express жёсткие лимиты: база до 10 ГБ, оперативной памяти до 1 ГБ на экземпляр.
  • ✅ Если SQL Server на другой машине, между ней и сервером 1С открыт порт SQL Server. Для экземпляра по умолчанию это TCP 1433.
  • ✅ Лицензии (программные или аппаратные) на сервер 1С доступны.
  • ✅ Версия платформы поддерживает вашу версию SQL Server. Сверяйтесь с документацией к платформе: новая СУБД со старой платформой — частая причина отказа.

Если SQL Server и сервер 1С стоят на разных машинах, на машине сервера 1С должны быть клиентские библиотеки доступа к SQL Server (драйвер ODBC или Native Client нужной версии). Без них кластер не подключится к СУБД, хотя сеть в порядке.

Перед стартом
Выполнено: 0 / 5

Настройка SQL Server под 1С

Режим проверки подлинности

Самый простой путь: учётная запись SQL Server с паролем. Для неё экземпляр должен работать в смешанном режиме (Windows и SQL Server Authentication). Проверьте в SQL Server Management Studio: правый клик на сервере → «Свойства» → «Безопасность».

Если режим был «только Windows», после смены перезапустите службу SQL Server. Без перезапуска вход по логину не заработает.

Сеть: TCP/IP и порт

Когда СУБД на отдельном сервере, откройте «Диспетчер конфигурации SQL Server»:

  1. Раздел «Конфигурация сети SQL Server» → ваш экземпляр.
  2. Протокол TCP/IP переведите в «Включено».
  3. В свойствах протокола на вкладке «IP-адреса» найдите порт (по умолчанию 1433).
  4. Перезапустите службу SQL Server.

Именованный экземпляр (например, SRV-SQL\SQL2019) использует динамический порт и службу SQL Server Browser. Чтобы не гадать, зафиксируйте порт вручную и откройте его в файрволе.

Параметры, которые лучше задать сразу

ПараметрЧто поставитьЗачем
Параллелизм (max degree of parallelism)1Рекомендация для 1С: меньше сюрпризов с производительностью
Максимальная память сервера (max server memory)Общий объём ОЗУ минус запас для ОС и службы 1СИначе SQL Server заберёт всю память
Сопоставление (collation) базыCyrillic_General_CI_ASПравильная сортировка и сравнение русских строк
Модель восстановленияFull или SimpleFull — если нужны копии журнала; Simple — для тестовой базы

Новую базу 1С создаст сама, а сопоставление она берёт от сервера. Проверить его можно запросом SELECT SERVERPROPERTY('Collation');. Если там не кириллическое, лучше решить это до создания базы: менять потом сложнее.

Учётная запись для 1С и права доступа

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

Создайте логин. В SSMS: «Безопасность» → «Имена входа» → «Создать имя входа». Выберите «Проверка подлинности SQL Server», задайте пароль. Либо запросом:

CREATE LOGIN usr_1c WITH PASSWORD = 'ЗадайтеСвой_Пароль_1!', CHECK_POLICY = ON;

Дальше выбор зависит от сценария.

  • 1С сама создаёт базу. Нужна серверная роль dbcreator: логин сможет создать базу и станет её владельцем.
  • База уже есть (например, восстановили из бэкапа). Логину нужна роль db_owner именно в этой базе, а роль dbcreator не нужна.
  • Не хочется разбираться. Роль sysadmin работает, но даёт слишком много прав. Для рабочего сервера используйте её только как временную меру.
-- Вариант 1: 1С создаёт базу сама
ALTER SERVER ROLE dbcreator ADD MEMBER usr_1c;

-- Вариант 2: база уже восстановлена
USE [ИмяБазы];
CREATE USER usr_1c FOR LOGIN usr_1c;
ALTER ROLE db_owner ADD MEMBER usr_1c;

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

Регистрация базы в консоли кластера 1С

Теперь главный шаг. Откройте «Администрирование серверов 1С:Предприятия» (оснастка консоли кластера).

  1. Раскройте «Центральные серверы 1С:Предприятия» → ваш сервер → «Кластеры» → нужный кластер → «Информационные базы».
  2. Правый клик → «Создать» → «Информационная база».
  3. Заполните поля формы (ниже расшифровка).
  4. Нажмите «ОК».

Поля формы:

ПолеЧто вписать
ИмяИмя базы в списке кластера, без пробелов, латиницей удобнее
ОписаниеЛюбое, для себя
Защищённое соединение«Выключено», если не настраивали шифрование
Сервер баз данныхИмя машины с SQL Server или имя\экземпляр; для нестандартного порта — имя,порт
Тип СУБДMicrosoft SQL Server
База данныхИмя базы на стороне SQL Server
Пользователь сервера БДЛогин, созданный выше (usr_1c)
Пароль пользователя БДЕго пароль
Смещение дат2000
Блокировка регламентных заданийНе включайте, пока база не готова
Создать базу данных в случае её отсутствияПоставьте, если база новая

Если база новая, флажок «Создать базу данных в случае её отсутствия» поставьте. Если подключаете восстановленную, флажок не нужен: тогда в поле «База данных» вы указываете точное имя существующей.

Смещение дат задаётся один раз при создании. Для 1С 8.3 ставят 2000. Если подключаете готовую базу, смещение должно совпадать с тем, что было у исходной. Иначе даты в документах «уедут» на 2000 лет.

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

Как проверить, что подключение работает

Не считайте, что раз форма закрылась без ошибки, всё готово. Проверьте в три приёма.

  1. В SQL Server. В SSMS в списке баз данных появилась ваша база. В её свойствах владелец и сопоставление такие, как ожидали.
  2. В консоли кластера. Откройте свойства базы: поля с СУБД и сервером заполнены верно, ошибок в статусе нет.
  3. Реальный запуск. В списке баз клиента 1С добавьте запись «На сервере 1С:Предприятия»: укажите кластер (имя_сервера или имя_сервера:1541) и имя информационной базы. Запустите режим «Конфигуратор» или «1С:Предприятие».

Для проверки в Конфигураторе зайдите в «Администрирование» → «Загрузить информационную базу» (если есть выгрузка .dt) или создайте конфигурацию с нуля через «Конфигурация» → «Открыть конфигурацию». Если загрузка прошла и размер базы в SSMS вырос, соединение рабочее.

Заодно посмотрите в SSMS, под каким логином идут сессии (sys.dm_exec_sessions). Там должен быть ваш usr_1c, а не sa и не учётка Windows.

Типичные ошибки при подключении

Тексты ошибок в консоли длинные, но смысл обычно умещается в одну строку. Ориентируйтесь на ключевые фразы.

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

Ещё один сценарий: подключить существующую базу

Когда нужно переехать с файловой базы или подключить восстановленную копию, есть два пути.

  • Через .dt. Создаёте пустую базу на SQL Server (шаги выше), затем в Конфигураторе: «Администрирование» → «Загрузить информационную базу». Подходит почти всегда и переносит базу между версиями платформы.
  • Через бэкап SQL. Восстанавливаете .bak на тот же или новый SQL Server, регистрируете базу в кластере (без флажка «Создать базу данных»), указываете то же имя и смещение дат.

Второй способ быстрее на больших базах, но требует совпадения версии платформы и совпадающего набора расширений. Если сомневаетесь, идите через .dt.

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

Когда нужен ODBC и как он связан с этой настройкой

Путаница с ODBC возникает из-за соседней задачи: прочитать данные 1С из Excel, Power BI или другой программы. Тут действительно создают ODBC-подключение (в «Источниках данных ODBC» Windows, 64-разрядная версия), указывают сервер SQL, базу и тот же логин.

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

Прямая запись в таблицы базы 1С запросами SQL ломает целостность и снимает базу с поддержки. Чтение допустимо, запись — нет.

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

Можно ли использовать Windows-аутентификацию вместо логина и пароля?
Для кластера на Windows: можно, если служба агента сервера 1С работает от доменной учётной записи, а у неё есть права в SQL Server. В поля логина и пароля тогда ничего не вписывают. Но чаще используют SQL-логин, он проще в диагностике.
Какой порт открыть для связи сервера 1С с SQL Server?
Для экземпляра по умолчанию TCP 1433. Для именованного — тот порт, что вы зафиксировали в конфигурации сети, плюс UDP 1434 для службы Browser, если вы на неё рассчитываете.
Нужно ли ставить SQL Server на тот же компьютер, что и сервер 1С?
Не обязательно. Для небольшой базы на 5–10 пользователей обычно хватает одной машины. Когда пользователей больше, СУБД выносят на отдельный сервер, чтобы они не конкурировали за память.
Почему база создалась, а логин не видит её в списке?
Создала её другая учётная запись: владельцем стал тот логин, под которым шло создание. Назначьте нужному логину db_owner в этой базе или сделайте его владельцем.
Можно ли поменять сервер SQL в уже созданной базе?
Да. Перенесите базу на новый SQL Server бэкапом, затем в свойствах информационной базы в консоли кластера смените имя сервера баз данных. Смещение дат при этом не трогайте.
Подойдёт ли SQL Server Express для рабочей базы?
Для малого учёта да, пока база укладывается в лимит 10 ГБ. Когда она подрастёт, придётся переезжать на Standard, поэтому закладывайте такой переезд заранее.