1С:Предприятие на MS SQL Server: от подготовки сервера до первой базы

· 10 мин

Содержание

Частое заблуждение: чтобы подключить 1С к SQL Server, достаточно указать в окне запуска адрес SQL и имя базы. Так не работает . Клиент 1С никогда не ходит в MS SQL напрямую: между ними всегда стоит сервер «1С:Предприятия 8.3». Базу создают в кластере этого сервера, выбирают тип СУБД MS SQL Server и указывают сервер баз данных, имя базы, логин и пароль SQL.

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

Как устроено подключение 1С к SQL Server

Цепочка выглядит так:

  1. 🖥️ Клиент 1С (толстый, тонкий или веб-клиент через публикацию) подключается к агенту сервера 1С по порту 1540.
  2. ⚙️ Агент передаёт его менеджеру кластера (1541), а тот — рабочему процессу rphost. Диапазон портов рабочих процессов задают в свойствах рабочего сервера, по умолчанию это 1560–1591.
  3. 🗄️ Рабочий процесс сам открывает соединение с SQL Server и выполняет запросы.

Отсюда два практических вывода.

  • Драйвер SQL нужен на машине, где стоит сервер 1С, а не на компьютерах пользователей.
  • Пользователям не нужен ни логин SQL, ни открытый порт 1433. Они видят только сервер 1С. Логин SQL хранится в свойствах информационной базы в кластере.

Сервер 1С и SQL Server можно ставить на одну машину или на разные. Для небольшой компании (до 20–30 пользователей) одна машина проще и обычно быстрее: нет сетевой задержки между rphost и СУБД. На двух машинах легче масштабироваться, но между ними нужна быстрая сеть.

Файловую базу нельзя «переключить» на SQL галочкой. Её выгружают в файл .dt и загружают в новую пустую базу на сервере. Порядок — в разделе про создание базы.

Подготовка к подключению 1С к MS SQL: сервер, логин, драйвер

Сервер 1С:Предприятия

Сервер 1С ставят из того же дистрибутива технологической платформы, что и клиент, отметив компонент «Сервер 1С:Предприятия». Установщик предложит запустить его как службу Windows — соглашайтесь. Разрядность сервера 1С (64-бит) не связана с разрядностью клиентов.

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

SQL Server

При установке SQL Server от выбора зависят две вещи, которые потом дорого менять:

ПараметрЧто выбратьПочему
Режим проверки подлинностиСмешанный (SQL Server и Windows)1С чаще подключают по логину SQL, а не по учётке Windows
Параметры сортировки (collation)Cyrillic_General_CI_ASНужна для корректного сравнения и сортировки русских строк
ЭкземплярПо умолчанию (MSSQLSERVER)Проще адресация: достаточно имени сервера без \ИМЯ

Если SQL уже стоит с другой сортировкой — новую базу можно создать заранее вручную с нужной сортировкой и потом указать её имя в 1С.

Логин SQL для 1С

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

  • ✅ серверная роль dbcreator — если 1С будет сама создавать базы;
  • ✅ sysadmin — если планируете загрузку .dt и реструктуризацию без ручной выдачи прав (так делают чаще всего, но это широкие права);
  • ✅ роль db_owner в конкретной базе — минимальный вариант, когда базу создаёт администратор SQL заранее.

Не используйте логин sa для рабочих баз. Его пароль окажется в свойствах каждой базы и у каждого, кто имеет доступ к консоли кластера.

Если поле пользователя SQL при создании базы оставить пустым, 1С подключится по проверке подлинности Windows от имени учётной записи службы сервера 1С. Тогда права в SQL выдают этой учётной записи (по умолчанию служба работает под USR1CV8).

Драйвер на машине сервера 1С

Если SQL и сервер 1С на разных машинах, на сервере 1С должен стоять клиентский драйвер SQL Server: «SQL Server Native Client» или «Microsoft ODBC Driver for SQL Server». Какие версии драйвера поддерживает ваша сборка платформы, смотрите в системных требованиях к ней. На одной машине с SQL драйвер обычно уже установлен вместе с СУБД.

Сеть и брандмауэр

  • 🔌 На SQL-сервере в «Диспетчере конфигурации SQL Server» включите протокол TCP/IP и перезапустите службу SQL.
  • 🧱 Откройте входящий порт 1433/TCP для машины сервера 1С.
  • 🧭 Для именованного экземпляра нужна служба SQL Server Browser и порт 1434/UDP либо фиксированный порт экземпляра.
  • 🖥️ На сервере 1С откройте 1540, 1541 и диапазон рабочих процессов для клиентов.

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

Нужен ли DSN и ODBC, чтобы подключить 1С к SQL

Нет. Источник данных ODBC (DSN) в «Администрировании Windows» для работы 1С с MS SQL настраивать не нужно. Сервер 1С сам формирует строку подключения из полей «Сервер баз данных», «Имя базы данных», «Пользователь» и «Пароль». Созданный вручную DSN платформа просто не использует.

DSN пригодится в другой задаче — когда к SQL нужно подключиться не из платформы, а снаружи или через механизм внешних источников:

ЗадачаНужен ли DSNЧто настраивать
Работа информационной базы 1С на SQLНетСвойства базы в кластере
Чтение сторонней SQL-базы из 1С (объект «Внешние источники данных» в конфигураторе)Не обязательноСтроку подключения ODBC или DSN
Отчёты из Excel или Power BI по таблицам 1СДа или строка подключенияODBC-драйвер на ПК аналитика

Если DSN всё же нужен для внешнего источника, его создают в «Источниках данных ODBC» той разрядности, что и процесс, который будет его читать. Для 64-разрядного сервера 1С — 64-разрядный менеджер ODBC, иначе драйвер не найдётся.

