Перевод базы 1С на MS SQL: сервер 1С, кластер и создание базы
Содержание
Напрямую 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: параметры, которые потом сложно поменять
Установка идёт мастером, но три экрана решают судьбу сервера.
- Компоненты. Достаточно
Database Engine Services. Средства управления SQL Server Management Studio (SSMS) ставятся отдельным установщиком — скачайте их, без них администрировать неудобно. - Collation (параметры сортировки). На вкладке
CollationвыберитеCyrillic_General_CI_AS. Если Windows русская, она обычно уже стоит по умолчанию. Поменять сортировку сервера после установки — это переустановка системных баз, проще сделать сразу. - Режим проверки подлинности. Выберите
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С Предприятия».
- На узле
Central 1C:Enterprise 8.3 serversправой кнопкой →Создать → Центральный сервер 1С:Предприятия 8.3. - В поле «Имя» укажите сетевое имя компьютера, порт оставьте
1540. - Раскройте сервер: там уже есть
Локальный кластерна порту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
Если база уже есть в файловом варианте, порядок такой:
- Откройте файловую базу
в Конфигураторе:
Администрирование → Выгрузить информационную базу, сохраните файл.dt. - Создайте пустую серверную базу одним из способов выше.
- Откройте серверную базу в Конфигураторе:
Администрирование → Загрузить информационную базу, выберите.dt.
Загрузка .dt требует монопольного доступа и полностью заменяет содержимое базы. Пока идёт перенос, пользователи не должны работать в файловой базе — иначе внесённое после выгрузки потеряется.
Ошибки при подключении 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С:Предприятия?
Нужно ли настраивать ODBC-источник в Windows?
Можно ли держать несколько баз 1С на одном SQL Server?
Подойдёт ли SQL Server Express для рабочей базы?
Как перенести базу на другой SQL Server?
.dt в Конфигураторе и загрузку в новую серверную базу. Второй вариант — резервная копия SQL и восстановление на новом сервере, после чего в свойствах базы в кластере меняют сервер баз данных.