К статье
Практический материал

Администрирование · 10 мин

Файл BAK: как открыть в 1С и восстановить базу

Как открыть файл BAK в 1С: восстановление базы SQL Server из bak-файла, отличие от dt и 1Cv8, пошаговая инструкция и типичные ошибки.

Файл с расширением .bak в контексте 1С почти всегда означает резервную копию базы данных Microsoft SQL Server, созданную штатным механизмом СУБД или планом обслуживания. Сама платформа 1С:Предприятие такие файлы напрямую не создаёт и не открывает: её штатный формат выгрузки — это .dt, а файловая база хранится в файле 1Cv8.1CD. Поэтому «открыть BAK в 1С» на самом деле означает: сначала восстановить базу на SQL Server, а затем подключить её к серверу 1С или прописать в списке информационных баз.

До начала работ важно точно определить, что за файл у вас в руках. BAK — это расширение «по умолчанию» у многих программ, и встречаются три ситуации: полноценный бэкап SQL Server, просто переименованная копия файловой базы 1Cv8.1CD и резервная копия, созданная сторонним ПО. От этого зависит весь дальнейший сценарий. Ниже разобраны способы определить тип файла и пошаговые инструкции восстановления для каждого случая.

Как определить, что за BAK-файл у вас в руках

Первый шаг — посмотреть на размер и происхождение файла. Если файл находится в папке резервных копий SQL Server (часто это каталог Backup внутри каталога установки SQL Server или отдельное сетевое хранилище, куда пишет план обслуживания), почти наверняка это дамп SQL Server. Такие файлы обычно называются по шаблону «ИмяБазы_backup_дата_время.bak».

Если файл лежит рядом с каталогом файловой базы 1С и его размер совпадает с размером 1Cv8.1CD, велика вероятность, что администратор или программа архивации просто сделали копию файла данных и сменили расширение. В этом случае никакого SQL Server не понадобится: файл переименовывается обратно в 1Cv8.1CD и открывается как обычная файловая база.

Третий вариант — BAK, созданный сторонними системами резервного копирования (Veeam, Acronis, штатные скрипты). Такие файлы могут иметь собственный внутренний формат, и восстанавливать их нужно средствами той же программы. Признак — наличие установленного ПО резервного копирования и заданий в его расписании.

Файл в каталоге бэкапов SQL ServerДамп SQL Server

Восстанавливать через SSMS или T-SQL

Размер совпадает с 1Cv8.1CD рядом с базойКопия файловой базы

Переименовать в 1Cv8.1CD и добавить в список баз

Файл создала система резервного копированияФормат стороннего ПО

Восстанавливать средствами этой же программы

Расширение .dtВыгрузка 1С

Это не BAK: загружается через конфигуратор

Восстановление BAK на SQL Server через Management Studio

Основной сценарий — восстановление через SQL Server Management Studio (SSMS). Подключитесь к экземпляру SQL Server под учётной записью с правами администратора, в обозревателе объектов щёлкните правой кнопкой по узлу «Базы данных» и выберите «Восстановить базу данных». В качестве источника укажите «Устройство» и добавьте ваш BAK-файл.

На вкладке «Файлы» проверьте пути, куда будут развёрнуты файлы данных и журнала: по умолчанию мастер подставляет пути из бэкапа, которые на другом сервере могут не существовать. На вкладке «Параметры» при восстановлении поверх существующей базы включите опцию перезаписи (WITH REPLACE), а если база активно используется — закройте существующие подключения. После нажатия «ОК» дождитесь сообщения об успешном восстановлении.

Если графический интерфейс недоступен, используйте T-SQL. Перед восстановлением полезно посмотреть состав бэкапа командой RESTORE FILELISTONLY — она покажет логические имена файлов, которые нужны для корректного RESTORE с параметром MOVE.

sql
RESTORE FILELISTONLY FROM DISK = 'D:\Backups\base_backup.bak';
RESTORE DATABASE MyBase FROM DISK = 'D:\Backups\base_backup.bak'
WITH MOVE 'DataLogicalName' TO 'D:\SQLData\MyBase.mdf',
MOVE 'LogLogicalName' TO 'D:\SQLData\MyBase_log.ldf', REPLACE;
Порядок действий
  1. 1
    Определите тип файла: дамп SQL Server, копия 1Cv8.1CD или формат стороннего ПО
  2. 2
    Восстановите базу на SQL Server через SSMS или командой RESTORE
  3. 3
    Проверьте, что база в состоянии ONLINE и доступна
  4. 4
    Создайте запись информационной базы в консоли кластера 1С или добавьте базу в список
  5. 5
    Откройте базу в конфигураторе и выполните тестирование целостности

Подключение восстановленной базы к 1С

После восстановления базы на SQL Server её нужно «увидеть» со стороны 1С. Если база восстановлена на тот же сервер под тем же именем и запись в консоли кластера уже существует — ничего дополнительно делать не нужно, пользователи просто заходят как обычно.

Если база новая или восстановлена под другим именем, откройте консоль администрирования серверов 1С, разверните нужный кластер, в узле «Информационные базы» создайте новую базу: укажите имя, сервер СУБД, тип СУБД (MS SQL Server), имя базы данных и учётные данные пользователя SQL Server, под которым 1С будет обращаться к базе. Флажок «Создать базу данных в случае её отсутствия» оставьте снятым — база уже существует.

Для файлового варианта (когда BAK оказался переименованной копией 1Cv8.1CD) всё проще: переименуйте файл обратно в 1Cv8.1CD, поместите его в отдельный каталог и добавьте базу в список информационных баз стартера 1С как файловую, указав этот каталог.

