Администрирование · 9 мин
Как загрузить бэкап 1С в SQL Server
Как восстановить бэкап 1С в SQL Server: подготовка, загрузка через SSMS и конфигуратор, типичные ошибки и проверка результата.
Загрузка бэкапа 1С в SQL — стандартная операция при переносе базы на новый сервер, восстановлении после сбоя или создании тестовой копии. Способ зависит от того, какой у вас файл: выгрузка из конфигуратора (.dt) или резервная копия средствами SQL Server (.bak). Это принципиально разные форматы, и путают их чаще всего именно на первом шаге.
Файл .dt — это внутренняя выгрузка 1С:Предприятия, которая не зависит от СУБД. Файл .bak — нативная резервная копия базы данных Microsoft SQL Server, содержащая данные на уровне страниц БД. Оба варианта рабочие, но процедуры восстановления различаются полностью: .dt загружается через конфигуратор, а .bak — средствами SQL Server Management Studio (SSMS).
Перед началом убедитесь, что у вас есть права администратора на сервере 1С и на SQL Server, достаточно свободного места на диске (для восстановления потребуется объём, сопоставимый с размером базы), а пользователи не работают с целевой базой. Восстановление поверх существующей базы необратимо перезапишет её данные.
Определяем формат бэкапа и исходные условия
Первое действие — посмотреть расширение файла. Если это .dt, вам понадобятся конфигуратор 1С и заранее созданная пустая информационная база на SQL Server. Если .bak — работа ведётся в SQL Server Management Studio, а конфигуратор нужен только на этапе проверки. Иногда встречаются архивы .zip или .rar, внутри которых лежит один из этих файлов — распакуйте архив и проверьте содержимое.
Второй момент — версии платформы. Восстановление .bak возможно только на SQL Server той же версии или новее: базу, снятую с SQL Server 2019, нельзя развернуть на SQL Server 2016. Платформа 1С на сервере должна поддерживать используемую версию СУБД. Проверьте также режим совместимости конфигурации, если платформа обновлялась.
Загружается через «Загрузить информационную базу», нужна пустая база
Восстанавливается через SSMS, требуется совместимая версия СУБД
Напрямую не используется, нужен исходный файл выгрузки
Подготовка SQL Server и пустой базы
Для загрузки .dt сначала создайте пустую информационную базу. Запустите диалог запуска 1С, нажмите «Добавить», выберите «Создание новой информационной базы» и вариант «без конфигурации». Укажите тип расположения «На сервере 1С:Предприятия», имя сервера, тип СУБД — MS SQL Server, имя базы данных (латиницей, без пробелов) и учётные данные пользователя SQL с правами на создание баз.
При создании базы через кластер 1С сама база данных в SQL Server появится автоматически. Убедитесь, что у учётной записи, от имени которой работает агент сервера 1С, есть доступ к SQL Server, а у SQL-пользователя — роль, достаточная для создания и изменения базы (обычно dbcreator или права владельца на конкретную базу).
Загрузка файла .dt через конфигуратор
Откройте созданную пустую базу в режиме «Конфигуратор». Войти в пустую базу можно без пароля, если пользователи ещё не созданы. Перейдите в меню «Администрирование» → «Загрузить информационную базу» и укажите путь к файлу .dt. Платформа покажет предупреждение о том, что текущие данные будут заменены — подтвердите действие.
Процесс загрузки больших баз занимает от десятков минут до нескольких часов. В это время не закрывайте конфигуратор и не перезагружайте сервер. После завершения платформа предложит перезапустить конфигуратор — согласитесь. Затем проверьте вход в режим «Предприятие» под пользователем из исходной базы: учётные записи и пароли переносятся вместе с выгрузкой.
- 1Создайте пустую базу на сервере 1С с типом СУБД MS SQL Server
- 2Откройте её в конфигураторе
- 3Выберите «Администрирование» → «Загрузить информационную базу»
- 4Укажите файл .dt и подтвердите замену данных
- 5Дождитесь завершения и перезапустите конфигуратор
- 6Проверьте вход в режиме «Предприятие» и целостность данных
Восстановление файла .bak через SSMS
Подключитесь к SQL Server через Management Studio. В обозревателе объектов нажмите правой кнопкой на узел «Базы данных» и выберите «Восстановить базу данных». Укажите источник «Устройство» и добавьте файл .bak. В поле «Назначение» задайте имя базы — для новой копии используйте имя, отличное от существующих баз.
На вкладке «Файлы» проверьте пути восстановления: по умолчанию SSMS подставляет пути из исходного сервера, и если на вашем сервере нет таких каталогов, восстановление завершится ошибкой. Укажите существующие папки для файлов данных и журнала. На вкладке «Параметры» при восстановлении поверх существующей базы включите «Перезаписать существующую базу данных» (WITH REPLACE) — но только если точно уверены, что старые данные не нужны.
Альтернатива графическому интерфейсу — команда T-SQL, удобная для автоматизации:
RESTORE DATABASE [TradeBase] FROM DISK = N'D:\Backups\trade_backup.bak' WITH REPLACE, RECOVERY, STATS = 10;Регистрация восстановленной базы в кластере 1С
После восстановления .bak база существует в SQL Server, но сервер 1С о ней не знает. Откройте консоль «Администрирование серверов 1С:Предприятия», разверните кластер, нажмите правой кнопкой на «Информационные базы» и выберите «Создать» → «Информационная база». Введите имя, укажите тип СУБД — MS SQL Server, сервер баз данных и точное имя восстановленной базы. Галочку «Создать базу данных в случае её отсутствия» оставьте выключенной.
Укажите учётные данные пользователя SQL Server, под которым 1С будет обращаться к базе. Если в исходной базе использовался отдельный SQL-пользователь, убедитесь, что на новом сервере существует соответствующий логин и он сопоставлен с пользователем базы — иначе получите ошибку доступа при первом запуске. При необходимости создайте логин и назначьте ему роль db_owner на восстановленную базу.
Проверка результата и типичные ошибки
После любого из способов выполните проверку: войдите в базу в режиме «Предприятие», откройте несколько ключевых документов и отчёт за прошлый период, сверьте итоги с исходной системой. Дополнительно полезно запустить «Тестирование и исправление» в конфигураторе на копии базы — это выявит повреждения, которые могли возникнуть ещё до создания бэкапа.
Частые ошибки: попытка загрузить .dt в существующую базу с другой конфигурацией (приведёт к конфликтам или полной замене данных), восстановление .bak на устаревшую версию SQL Server (ошибка несовместимости), нехватка места на диске в середине процесса и восстановление без проверки путей файлов. Отдельный случай — загрузка .dt, снятой с файловой базы, в клиент-серверную: это штатный сценарий миграции, но после него стоит проверить регламентные задания и настройки, специфичные для сервера.
Что важно запомнить
Определите формат бэкапа: .dt загружается конфигуратором в пустую базу, .bak восстанавливается через SSMS с последующей регистрацией в кластере 1С. Работайте на копии, проверяйте версии SQL Server, пути файлов и права доступа, а результат подтверждайте входом в базу и сверкой данных.
Частые вопросы
Можно ли загрузить .dt в SQL Server напрямую, без конфигуратора?
Нет. Файл .dt — проприетарный формат 1С, который понимает только платформа. Его можно загрузить исключительно через конфигуратор или командную строку платформы с параметрами загрузки. SQL Server при этом используется лишь как хранилище, в которое платформа записывает данные.
Чем отличается восстановление через .dt и через .bak?
Файл .dt не зависит от СУБД и подходит для переноса между разными типами баз (файловая, SQL, PostgreSQL), но загружается медленнее и требует пустую базу. Файл .bak восстанавливается быстрее и сохраняет всё на уровне SQL Server, но привязан к версии СУБД и требует ручной регистрации базы в кластере 1С.
Ошибка «база данных не может быть восстановлена на данную версию сервера» — что делать?
Это значит, что .bak создан на более новой версии SQL Server. Обратной совместимости нет: установите соответствующую или более новую версию СУБД, либо попросите выгрузку в формате .dt — он не зависит от версии SQL Server.
Как загрузить бэкап в тестовую базу, не затронув рабочую?
Восстановите .bak под новым именем базы или создайте отдельную пустую базу для .dt, затем зарегистрируйте её в кластере под другим именем. Дополнительно установите в свойствах базы блокировку регламентных заданий, чтобы тестовая копия не запускала обмены и рассылки, дублируя продуктивную.
После восстановления 1С не видит базу, хотя в SSMS она есть. В чём причина?
Самая частая причина — отсутствие или неправильное сопоставление логина SQL Server с пользователем базы. Проверьте, что логин существует на сервере, сопоставлен с пользователем восстановленной базы и имеет роль db_owner. Также убедитесь, что в свойствах информационной базы в консоли 1С указаны верные имя сервера и имя базы.
Нужно ли останавливать сервер 1С во время восстановления бэкапа?
Останавливать агент сервера не обязательно, но нужно исключить активные соединения с целевой базой: при восстановлении поверх существующей базы SQL Server потребует монопольный доступ. Установите блокировку сеансов в консоли кластера и завершите активные соединения перед началом.