Перевод базы 1С на MS SQL: сервер 1С, кластер и создание базы

· 10 мин

Содержание

Напрямую 1С к SQL Server не подключается: между ними всегда стоит сервер 1С:Предприятия. Вы создаёте информационную базу в кластере серверов 1С, указываете тип СУБД MS SQL Server, имя сервера баз данных, имя базы и логин SQL — и уже сервер 1С сам ходит в SQL. Настраивать источник ODBC в Windows для этого не нужно.

Типичная ситуация: файловая база выросла до 15–20 ГБ, пользователей стало 15, и по утрам всё виснет на блокировках. Решение — клиент-серверный вариант. Ниже порядок действий для платформы 8.3 на Windows Server 2016 и новее.

Что подготовить до подключения 1С к SQL Server

Схема из трёх звеньев:

  • 🖥 Клиент 1С — рабочие места пользователей. С SQL Server они не общаются вообще.
  • ⚙️ Сервер 1С:Предприятия — служба агента ragent, менеджер кластера rmngr и рабочие процессы rphost. Именно он подключается к СУБД.
  • 🗄 Microsoft SQL Server — хранит данные. Может стоять на той же машине, что и сервер 1С, или на отдельной.

Отсюда первое правило: драйвер SQL Server и сетевой доступ к порту СУБД нужны на машине с сервером 1С, а не у пользователей.

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

РедакцияКогда подходитОграничения
Expressтест, 2–5 пользователей, маленькая базабаза до 10 ГБ, буферный пул около 1,4 ГБ, до 4 ядер
Standardрабочие базы малого и среднего бизнесаплатная, лицензируется по ядрам или CAL
Enterpriseкрупные базы, сотни пользователейдорогая, нужна редко
Developerтолько разработка и тестыиспользовать в работе запрещено лицензией

Какие версии SQL Server поддерживает ваша сборка платформы, смотрите в системных требованиях к этой сборке. Ставить самую свежую версию СУБД на старую платформу — частая причина проблем.

Лицензии и железо

Для клиент-серверного режима нужна лицензия на сервер 1С:Предприятия (для 64-разрядного сервера — соответствующая лицензия) плюс клиентские лицензии на пользователей. Без серверной лицензии кластер не даст работать с базой.

Ориентир по памяти: на 20–30 пользователей бухгалтерии сервер 1С и SQL на одной машине живут на 32 ГБ ОЗУ и SSD-дисках. Диски важнее процессора: база и журнал транзакций на HDD — главный тормоз.

Установка Microsoft SQL Server: параметры, которые потом сложно поменять

Установка идёт мастером, но три экрана решают судьбу сервера.

  1. Компоненты. Достаточно Database Engine Services. Средства управления SQL Server Management Studio (SSMS) ставятся отдельным установщиком — скачайте их, без них администрировать неудобно.
  2. Collation (параметры сортировки). На вкладке Collation выберите Cyrillic_General_CI_AS. Если Windows русская, она обычно уже стоит по умолчанию. Поменять сортировку сервера после установки — это переустановка системных баз, проще сделать сразу.
  3. Режим проверки подлинности. Выберите Mixed Mode (SQL Server и Windows) и задайте пароль для sa. Так проще всего подключить 1С по логину и паролю.

На этом же шаге укажите каталоги данных, журналов и tempdb. Если дисков несколько, разнесите файлы данных и журналы на разные тома.

Отдельный логин для 1С вместо sa

Работать под sa можно, но лучше завести отдельного пользователя. В SSMS: Security → Logins → New Login, тип SQL Server authentication, снимите флажок принудительной смены пароля.

  • Если базу будет создавать сам сервер 1С — дайте логину серверную роль dbcreator. Создатель базы становится её владельцем.
  • Если базу заранее создаёт администратор SQL — достаточно роли db_owner в этой базе.

Готовый скрипт для логина:

CREATE LOGIN [user1c] WITH PASSWORD = N'СложныйПароль_2024',
    CHECK_POLICY = ON, CHECK_EXPIRATION = OFF;
ALTER SERVER ROLE [dbcreator] ADD MEMBER [user1c];

Сетевой протокол TCP/IP

Если SQL Server и сервер 1С стоят на разных машинах, откройте SQL Server Configuration Manager → SQL Server Network Configuration → Protocols for <имя экземпляра> и включите TCP/IP. Служба SQL Server после этого перезапускается.

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

В брандмауэре откройте 1433/TCP для машины с сервером 1С. Для именованного экземпляра порт обычно динамический: либо закрепите его вручную на той же вкладке TCP/IP, либо откройте 1434/UDP для службы SQL Server Browser.

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

Установка сервера 1С

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

  • Сервер 1С:Предприятия 8;
  • Администрирование сервера 1С:Предприятия — это консоль кластера;
  • при необходимости — модули расширения веб-сервера и клиент.

На следующем шаге поставьте флажок установки сервера как службы Windows. Мастер предложит создать пользователя USR1CV8, под которым служба будет работать. Дайте ему пароль, который не истекает.

Регистрация консоли администрирования

Частая ловушка: консоль открывается пустой или пишет, что оснастка не найдена. Причина — не зарегистрирована библиотека radmin.dll нужной версии. Запустите от администратора:

regsvr32 "C:\Program Files\1cv8\8.3.XX.XXXX\bin\radmin.dll"