Прямое чтение таблиц 1С из Excel или BI обходит права пользователей 1С и не гарантирует целостность. Таблицы называются вроде _Document123, их состав меняется при обновлении конфигурации.

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

Способ 1. Через окно запуска 1С

  1. Запустите 1С, нажмите Добавить.
  2. Выберите «Создание новой информационной базы» — пустую или из шаблона.
  3. Тип расположения — «На сервере 1С:Предприятия».
  4. Заполните поля:
    • «Кластер серверов 1С:Предприятия» — имя машины сервера 1С (если агент на нестандартном порту — сервер:порт);
    • «Имя информационной базы в кластере» — латиницей без пробелов, например buh_ooo_romashka;
    • «Тип СУБД» — MS SQL Server;
    • «Сервер баз данных» — имя SQL-сервера или сервер\экземпляр;
    • «Имя базы данных» — имя базы в SQL, удобно сделать таким же, как в кластере;
    • «Пользователь сервера БД» и «Пароль» — логин, созданный ранее;
    • «Смещение дат» — 2000;
    • флажок «Создать базу данных в случае ее отсутствия».
  5. При необходимости включите «Разрешить выдачу лицензий сервером 1С:Предприятия».
  6. Нажмите Далее, проверьте параметры запуска и Готово.

Смещение дат для MS SQL ставьте 2000. Значение задаётся только при создании базы, позже его не поменять.

Флажок «Установить блокировку регламентных заданий» включайте, если база — копия рабочей. Иначе копия начнёт загружать банковские выписки, отправлять почту и обмениваться данными наравне с оригиналом.

Способ 2. Через консоль кластера

В оснастке «Администрирование серверов 1С:Предприятия» раскройте Центральные серверы 1С:Предприятия → имя сервера → Кластеры → Локальный кластер → Информационные базы. В контекстном меню — Создать → Информационная база. Поля те же, что в способе 1. Потом базу добавляют в список у пользователей через «Добавление в список существующей информационной базы».

Если консоль не открывается после установки, зарегистрируйте её библиотеку командой от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.25.1445\bin\radmin.dll"

Номер версии в пути подставьте свой.

Способ 3. Перенос файловой базы на SQL

  1. Откройте файловую базу в конфигураторе и сделайте Администрирование → Выгрузить информационную базу в файл .dt.
  2. Создайте пустую серверную базу способом 1 или 2 — без шаблона.
  3. Откройте новую базу в конфигураторе: Администрирование → Загрузить информационную базу, выберите .dt.
  4. Дождитесь окончания загрузки и откройте базу в режиме «1С:Предприятие».

Загрузка .dt требует монопольного доступа к базе и полностью заменяет её содержимое. Для пустой новой базы это не проблема. Список пользователей и их пароли переносятся вместе с данными.

Перед вводом базы на SQL в работу
Выполнено: 0 / 5

Ошибки подключения 1С к SQL Server и что с ними делать

Тексты ошибок 1С обычно показывает целиком, с префиксом драйвера. По ним почти всегда понятно, на каком звене цепочки сбой.

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

Порядок проверки, если непонятно, где сбой:

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

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

Настройка SQL Server для быстрой работы 1С

Подключение работает, но база тормозит — обычно причина в настройках СУБД по умолчанию. Их меняют один раз.

Память

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

Пример: на сервере 64 ГБ, на нём же 1С. Оставьте около 4 ГБ системе и 16–20 ГБ рабочим процессам 1С, SQL отдайте примерно 40 ГБ. Точнее подбирают по фактическому потреблению rphost в пиковые часы.

Параллелизм и tempdb

  • ⚙️ «Максимальная степень параллелизма» (MAXDOP) — для 1С обычно ставят 1. Запросы 1С короткие и многочисленные, распараллеливание чаще мешает, чем помогает.
  • 💾 tempdb — на быстрый SSD, отдельно от файлов баз. Несколько файлов одинакового размера (по числу ядер, но не больше восьми) снижают конкуренцию за служебные страницы.

Модель восстановления и обслуживание

Модель восстановленияКогда подходитЧто учесть
Простая (Simple)Копии баз, тестовые базы, рабочие базы с ежедневным бэкапомВосстановление только на момент полной копии
Полная (Full)Базы, где нельзя терять день работыОбязательно регулярно копировать журнал транзакций, иначе он растёт до заполнения диска

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

Не включайте автоматическое сжатие базы (Auto Shrink). Оно фрагментирует индексы и само по себе нагружает диск.

Сеть между сервером 1С и SQL

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

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

Подойдёт ли бесплатный SQL Server Express для 1С?
Технически да, база подключится. Но у Express ограничен размер одной базы — 10 ГБ — и объём используемой памяти. Для рабочей базы с историей за несколько лет этого обычно мало.
Можно ли подключить 1С к SQL без сервера 1С:Предприятия?
Нет. Клиентская часть 1С работает с SQL только через сервер 1С. Без него доступен лишь файловый вариант базы.
Нужна ли отдельная лицензия на SQL Server?
Да, кроме редакции Express и Developer. Лицензии 1С на сервер и на пользователей права на использование SQL Server не дают, его лицензируют у Microsoft отдельно.
Как перенести базу на другой SQL-сервер?
Сделайте резервную копию базы средствами SQL, восстановите её на новом сервере и поменяйте в свойствах информационной базы в консоли кластера поле «Сервер баз данных». Перед этим заблокируйте начало сеансов, чтобы пользователи не вносили данные в старую копию.
Вместо MS SQL можно использовать PostgreSQL?
Да, платформа 8.3 поддерживает PostgreSQL в сборке, адаптированной для 1С. Порядок создания базы тот же, в поле «Тип СУБД» выбирают PostgreSQL.