Перенос информационной базы 1С на MS SQL: от настройки сервера до первого запуска
Содержание
Чтобы загрузить базу
1С в SQL Server, создайте новую информационную базу на сервере 1С:Предприятия с типом СУБД MSSQLServer, а затем в Конфигураторе загрузите в неё выгрузку: Администрирование → Загрузить информационную базу и выберите файл .dt. Таблицы в SQL платформа создаст сама, руками в SQL Server Management Studio ничего строить не нужно.
Типичная ситуация: файловая база бухгалтерии разрослась до 15 ГБ, пользователей стало двадцать, и по утрам все ловят блокировки. Решение — перевести базу на связку «сервер 1С + MS SQL». Ниже весь путь: подготовка SQL Server, права, создание базы в кластере, загрузка данных и проверка, что установка действительно завершена.
Подготовка окружения перед загрузкой базы в SQL
В клиент-серверной схеме три участника. Клиент 1С подключается к серверу 1С:Предприятия, а тот уже работает с SQL Server. Пользователи к SQL напрямую не ходят.
| Компонент | Где стоит | Что важно |
|---|---|---|
| MS SQL Server | Отдельный сервер или тот же, что и сервер 1С | Редакция Standard или Express; у Express лимит 10 ГБ на одну базу |
| Сервер 1С:Предприятия | Windows Server 2016 и новее | Нужна лицензия на сервер 1С |
| Клиент 1С (платформа) | Компьютер администратора и пользователей | Номер версии клиента должен совпадать с номером версии сервера 1С |
Что подготовить заранее:
- 📦 Выгрузку базы в формате
.dt. Из файловой базы её делают в Конфигураторе:Администрирование → Выгрузить информационную базу. - 🔑 Учётную запись SQL для 1С (как её создать — ниже).
- 🧾 Логин администратора 1С из исходной базы. После загрузки
.dtпользователи переедут вместе с данными, и войти придётся под старым логином. - 🖥️ Свободное место: на диске SQL нужно минимум в 2–3 раза больше объёма
.dt. Выгрузка сжата, развёрнутая база в SQL занимает заметно больше.
Если сервер 1С и SQL стоят на одной машине, ограничьте память SQL Server. Иначе он заберёт почти всю RAM, и рабочим процессам 1С её не останется.
Настройка MS SQL Server под базу 1С
Большинство ошибок при загрузке базы 1С в SQL родом из настроек самого SQL Server. Проверьте четыре пункта до того, как открывать 1С.
Параметры сортировки
При установке SQL Server выбирайте параметры сортировки Cyrillic_General_CI_AS. С ней 1С работает штатно. Поменять сортировку уже установленного экземпляра — это фактически переустановка, поэтому проверьте её сразу. В SSMS: правой кнопкой по серверу → Свойства → вкладка Общие, строка «Параметры сортировки сервера».
Режим проверки подлинности
Если 1С будет подключаться по SQL-логину (самый частый вариант), включите смешанный режим. В SSMS: Свойства сервера → Безопасность → «Проверка подлинности SQL Server и Windows». После смены режима служба SQL Server перезапускается.
Протокол TCP/IP
Откройте SQL Server Configuration Manager → Сетевая конфигурация SQL Server → Протоколы для MSSQLSERVER. Протокол TCP/IP должен быть включён. На свежей установке он часто выключен, особенно у Express.
Для именованного экземпляра (например, SQLSRV\SQLEXPRESS) нужна ещё служба SQL Server Browser, а в брандмауэре — UDP 1434. Для экземпляра по умолчанию достаточно открыть TCP 1433.
Память и модель восстановления
- 🧠
Свойства→Память→ «Максимальный объём памяти сервера». На общей машине оставьте серверу 1С и Windows не меньше 4–6 ГБ. - 📈 Новая база наследует модель восстановления от системной базы
model, а там по умолчанию стоит «Полная». Без настроенного резервного копирования журнала транзакций файл.ldfрастёт без ограничений. Небольшим организациям обычно хватает модели «Простая» и ежедневной полной копии.
Не меняйте сортировку и режим проверки подлинности на работающем сервере с другими базами без согласования: перезапуск службы SQL оборвёт все подключения.
Учётная запись и права SQL для 1С
Сервер 1С подключается к SQL от имени логина, который вы укажете при создании базы. Работать под sa можно, но лучше завести отдельный логин с минимальными правами.
-- логин для сервера 1С
CREATE LOGIN [user1c] WITH PASSWORD = N'Сложный_Пароль_123', CHECK_POLICY = OFF;
-- право создавать базы данных
ALTER SERVER ROLE dbcreator ADD MEMBER [user1c];
Роли dbcreator достаточно, чтобы 1С сама создала базу данных. Создатель автоматически становится её владельцем и получает полные права внутри.
Если база данных уже существует (например, восстановлена из .bak), сделайте логин её владельцем:
ALTER AUTHORIZATION ON DATABASE::[buh] TO [user1c];
Вариант с проверкой подлинности Windows: поле пользователя в 1С оставляют пустым. Тогда SQL проверяет учётную запись, под которой работает служба агента сервера 1С (по умолчанию USR1CV8). Именно ей и нужно выдать логин и роль в SQL. Об этом часто забывают, отсюда ошибка входа при, казалось бы, правильных настройках.
Пароль SQL-логина хранится в настройках кластера 1С. Если его сменить в SQL, обновите и параметры информационной базы в консоли кластера, иначе пользователи не смогут войти.
Создание информационной базы 1С на сервере
Базу создают из окна запуска 1С на любом компьютере, где стоит клиент той же версии, что и сервер.
- Нажмите
Добавить→ «Создание новой информационной базы». - Выберите «Создание информационной базы без конфигурации». Конфигурация придёт вместе с
.dt. - Введите название для списка, например «Бухгалтерия (SQL)», и выберите «На сервере 1С:Предприятия».
- Заполните параметры:
- Кластер серверов
1С:Предприятия — имя сервера 1С, например
srv1c. Если кластер на нестандартном порту, укажитеsrv1c:2541. - Имя информационной базы в кластере — короткое латиницей, например
buh. - Тип СУБД —
MSSQLServer. - Сервер баз данных — имя SQL Server:
sqlsrvилиsqlsrv\SQLEXPRESSдля именованного экземпляра. - Имя базы данных — как база будет называться в SQL, удобно совпадает с именем в кластере.
- Пользователь и пароль базы данных — логин
user1cи его пароль. - Смещение дат — для MS SQL обычно ставят
2000. После создания базы этот параметр не меняется.
- Кластер серверов
1С:Предприятия — имя сервера 1С, например
- Отметьте «Создать базу данных в случае ее отсутствия».
- Отметьте «Установить блокировку регламентных заданий». Пока вы загружаете данные, обмены и загрузка курсов не стартуют на полпути.
- Нажмите
Далее→Готово.
Если всё указано верно, через несколько секунд база появится в списке, а в SSMS — пустая база данных с этим именем. Если появилась ошибка, переходите к разделу про диагностику.
Загрузка базы 1С из файла .dt
Это основной шаг: в пустую серверную базу заливаются конфигурация, данные и пользователи.
- Выделите новую базу в списке и нажмите
Конфигуратор. Пользователей в пустой базе нет, вход без пароля. - Откройте
Администрирование → Загрузить информационную базу. - Выберите файл
.dtи подтвердите предупреждение о замене данных. - Дождитесь окончания. База на 10–20 ГБ грузится от 20 минут до пары часов, в зависимости от дисков SQL.
- Платформа предложит перезапустить Конфигуратор. Соглашайтесь и входите уже под логином администратора из исходной базы.
Загрузка .dt полностью стирает всё, что было в целевой базе. Если по ошибке выбрать рабочую базу вместо пустой, данные пропадут. Перед загрузкой в существующую базу сделайте её выгрузку или резервную копию SQL.
Для загрузки нужен монопольный доступ к базе: в ней не должно быть других сеансов. С новой пустой базой это не проблема, с рабочей — предупредите пользователей заранее.
Загрузка .dt без интерфейса
Для больших баз или ночного переноса удобен пакетный режим Конфигуратора:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /RestoreIB "D:\backup\buh.dt" /Out "D:\backup\restore.log"
Для пустой базы без пользователей параметры /N и /P опустите. Результат и текст ошибок смотрите в файле, указанном в /Out.
Выгрузить файловую базу
тем же способом можно командой с ключом /DumpIB, указав путь к базе через /F.
Другие способы наполнить базу в SQL
Файл .dt есть не всегда. Два других сценария тоже рабочие.
Новая база из файла конфигурации .cf
Подходит, когда нужна чистая база без данных, например для нового юрлица.
- Создайте серверную базу без конфигурации, как описано выше.
- В Конфигураторе:
Конфигурация → Открыть конфигурацию, затемКонфигурация → Загрузить конфигурацию из файлаи выберите.cf. - Выполните
Конфигурация → Обновить конфигурацию базы данных(F7) и примите изменения. - Запустите базу в режиме 1С:Предприятие. Программа выполнит начальное заполнение. Для типовых конфигураций это может занять 10–30 минут, прерывать нельзя.
Второй путь — сразу выбрать «Создание информационной базы из шаблона», если шаблоны конфигураций установлены на этом компьютере.
Восстановление из резервной копии SQL (.bak)
Если база уже жила на другом SQL Server, быстрее перенести её средствами SQL, а не через .dt:
RESTORE DATABASE [buh]
FROM DISK = N'D:\backup\buh.bak'
WITH MOVE N'buh' TO N'E:\SQLData\buh.mdf',
MOVE N'buh_log' TO N'F:\SQLLog\buh_log.ldf',
STATS = 10;
Логические имена файлов посмотрите командой RESTORE FILELISTONLY FROM DISK = N'D:\backup\buh.bak', они не всегда совпадают с именем базы.
Дальше назначьте владельца командой ALTER AUTHORIZATION из раздела про права и зарегистрируйте базу в кластере 1С. Параметры те же, имя базы данных — уже существующее. Отметка «Создать базу данных в случае ее отсутствия» в этом случае ничего не создаст: 1С увидит готовые таблицы и подключится к ним.
| Способ | Когда подходит | Риски |
|---|---|---|
Загрузка .dt | Перенос из файловой базы, смена версии SQL | Долго на больших базах, нужен монопольный доступ |
Загрузка .cf | Новая чистая база | Данных нет, только конфигурация |
Восстановление .bak | Переезд между серверами SQL | Версия SQL на новом сервере должна быть не ниже исходной |
Завершение установки: что проверить после загрузки
Данные загружены, но база ещё не готова к работе. Пройдите по списку, прежде чем пускать пользователей.
Несколько пояснений к пунктам:
- 🔓 Регламентные задания. Блокировку снимают в консоли кластера: свойства информационной базы → флажок «Блокировка регламентных заданий включена». Не снимайте его на тестовой копии рабочей базы: копия начнёт выгружать данные в банк и обмениваться с ЭДО.
- 🎫 Лицензии. Флажок «Разрешить выдачу лицензий сервером 1С:Предприятия» в параметрах базы работает, только если на сервере 1С активированы клиентские лицензии.
- 💾 Резервное копирование
. Выгрузка
.dtдля серверной базы — не замена бэкапу SQL. Настройте план обслуживания в SSMS: полная копия раз в сутки и копия журнала, если модель восстановления полная. - 🗂️ Старая файловая база. Переименуйте её папку или переведите в «только чтение», чтобы никто не продолжил по привычке работать в ней.
Ошибки подключения к SQL при создании и загрузке базы
Сообщения 1С о проблемах с SQL обычно содержат исходный текст ошибки SQL Server. По нему и ищут причину.
Самая быстрая проверка связи «сервер 1С → SQL» — зайти в SSMS с машины сервера 1С под тем же логином. Если SSMS подключается, а 1С нет, проблема в параметрах базы, а не в сети.
Если загрузка .dt обрывается на середине с ошибкой SQL о нехватке места, смотрите свободное место на дисках с файлами данных и журнала. На время загрузки журнал транзакций раздувается сильнее, чем в обычной работе.
Частые вопросы
Можно ли перенести базу 1С на SQL Server Express бесплатно?
Нужна ли лицензия на сервер 1С, если SQL Server бесплатный?
Можно ли открыть базу 1С через SSMS и править данные напрямую?
Как вернуть базу из SQL обратно в файловый вариант?
.dt, создайте пустую файловую базу и загрузите туда выгрузку. Процедура та же, что при переносе в SQL, только в обратную сторону.Сколько места займёт база в SQL по сравнению с файловой?
.dt, и обычно сопоставимо с файлом 1Cv8.1CD или больше него. Плюс журнал транзакций, размер которого зависит от модели восстановления и частоты его копирования.