Вместо 8.3.XX.XXXX подставьте каталог установленной версии. То же самое делает ярлык регистрации утилиты администрирования в меню «Пуск» в группе 1С:Предприятие. Перерегистрировать библиотеку нужно после каждого обновления платформы.

Центральный сервер и кластер

  1. Откройте консоль «Администрирование серверов 1С Предприятия».
  2. На узле Central 1C:Enterprise 8.3 servers правой кнопкой → Создать → Центральный сервер 1С:Предприятия 8.3.
  3. В поле «Имя» укажите сетевое имя компьютера, порт оставьте 1540.
  4. Раскройте сервер: там уже есть Локальный кластер на порту 1541.

Порты, которые должны быть открыты на сервере 1С для клиентов:

ПортКто слушает
1540агент сервера (ragent)
1541менеджер кластера (rmngr)
1560–1591рабочие процессы (rphost), диапазон задаётся в свойствах рабочего сервера

Подключение 1С к SQL Server: создание информационной базы

Базу на SQL создают двумя способами. Результат одинаковый.

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

В консоли раскройте Локальный кластер → Информационные базы, правой кнопкой → Создать → Информационная база. Заполните поля:

ПолеЧто указать
Имяимя базы в кластере, латиницей, без пробелов: buh_ooo_romashka
Защищённое соединениеобычно «выключено» в локальной сети
Сервер баз данныхимя машины с SQL: SQLSRV; именованный экземпляр — SQLSRV\INSTANCE; нестандартный порт — SQLSRV,1450
Тип СУБДMS SQL Server
База данныхимя базы в SQL; удобно совпадает с именем в кластере
Пользователь сервера БДuser1c или sa
Пароль пользователя сервера БДпароль этого логина
Разрешить выдачу лицензий сервером 1С:Предприятия«Да», если используете серверные клиентские лицензии
Смещение датдля MS SQL обычно 2000; задаётся при создании базы
Создать базу данных в случае её отсутствияфлажок, если базы в SQL ещё нет
Установить блокировку регламентных заданийвключите для копии рабочей базы, чтобы она не отправляла обмены и отчёты

Важная деталь: поле «Сервер баз данных» сервер 1С разрешает у себя. Если SQL стоит на той же машине, можно писать localhost — но только в этом случае.

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

Способ 2. Из окна запуска 1С

В окне запуска: Добавить → Создание новой информационной базы, выберите пустую базу или шаблон конфигурации, затем вариант расположения На сервере 1С:Предприятия. Откроется та же форма параметров, что в консоли: кластер, имя базы, СУБД, логин и пароль. Платформа создаст базу в кластере и в SQL и сразу добавит её в список.

Перенос файловой базы на SQL Server

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

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

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

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

Ошибки при подключении 1С к SQL Server

Текст ошибки СУБД 1С показывает целиком, вместе с именем драйвера. По нему и ищите причину.

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

Если ошибка не уходит

Проверьте подключение не из 1С, а с машины сервера 1С тем же логином. Самый быстрый способ — SSMS. Без SSMS можно создать на рабочем столе пустой файл test.udl, открыть его двойным щелчком и нажать «Проверить подключение». Если не подключается и так — проблема в SQL Server или сети, 1С тут ни при чём.

Если подключение из SSMS работает, а из 1С нет, сравните имя сервера: SSMS могла подключиться через SQLSRV\SQLEXPRESS, а в 1С указано просто SQLSRV.

Настройка SQL Server под 1С после подключения

Сразу после подключения база работает, но без настройки быстро начинает тормозить. Минимальный набор:

Память

По умолчанию SQL Server забирает всю свободную память и делится неохотно. Ограничьте её в свойствах сервера: Memory → Maximum server memory. Пример: на машине 32 ГБ, где стоят и SQL, и сервер 1С, отдайте SQL 16 ГБ, остальное останется рабочим процессам 1С и Windows. Если SQL на отдельной машине — оставьте Windows 3–4 ГБ.

Параллелизм

Для баз 1С рекомендуют ставить Max Degree of Parallelism = 1. Запросы 1С короткие и многочисленные, распараллеливание им чаще вредит:

EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max degree of parallelism', 1; RECONFIGURE;

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

МодельКогда выбиратьЧто нужно делать
Simpleдостаточно ночной полной копиижурнал очищается сам
Fullнужна точка восстановления на любой момент дняделать резервные копии журнала каждые 15–60 минут

Типичная беда: база в модели Full, а копий журнала никто не делает. Через полгода файл .ldf занимает весь диск, и база встаёт.

Регламентное обслуживание

Создайте в SSMS план обслуживания (Management → Maintenance Plans) или задания SQL Server Agent:

  • 📊 обновление статистик — ежедневно ночью;
  • 🔧 реорганизация индексов — ежедневно, перестроение — раз в неделю;
  • 🧹 очистка процедурного кэша DBCC FREEPROCCACHE — после обновления статистик, чтобы планы запросов пересчитались;
  • 💾 полная резервная копия — ежедневно, плюс копии журнала при модели Full.

Express не содержит SQL Server Agent. На ней регламент запускают через Планировщик заданий Windows и утилиту sqlcmd со скриптом.

Ещё две настройки базы: выключите Auto Shrink — автосжатие фрагментирует индексы и грузит диск. И не ставьте базу на один диск с файлом подкачки.

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

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