Перенос базы 1С с файлового варианта на Microsoft SQL Server
Содержание
Файловая база тормозит, когда в ней работают больше 5–10 человек, а размер перевалил за несколько гигабайт. Решение известное: перевести её на клиент-серверный вариант, где данные хранит Microsoft SQL Server, а обработкой занимается сервер 1С:Предприятия. Развернуть базу 1С на сервере SQL можно за один рабочий вечер, если заранее подготовить окружение и выгрузку.
Прямой «конвертации» файла 1Cv8.1CD в SQL нет. Схема всегда одна: выгрузить базу
в файл .dt, создать пустую базу на сервере, загрузить в неё выгрузку. Ниже — весь путь по шагам, с настройками, которые влияют на скорость.
Что нужно подготовить до начала
Перед переносом проверьте четыре вещи. Каждая из них, если её пропустить, стоит часа простоя.
- 🖥️ Сервер 1С:Предприятия установлен и запущен как служба. Версия платформы на сервере должна совпадать с версией, на которой работают клиенты, либо быть не ниже.
- 🗄️ Microsoft SQL Server установлен на той же машине или на отдельной. Для рабочей базы лучше отдельный сервер или хотя бы отдельные диски под данные и журнал.
- 🔑 Лицензии на серверный режим. Клиентские лицензии для файлового режима подходят, но серверная лицензия — отдельная, без неё кластер не запустит базу.
- 💾 Свободное место: под
.dtнужно примерно 20–40% от размера файловой базы, под саму базу в SQL — размер файловой с запасом ×1,5–2.
Перенос делайте не на «живой» базе без копии. Остановите работу пользователей, сохраните копию каталога с 1Cv8.1CD и только потом выгружайте данные.
Какую версию СУБД выбрать
Платформа 1С поддерживает не любую версию SQL Server: список указан в документации к конкретному релизу платформы. Практическое правило: берите версию, которая явно перечислена как поддерживаемая вашей платформой, и не ставьте самую свежую «на вырост» без проверки.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| SQL Server Express | Тест, небольшая база, 3–5 пользователей | Лимит размера базы около 10 ГБ, ограничение по памяти и ядрам |
| SQL Server Standard | Основной вариант для большинства организаций | Платная лицензия |
| SQL Server Enterprise | Крупные базы, много пользователей, отказоустойчивость | Дорого, нужен только при реальной нагрузке |
Если база уже близка к 10 ГБ, Express не вариант: упрётесь в лимит через несколько месяцев.
Настройка самого SQL Server
Ставьте SQL Server с компонентом «Компонент Database Engine». Остальное для 1С не нужно.
- На шаге выбора сортировки задайте
Cyrillic_General_CI_AS. Это стандартная сортировка для баз 1С с русской кириллицей. Сменить её после установки сложно. - Режим проверки подлинности — смешанный (Windows и SQL Server). Сервер 1С подключается к СУБД под SQL-логином, поэтому режим «только Windows» не подойдёт.
- Задайте пароль встроенной учётной записи
saи храните его в менеджере паролей. - Включите протокол TCP/IP в «Диспетчере конфигурации SQL Server» и перезапустите службу СУБД.
После установки пройдитесь по параметрам сервера. Эти три дают заметный эффект:
- Максимальный объём памяти сервера (
max server memory). Если SQL Server делит машину с сервером 1С, оставьте операционной системе и 1С минимум 30–40% оперативной памяти. Без ограничения СУБД забирает всё. - Максимальная степень параллелизма (
max degree of parallelism). Для баз 1С рекомендуют значение1: запросы 1С короткие, а параллельное выполнение чаще мешает. - Каталоги по умолчанию для файлов данных и журнала. Разнесите их на разные диски — это дешёвый способ ускорить запись.
Служба сервера 1С по умолчанию запускается от пользователя USR1CV8. Если СУБД и сервер 1С стоят на одной машине, никакие дополнительные права ему в SQL выдавать не нужно — подключение идёт по логину SQL.
Создание пустой базы данных в SQL Server
Есть два пути, и оба рабочие.
Путь 1. 1С создаёт базу сама. При создании информационной базы в кластере (следующий раздел) поставьте флажок «Создать базу данных
в случае её отсутствия». Платформа выполнит скрипты и выставит параметры. Для первого раза это самый безопасный вариант. Учётная запись, которую вы укажете для подключения к СУБД, должна иметь право создавать базы — проще всего роль dbcreator.
Путь 2. Базу создаёт администратор вручную. Это нужно, когда нужны особые параметры файлов: начальный размер, шаг роста, расположение на дисках. В SQL Server Management Studio:
- Правый клик по «Базы данных» → «Создать базу данных».
- Укажите имя, например
buh_prod. - На вкладке «Параметры» проверьте сортировку:
Cyrillic_General_CI_AS. - Задайте начальные размеры файла данных и журнала. Если база будет весить 20 ГБ, не оставляйте 8 МБ с шагом 1 МБ: сервер потратит кучу времени на постоянное расширение файла.
- Создайте SQL-логин для 1С и дайте ему на эту базу роль
db_owner.
Модель восстановления выбирайте осознанно. Simple — журнал не копится, но восстановиться можно только на момент последней полной копии. Full — можно восстановить на любую минуту, но тогда обязательно настройте резервное копирование
журнала, иначе он разрастётся до размера диска.
Регистрация базы в кластере серверов 1С
Теперь база должна появиться в кластере. Сделать это можно из окна запуска 1С или из консоли администрирования серверов.
Через окно запуска 1С
- В окне запуска нажмите «Добавить».
- Выберите «Создание новой информационной базы» → «Создание информационной базы без конфигурации».
- Введите имя базы, как она будет называться в списке.
- Тип расположения — «На сервере 1С:Предприятия».
- Заполните параметры:
| Поле | Что вписать |
|---|---|
| Кластер серверов | Адрес сервера, например srv-1c (порт по умолчанию 1541) |
| Имя в кластере | Имя базы в кластере, латиницей без пробелов |
| Защищённое соединение | «Выключено», если TLS не настраивали |
| Тип СУБД | MS SQL Server |
| Сервер баз данных | Имя или адрес SQL Server |
| Имя базы данных | Имя из предыдущего раздела |
| Пользователь сервера БД | SQL-логин |
| Смещение дат | 2000 |
| Создать БД при отсутствии | Флажок, если база не создана вручную |
Про смещение дат: для SQL Server используется значение 2000, оно позволяет хранить даты в диапазоне, нужном 1С. Не ставьте 0, если не знаете, зачем.
Через консоль администрирования
Консоль — отдельная оснастка «Консоль администрирования серверов 1С:Предприятия». Открываете нужный кластер, в ветке «Информационные базы» создаёте новую базу теми же параметрами. Консоль удобнее, если баз много: тут же видны сеансы, соединения, блокировки.
Чтобы клиенты увидели сервер, на файрволе сервера 1С должны быть открыты порты: 1540 (агент), 1541 (менеджер кластера) и диапазон 1560–1591 для рабочих процессов. Порт SQL Server — 1433, но он нужен только между сервером 1С и СУБД, клиентам наружу его открывать не надо.
Загрузка данных: из файловой базы в серверную
Это и есть «конвертация». Шаги делаются на машине с платформой, на которой удобно работать с обеими базами.
Выгрузка из файловой базы
- Закройте всех пользователей из файловой базы.
- Запустите её в режиме «Конфигуратор» от имени администратора.
- Меню «Администрирование» → «Выгрузить информационную базу».
- Сохраните
.dtна диск с достаточным местом. Имя файла лучше сделать говорящим, напримерbuh_2026-10-07.dt.
Выгрузка идёт от нескольких минут до часа в зависимости от объёма. Не прерывайте её, не закрывайте конфигуратор.
Загрузка в серверную базу
- В окне запуска выберите новую серверную базу и откройте её в режиме «Конфигуратор».
- Меню «Администрирование» → «Загрузить информационную базу».
- Укажите
.dt, подтвердите замену данных. - Дождитесь окончания. Платформа сама создаст таблицы в SQL Server, заполнит их и проиндексирует.
Загрузка перезаписывает все данные целевой базы. Поэтому в пустую заготовку её грузить можно, в рабочую с данными — нет.
Загрузка занимает обычно дольше выгрузки. Для базы в 10 ГБ закладывайте 1–2 часа. После загрузки запустите базу в обычном режиме «1С:Предприятие» и проверьте оборотно-сальдовую ведомость за последний закрытый период: сумма должна сойтись с файловой копией.
Пользователи и права: что настроить в 1С и в SQL
Здесь два независимых слоя, и путают их чаще всего.
Пользователи 1С переносятся вместе с .dt: список, роли, пароли. Их менять не нужно. Заходят они по-прежнему со своими логинами через окно запуска.
Пользователи SQL — это технические учётные записи для сервера 1С. Люди с ними не работают. Рекомендация:
- 👤 Для каждой серверной базы — свой SQL-логин с ролью
db_ownerтолько на эту базу. Если логин общий для всех баз, компрометация одной вскрывает все. - 🚫 Не используйте
saдля рабочего подключения. Он нужен только для первичной настройки. - 🔒 Пароль логина храните отдельно. Сменить его потом можно в свойствах информационной базы в консоли администрирования, не пересоздавая базу.
Чтобы администраторы могли управлять кластером из консоли, добавьте для них учётные записи администратора кластера или администратора центрального сервера. Это отдельные права в самом сервере 1С, к SQL они отношения не имеют.
Выдача прав пользователям базы — привычным путём: «Администрирование» → «Настройки пользователей и прав» → «Пользователи».
Если нужно ограничить, кто вообще видит базу в списке на сервере, используйте списки баз для конкретных пользователей. Но надёжнее ограничивать именно права внутри 1С, а не прятать базу.
Что настроить после переноса, чтобы база не тормозила
Серверная база не быстрее файловой «сама по себе». Выигрыш даёт грамотное обслуживание.
Регламентные операции SQL
Раз в неделю, лучше ночью, выполняйте:
- Обновление статистики по всем таблицам. Устаревшая статистика — главная причина «внезапно» медленных отчётов.
- Перестроение или реорганизацию индексов там, где фрагментация выше 30%.
- Резервное копирование: полная копия раз в сутки; при модели
Full— копии журнала каждые 15–60 минут.
Всё это настраивается планом обслуживания SQL Server в Management Studio или заданиями агента SQL Server.
Регламентные задания 1С
В свойствах базы убедитесь, что регламентные задания разрешены. Они сворачивают итоги регистров, собирают служебные данные, и без них отчёты со временем замедляются. При тестовом разворачивании бывает, что блокировку включили «на всякий случай» и забыли снять.
Журнал и тестирование
- Раз в месяц запускайте «Тестирование и исправление» с проверкой логической целостности. Монопольный доступ потребуется, так что делайте это в нерабочее время.
- Следите за размером журнала транзакций SQL. Резкий рост — признак того, что копии журнала не снимаются.
- Уровень изоляции и блокировки — отдельная тема. Если появились жалобы на «таймаут блокировки», смотрите технологический журнал и консоль кластера, а не гадайте.
Разбор типичных сбоев при развёртывании
1540, 1541 и диапазон 1560–1591. Проверьте также, что имя сервера разрешается из сети клиента.dbcreator, для работы с готовой базой — db_owner.Частые вопросы
Можно ли просто скопировать файл 1Cv8.1CD в SQL Server?
.dt.Нужна ли отдельная лицензия на сервер 1С?
Можно ли держать SQL Server и сервер 1С на одной машине?
Как вернуть базу обратно в файловый вариант?
.dt, создайте пустую файловую и загрузите выгрузку туда. Это тот же механизм в обратную сторону.