Администрирование · 10 мин
Как развернуть базу 1С из BAK-файла
Как развернуть базу 1С из bak-файла через SQL Server Management Studio: восстановление, публикация в кластере, проверка результата и типичные ошибки.
Файл с расширением .bak — это резервная копия базы данных Microsoft SQL Server, в которой хранится информационная база 1С в клиент-серверном режиме. Развернуть такую копию напрямую через конфигуратор нельзя: сначала базу восстанавливают средствами SQL Server, затем регистрируют её в кластере серверов 1С или подключают к существующему серверу. Ниже разобран полный цикл — от подготовки файла до проверки работоспособности.
Важно понимать: .bak — это не выгрузка 1С в формате .dt. Файл .dt создаётся через конфигуратор и переносится между любыми режимами работы, а .bak привязан к SQL Server и требует совместимой версии СУБД. Попытка загрузить .bak через «Загрузить информационную базу» в конфигураторе закончится ошибкой — эти форматы несовместимы.
Перед началом работы убедитесь, что у вас есть: доступ к серверу SQL Server с правами на восстановление баз (роль sysadmin или dbcreator), установленная SQL Server Management Studio (SSMS) и файл .bak, скопированный на диск сервера или доступный по сети. Также желательно знать, с какой конфигурацией и релизом 1С работала база — это понадобится на этапе проверки.
Что проверить перед восстановлением
Первое — версию SQL Server, на которой была создана копия. Резервная копия восстанавливается только на версию SQL Server равную или более новую, чем исходная. База, снятая с SQL Server 2019, не восстановится на SQL Server 2016 — обратной совместимости нет. Если версия вашего сервера ниже, обновите СУБД или попросите выгрузку в формате .dt.
Второе — размер файла и свободное место на диске. Восстановленная база обычно занимает больше места, чем сжатый .bak, иногда в несколько раз. Убедитесь, что на дисках, куда лягут файлы данных (mdf) и журнала (ldf), достаточно свободного пространства с запасом на рост базы.
Третье — целостность самого файла. Если .bak копировался по сети или с внешнего носителя, есть риск повреждения. Проверить файл можно командой RESTORE VERIFYONLY в SSMS — она не восстанавливает данные, а лишь подтверждает читаемость архива.
RESTORE VERIFYONLY FROM DISK = 'D:\Backups\base1c.bak';Восстановление базы через SQL Server Management Studio
Откройте SSMS и подключитесь к экземпляру SQL Server. В обозревателе объектов щёлкните правой кнопкой по узлу «Базы данных» (Databases) и выберите «Восстановить базу данных» (Restore Database). В окне мастера переключите источник на «Устройство» (Device) и укажите путь к вашему .bak-файлу.
В поле «База данных — назначение» введите новое имя базы латиницей без пробелов, например trade_copy. Не восстанавливайте копию поверх рабочей базы, если не уверены в результате: перезапись уничтожит текущие данные без возможности отката.
На вкладке «Файлы» (Files) проверьте пути размещения mdf и ldf — по умолчанию мастер может предложить пути с исходного сервера, которых у вас не существует. Укажите реальные каталоги вашего сервера. На вкладке «Параметры» (Options) оставьте состояние восстановления RESTORE WITH RECOVERY, если это единственная или последняя копия в цепочке.
- 1Подключитесь к SQL Server и откройте Restore Database
- 2Выберите источник Device и укажите путь к .bak
- 3Задайте новое имя базы назначения
- 4Проверьте пути файлов mdf и ldf на вкладке Files
- 5Запустите восстановление и дождитесь сообщения об успехе
- 6Обновите список баз и убедитесь, что база в статусе Online
Альтернатива: восстановление T-SQL командой
Если графический мастер недоступен или операцию нужно автоматизировать, используйте скрипт. Он особенно удобен, когда восстановление выполняется регулярно — например, для еженедельного обновления тестовой копии.
RESTORE DATABASE [trade_copy]
FROM DISK = 'D:\Backups\base1c.bak'
WITH MOVE 'DataLogicalName' TO 'D:\SQLData\trade_copy.mdf',
MOVE 'LogLogicalName' TO 'D:\SQLData\trade_copy_log.ldf',
REPLACE, RECOVERY;Логические имена файлов (DataLogicalName, LogLogicalName) узнайте заранее командой RESTORE FILELISTONLY FROM DISK — они не всегда совпадают с именами физических файлов. Опцию REPLACE указывайте только если сознательно перезаписываете существующую базу.
Регистрация восстановленной базы в 1С
После восстановления в SQL Server база для 1С пока невидима — её нужно зарегистрировать. Откройте консоль администрирования серверов 1С, разверните кластер, перейдите в раздел «Информационные базы» и создайте новую базу. В свойствах укажите тип СУБД MS SQL Server, имя сервера баз данных, имя восстановленной базы (trade_copy из примера выше) и учётные данные пользователя SQL Server, под которым сервер 1С будет обращаться к базе.
При создании снимите флаг «Создать базу данных в случае её отсутствия» — база уже существует, и лишняя попытка создания вызовет ошибку. Дату блокировки регламентных заданий для тестовой копии лучше установить сразу, чтобы копия не начала выполнять обмены и рассылки наравне с рабочей базой.
Если сервера 1С нет и база разворачивается для локального просмотра, добавьте её в список информационных баз через стартовое окно 1С: «Добавить» → «На сервере 1С:Предприятия» → укажите сервер, имя базы и параметры подключения.
Проверка результата и первый запуск
Запустите конфигуратор под новой базой. Если версия конфигурации в базе старше установленной платформы — проблем не будет, платформа обратно совместима по чтению. Если база создавалась на более новой платформе, потребуется установить соответствующий релиз. При несовпадении версии конфигурации базы данных с версией конфигурации поставщика платформа предложит обновление — для тестовой копии это допустимо, для рабочей базы выполняйте только после резервного копирования.
Войдите в режим предприятия и проверьте ключевые участки: открываются ли справочники и документы, формируются ли отчёты за прошлые периоды, нет ли ошибок в журнале регистрации. Убедитесь, что в константах отключены синхронизации, а в учётных записях почты очищены пароли, если копия тестовая.
Как проверить результат
Online, без суффикса Restoring
Restoring или Suspect — восстановление не завершено или база повреждена
Конфигуратор открывается, конфигурация читается
Ошибка соединения с СУБД — проверьте права и имя базы
Блокировка включена для тестовой копии
Задания активны и выполняются по расписанию
Документы и отчёты открываются за ожидаемые периоды
Пустые журналы, ошибки при проведении
Типичные ошибки и их решение
Ошибка «The database was backed up on a server running version...» означает несовместимость версий SQL Server — восстанавливайте на более новую СУБД. Ошибка доступа к файлу на этапе выбора .bak чаще всего связана с тем, что учётная запись службы SQL Server не имеет прав на каталог с файлом: переместите копию в каталог резервных копий сервера или выдайте права.
Сообщение «база данных используется» при восстановлении с REPLACE означает активные подключения. Завершите сеансы в консоли кластера 1С и переведите базу в single_user mode либо восстановите под другим именем. Ошибка аутентификации при подключении из 1С указывает на неверный логин/пароль SQL-пользователя или отсутствие у него прав на восстановленную базу — назначьте пользователю роль db_owner на эту базу.
Когда .bak не подходит: альтернативы
Если базу нужно перенести между разными СУБД, с клиент-серверного режима в файловый или на сервер с более старой версией SQL Server, используйте выгрузку в .dt через конфигуратор на исходной системе. Формат .dt универсален, но выгрузка больших баз занимает заметно больше времени, чем копирование .bak.
Для регулярной пересылки копий между серверами с одинаковой версией SQL Server удобны дифференциальные копии и копии журнала транзакций — они меньше по объёму и быстрее восстанавливаются поверх полной копии. Для разовой задачи достаточно полной копии .bak, описанной выше.
Сравнение способов переноса базы 1С
Быстро для больших баз, сохраняет всё один-в-один. Ограничение: нужна совместимая версия SQL Server, только клиент-серверный режим
Универсально: любые режимы и СУБД, проще переносить. Ограничение: медленно на больших базах, требует монопольного доступа при загрузке
Подходит при переносе всего сервера. Ограничение: требует остановки базы-источника или снятия снапшота, выше риск ошибок
Что важно запомнить
BAK восстанавливается средствами SQL Server (SSMS или T-SQL), затем база регистрируется в кластере 1С. Проверяйте версию СУБД, пути файлов и права доступа, а в тестовых копиях сразу блокируйте регламентные задания.
Частые вопросы
Можно ли развернуть .bak в файловый вариант 1С?
Напрямую нет. Сначала восстановите базу на SQL Server, зарегистрируйте её в кластере, а затем через конфигуратор выполните выгрузку в .dt и загрузите этот файл в файловую базу. Это штатный и безопасный путь конвертации.
Что делать, если версия SQL Server ниже той, на которой сделана копия?
Восстановление невозможно — механизм backup/restore не работает в сторону понижения версии. Варианты: обновить ваш SQL Server, развернуть копию на другом сервере с подходящей версией или попросить источник выгрузить базу в формате .dt.
Нужно ли останавливать сервер 1С при восстановлении .bak?
Сам сервер 1С останавливать не требуется. Но если вы восстанавливаете копию поверх существующей базы с опцией REPLACE, все сеансы пользователей с этой базой должны быть завершены, иначе SQL Server откажет в восстановлении.
Почему после восстановления 1С не видит базу?
Чаще всего база просто не зарегистрирована в кластере 1С — восстановление в SQL Server не создаёт запись в списке информационных баз автоматически. Также проверьте, что SQL-пользователь, указанный в свойствах базы, существует на сервере и имеет права на восстановленную базу.
Как проверить .bak до восстановления?
Выполните в SSMS команду RESTORE VERIFYONLY FROM DISK с путём к файлу — она проверит читаемость и целостность архива. Командой RESTORE HEADERONLY можно увидеть, с какой версии SQL Server снята копия и когда она была создана, что помогает убедиться, что файл именно тот, который нужен.
Опасно ли открывать восстановленную копию рабочей базы?
Опасность не в самом открытии, а в активных регламентных заданиях: копия может начать обмены с другими системами, отправку писем контрагентам и синхронизацию с сайтом. Перед первым запуском включите блокировку регламентных заданий в свойствах информационной базы в консоли кластера.