Перевод информационной базы 1С 8.3 на MS SQL Server: от установки СУБД до обслуживания
Содержание
Чтобы установить базу 1С на сервер SQL, нужны три вещи: установленный MS SQL Server с кодировкой Cyrillic_General_CI_AS, сервер 1С:Предприятия 8.3 и SQL-логин с правом создавать базы. Саму базу создают не в SQL Management Studio, а через кластер 1С: консоль администрирования серверов или окно запуска. Данные переносят выгрузкой .dt из старой файловой базы и загрузкой в новую.
Частое заблуждение — «достаточно поставить SQL и подключить к нему файл 1Cv8.1CD». Так не работает . Клиент 1С не ходит в SQL напрямую: между ними всегда стоит сервер 1С:Предприятия. Без него и без серверной лицензии клиент-серверная база не запустится.
Что подготовить до установки: серверы, версии, лицензии
Начните с инвентаризации. Ошибки на этом этапе потом стоят дороже всего.
📋 Что нужно иметь на руках:
- 🖥️ Сервер под Windows Server 2016 или новее. СУБД и сервер 1С можно поставить на одну машину — для 10–30 пользователей это нормальная схема.
- 💾 Оперативная память: ориентир — от 16 ГБ при совмещённой установке. SQL Server и рабочие процессы 1С (
rphost) делят одну память. - 💽 Отдельный диск (лучше SSD) под файлы базы и журнала. Системный диск под данные не используйте.
- 🔑 Лицензия на сервер 1С:Предприятия. Клиентских лицензий файловой версии для этого недостаточно.
- 📄 Лицензии MS SQL Server на нужное число ядер или пользователей.
- 📦 Дистрибутив платформы той же версии, что стоит на клиентах.
Версии сервера 1С и клиентов должны совпадать до последней цифры. Клиент 8.3.24.1548 к серверу 8.3.24.1342 не подключится.
Какую редакцию SQL Server выбрать
| Редакция | Когда подходит | Ограничения |
|---|---|---|
| Express | Тест, небольшая база | Размер одной базы до 10 ГБ, урезана память, нет SQL Agent |
| Standard | Рабочие базы малого и среднего бизнеса | Основной выбор для 1С |
| Enterprise | Крупные базы, сотни пользователей | Дорогая, нужна редко |
| Developer | Только разработка и тесты | Запрещено использовать в рабочей среде |
Если бюджет не позволяет купить MS SQL, 1С 8.3 работает с PostgreSQL в сборке, которую распространяет фирма 1С. Порядок регистрации базы в кластере тот же, меняется только тип СУБД.
Список поддерживаемых версий СУБД зависит от версии платформы. Сверьтесь с ним до покупки: слишком свежий SQL Server на старой платформе может не подключиться.
Установка MS SQL Server под 1С: что выставить в мастере
Мастер установки SQL Server в основном можно проходить с параметрами по умолчанию. Но три настройки определяют, будет ли 1С работать вообще.
Шаг 1. Компоненты
Отметьте Database Engine Services. Отдельно скачайте и поставьте SQL Server Management Studio (SSMS) — в новых версиях она в дистрибутив не входит. Остальные компоненты для 1С не нужны.
Шаг 2. Параметры сортировки (Collation)
На вкладке Server Configuration → Collation проверьте значение. Нужно Cyrillic_General_CI_AS.
Сортировку сервера после установки поменять очень сложно — проверьте её до нажатия «Далее».
Если оставить SQL_Latin1_General_CP1_CI_AS, база создастся, но пойдут ошибки конфликта сортировки при работе с временными таблицами. Временные таблицы живут в tempdb, а она наследует сортировку сервера.
Шаг 3. Режим аутентификации
Выберите Mixed Mode (SQL Server и Windows) и задайте надёжный пароль для sa. Под sa 1С работать не будет — отдельный логин создадим ниже.
Шаг 4. Каталоги данных
На вкладке Data Directories укажите пути на отдельном диске: один каталог для файлов данных, другой — для журналов, третий — для резервных копий. Для tempdb в новых версиях мастер сам предложит несколько файлов — оставьте.
Настройки сразу после установки
Откройте SSMS, щёлкните правой кнопкой по серверу → Properties.
- Memory → Maximum server memory. По умолчанию SQL забирает почти всю память. На совмещённом сервере с 32 ГБ разумно поставить 20–22 ГБ, остальное оставить системе и
rphost. - Advanced → Max Degree of Parallelism. Для 1С обычно ставят
1. Запросы 1С короткие и многочисленные, параллелизм на них чаще мешает. - Протокол TCP/IP. В SQL Server Configuration Manager проверьте, что он включён, если сервер 1С стоит на другой машине. После включения перезапустите службу SQL Server — в нерабочее время, все подключения к СУБД оборвутся.
Те же параметры можно задать скриптом:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 20480;
EXEC sp_configure 'max degree of parallelism', 1;
RECONFIGURE;
SQL-логин для 1С и права доступа к базе
Сервер 1С подключается к СУБД под учётной записью, которую вы укажете при создании базы. Работать под sa — плохая практика: пароль администратора СУБД окажется в настройках кластера, и любой администратор 1С получит полный доступ к серверу.
Создайте отдельный логин:
- В SSMS откройте
Security → Logins, правой кнопкой →New Login. - Имя, например,
usr1c. ВыберитеSQL Server authentication, задайте пароль. - Снимите галку
User must change password at next login— иначе 1С не сможет войти. - На странице
Server Rolesотметьтеdbcreator. Эта роль нужна, чтобы 1С сама создала базу. - Нажмите
OK.
Скриптом то же самое:
CREATE LOGIN usr1c WITH PASSWORD = 'СложныйПароль_2x!', CHECK_POLICY = ON, CHECK_EXPIRATION = OFF;
ALTER SERVER ROLE dbcreator ADD MEMBER usr1c;
Когда база создастся, логин станет её владельцем и получит полные права внутри неё. Роль sysadmin ему не нужна.
CHECK_EXPIRATION = OFF выставлен не случайно. Если срок действия пароля истечёт, сервер 1С перестанет подключаться к базе, и утром никто не сможет войти.
Если базу заранее создал администратор СУБД, роль dbcreator не нужна. Тогда логину достаточно стать владельцем этой базы (db_owner).
Создание базы 1С в кластере серверов
Сервер 1С:Предприятия должен быть установлен и запущен как служба. Агент слушает порт 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591 по умолчанию. Если клиенты в другой подсети, откройте эти порты в брандмауэре сервера.
Создать базу можно двумя способами — результат одинаковый.
Способ 1. Через окно запуска 1С
- На клиенте нажмите
Добавить → Создание новой информационной базы. - Выберите «Создание информационной базы без конфигурации» — данные потом загрузите из
.dt. - Тип расположения — «На сервере 1С:Предприятия».
- Заполните поля:
- Кластер серверов
1С:Предприятия — имя сервера 1С, например
srv1c; - Имя информационной базы в кластере — латиницей, без пробелов:
buh_main; - Тип СУБД —
MS SQL Server; - Сервер баз данных — имя сервера SQL, для именованного экземпляра
srvsql\INSTANCE; - Имя базы данных — имя базы в SQL, удобно совпадает с именем в кластере;
- Пользователь сервера БД и пароль — логин
usr1c; - Смещение дат —
2000для MS SQL; - галка Создать базу данных в случае ее отсутствия — включена.
- Кластер серверов
1С:Предприятия — имя сервера 1С, например
- Нажмите «Далее» и «Готово».
Способ 2. Через консоль администрирования серверов
Откройте оснастку «Администрирование серверов 1С Предприятия», разверните кластер, правой кнопкой по ветке Информационные базы → Создать → Информационная база. Поля те же, плюс две полезные галки:
- ✅ Разрешить выдачу лицензий сервером 1С:Предприятия — если лицензии стоят на сервере;
- ✅ Установить блокировку регламентных заданий — включите на время переноса, чтобы обмены и загрузки не стартовали в пустой базе.
Если консоль не открывается и пишет об ошибке оснастки, перерегистрируйте radmin.dll из каталога bin установленной платформы командой regsvr32 от имени администратора. Это частая проблема после обновления платформы.
После создания в SSMS появится новая база, а в консоли кластера — информационная база с тем же именем.
Перенос данных из файловой базы через .dt
Пустая база готова — пора загрузить в неё данные. Перенос делается через файл выгрузки .dt, а не копированием 1Cv8.1CD.
Выгрузка из старой базы
- Откройте старую файловую базу в Конфигураторе. Пользователи должны выйти: выгрузка требует монопольного доступа.
- Меню
Администрирование → Выгрузить информационную базу. - Сохраните файл, например
D:\backup\buh_2026.dt.
Перед выгрузкой стоит прогнать «Тестирование и исправление информационной базы» в том же меню. Ошибки файловой базы при загрузке в SQL всплывут всё равно, только позже.
Загрузка в новую базу на SQL
- Добавьте новую серверную базу в список окна запуска (если создавали через консоль).
- Откройте её в Конфигураторе. Пользователь при первом входе не спрашивается — база пустая.
- Меню
Администрирование → Загрузить информационную базу, выберите.dt. - Подтвердите предупреждение о замене данных.
- Дождитесь сообщения о завершении. Для базы 5–10 ГБ на SSD это примерно 20–60 минут.
Загрузка .dt полностью затирает данные в базе-приёмнике. Проверьте, что открыли именно новую базу, а не рабочую.
После загрузки откройте базу в режиме 1С:Предприятие, проверьте остатки по ключевым счетам и пару отчётов. Затем снимите блокировку регламентных заданий в свойствах базы в консоли кластера.
Обслуживание базы 1С на MS SQL: копии, индексы, статистика
База на SQL без обслуживания через полгода-год начинает тормозить. Выгрузка .dt как единственная резервная копия тоже не годится: она требует выгнать пользователей и долго делается.
Модель восстановления
У базы в SSMS: Properties → Options → Recovery model.
| Модель | Когда выбирать | Что учесть |
|---|---|---|
| Simple | Достаточно ежедневной копии, потерять день работы допустимо | Журнал сам не разрастается |
| Full | Нужно восстановление на конкретный момент времени | Обязательны копии журнала, иначе файл .ldf вырастет до размеров диска |
Самая частая авария — модель Full без бэкапов журнала. Через несколько месяцев журнал занимает весь диск, база встаёт.
Резервная копия средствами SQL
Копию SQL делает «на ходу», пользователей выгонять не нужно:
BACKUP DATABASE buh_main
TO DISK = 'E:\SQLBackup\buh_main_full.bak'
WITH COMPRESSION, CHECKSUM, INIT;
Сжатие (COMPRESSION) доступно в Standard и выше. Восстановить такую копию можно в другую базу и подключить её к кластеру как отдельную информационную базу — удобно для тестовой копии.
План обслуживания
В SSMS: Management → Maintenance Plans → Maintenance Plan Wizard. Нужен работающий SQL Server Agent, в Express его нет — там задания запускают через планировщик Windows и sqlcmd.
Типовой набор для 1С:
- 🗓️ Ежедневно ночью — полная копия базы, обновление статистики (
Update Statistics). - 🕐 Каждый час — копия журнала, если модель Full.
- 📅 Раз в неделю — перестроение или реорганизация индексов (
Rebuild Index/Reorganize Index), проверка целостности (Check Database Integrity). - 🧹 Очистка старых файлов копий старше N дней.
Не включайте задачу Shrink Database в регулярный план. Сжатие фрагментирует индексы, а файл через неделю снова вырастет. Опция Auto Shrink у базы тоже должна быть выключена.
Перестроение индексов тяжёлое и в Standard блокирует таблицы. Запускайте его ночью или в выходные, когда в базе никто не работает.