Чем BAK отличается от DT и почему это важно

Путаница между форматами — главный источник проблем. Файл .dt создаётся штатной выгрузкой из конфигуратора («Администрирование → Выгрузить информационную базу») и загружается обратно той же командой. Это переносимый формат: из него можно развернуть базу и на файловом, и на клиент-серверном варианте, независимо от СУБД.

BAK привязан к SQL Server: восстановить его можно только на SQL Server той же версии или новее. Зато восстановление из BAK на больших базах обычно значительно быстрее, чем загрузка из dt, и не требует монопольного доступа на этапе выгрузки. Для регулярных бэкапов рабочих клиент-серверных баз средствами СУБД — это основной рекомендуемый способ.

Сравнение вариантов

BAK (SQL Server)

Быстрое восстановление больших баз, но только на SQL Server той же или более новой версии; не переносится на файловый вариант

DT (выгрузка 1С)

Универсальный перенос между вариантами работы и СУБД, но выгрузка и загрузка больших баз занимают заметно больше времени

Копия 1Cv8.1CD

Простейший вариант для файловых баз; копировать можно только при отсутствии активных сеансов, иначе копия может быть несогласованной

Проверка восстановленной базы и типичные ошибки

После подключения обязательно проверьте результат. Откройте базу в конфигураторе, убедитесь, что конфигурация на месте и версия платформы подходит. Затем выполните тестирование и исправление в режиме проверки логической целостности — этого достаточно для первичной диагностики. В пользовательском режиме откройте несколько типовых отчётов и журналов документов за последние даты, чтобы убедиться, что данные актуальны.

Типовые ошибки при восстановлении: попытка восстановить BAK на SQL Server более старой версии, чем тот, где создавалась копия (ошибка несовместимости, обратной совместимости нет); нехватка места на диске под разворачиваемые файлы; неверные пути к файлам данных при переносе на другой сервер; отсутствие прав у учётной записи сервера 1С. Отдельный случай — попытка «открыть» BAK двойным щелчком или подсунуть его конфигуратору как dt: платформа такой файл не примет.

Типичные ошибки
01
Попытка загрузить BAK через конфигуратор как dt — платформа выдаст ошибку формата потока
02
Восстановление на SQL Server более старой версии — заведомо невозможно, нужен сервер той же версии или новее
03
Восстановление поверх рабочей базы без WITH REPLACE и без отключения пользователей — ошибка доступа или потеря текущих данных
04
Копирование 1Cv8.1CD при открытых сеансах — несогласованная копия, которая может не открыться или содержать повреждения
05
Забытые права db_owner для служебной учётной записи — 1С не видит восстановленную базу

Контрольные точки результата

Итоговая проверка занимает несколько минут и избавляет от неприятных сюрпризов. Убедитесь, что база на SQL Server находится в состоянии ONLINE, запись в консоли кластера указывает именно на неё, а пользователи могут войти. Сверьте даты последних документов с ожидаемой датой бэкапа — это самый быстрый способ понять, что восстановлена именно та копия.

Контрольные точки

Как проверить результат

Состояние базы в SSMS
Норма

Статус ONLINE, база открывается, таблицы видны

Тревожный признак

Статус Restoring или Suspect — восстановление не завершено

Вход в 1С
Норма

Пользователи входят, открываются журналы и отчёты

Тревожный признак

Ошибка «информационная база не обнаружена» или ошибки доступа

Актуальность данных
Норма

Последние документы соответствуют дате создания бэкапа

Тревожный признак

Данные старше ожидаемых — восстановлен не тот файл

Логическая целостность
Норма

Тестирование в конфигураторе завершается без ошибок

Тревожный признак

Ошибки целостности — копия повреждена, нужен другой бэкап

Итог

Что важно запомнить

BAK — это резервная копия SQL Server, а не формат 1С: открывается через восстановление на SQL Server с последующим подключением базы в консоли кластера. Сначала определите тип файла, восстанавливайте под новым именем, выдайте права служебной учётной записи и проверьте актуальность данных до переключения пользователей.

Частые вопросы

Можно ли открыть BAK-файл без SQL Server?

Нет, если это настоящий дамп SQL Server — для его чтения нужен экземпляр SQL Server (подойдёт и бесплатный Express, если база укладывается в его ограничения). Если файл оказался переименованной копией 1Cv8.1CD, SQL Server не нужен вовсе.

Чем BAK отличается от DT и что выбрать для бэкапа?

DT — универсальная выгрузка средствами 1С, переносимая между любыми вариантами работы. BAK — низкоуровневая копия SQL Server, восстанавливается быстрее, но только на SQL Server. Для регулярных бэкапов клиент-серверной базы обычно используют BAK, а DT держат как переносимый вариант перед обновлениями.

Можно ли восстановить BAK на SQL Server более старой версии?

Нет, обратной совместимости нет: бэкап восстанавливается только на версию, равную или более новую, чем та, где он создан. Выход — развернуть на подходящей версии и перенести данные через выгрузку dt.

1С пишет «информационная база не обнаружена» после восстановления. Что делать?

Проверьте три вещи: база в состоянии ONLINE в SSMS, имя базы в записи консоли кластера совпадает с фактическим, а у учётной записи сервера 1С есть роль db_owner на этой базе. Чаще всего проблема именно в правах.

Как посмотреть данные из BAK, не трогая рабочую базу?

Восстановите бэкап на SQL Server под новым именем, создайте отдельную запись информационной базы в консоли кластера и добавьте её в свой список баз. Рабочая база при этом не затрагивается.