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

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

1С BAK: чем открыть файл резервной копии и как восстановить базу

Разбираемся, чем открыть файл .bak из 1С: отличие бэкапа SQL Server от выгрузки DT, способы восстановления через Management Studio, типичные ошибки и риски.

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

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

Ниже разберём, как определить, что именно за файл у вас в руках, чем открыть .bak из 1С, как восстановить из него рабочую базу и что делать, если SQL Server под рукой нет.

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

Прежде чем искать программу для открытия, убедитесь, что файл действительно является бэкапом SQL Server. Самый простой признак — размер: .bak обычно сопоставим с размером рабочей базы и может занимать от сотен мегабайт до десятков гигабайт. Файл .dt при тех же данных часто заметно меньше, потому что это сжатая логическая выгрузка.

Второй признак — источник файла. Если копию делал системный администратор через план обслуживания SQL Server, скрипт BACKUP DATABASE или сторонний бэкап-агент (Veeam, NetBackup и подобные), перед вами почти наверняка .bak. Если копию выгружали из конфигуратора 1С через пункт «Администрирование → Выгрузить информационную базу», это .dt.

Третий способ — посмотреть начало файла в любом hex-редакторе или даже в «Блокноте» (для больших файлов лучше специализированный просмотрщик). У бэкапа SQL Server в заголовке встречается сигнатура TAPE и служебные строки формата Microsoft Tape Format. У файла .dt в начале видны служебные маркеры формата выгрузки 1С.

Расширение .bak, большой размерБэкап SQL Server

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

Расширение .dtВыгрузка конфигуратора

Загружать через конфигуратор 1С

Файл создан планом обслуживанияТочно .bak SQL Server

Нужен SQL Server той же или более новой версии

Файл не открывается ничемВозможно, бэкап повреждён или зашифрован

Проверить целостность и источник копии

Чем открыть .bak: инструменты и их назначение

Основной и правильный инструмент для работы с .bak — Microsoft SQL Server Management Studio (SSMS). Это бесплатная среда управления от Microsoft, которая устанавливается отдельно от самого сервера и позволяет подключаться к любому экземпляру SQL Server в сети. Именно через SSMS выполняется восстановление базы из файла .bak в подавляющем большинстве сценариев.

Альтернатива — командная строка и утилита sqlcmd либо скрипт на T-SQL, выполняемый через любой клиент SQL Server. Этот вариант удобен для автоматизации: восстановление по расписанию, развёртывание тестовых копий, скрипты у администратора. Суть та же — выполняется команда RESTORE DATABASE.

Отдельно упомянем программы-«просмотрщики», которые обещают открыть .bak без SQL Server и показать содержимое таблиц. Такие утилиты существуют, но для базы 1С их польза ограничена: данные 1С хранятся в SQL-таблицах во внутреннем формате платформы, и «прочитать» документы или справочники напрямую из таблиц без платформы 1С практически невозможно. Для получения рабочей базы всё равно потребуется полноценное восстановление.

Пошаговое восстановление .bak через SQL Server Management Studio

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

После восстановления база ещё не привязана к 1С. Следующий шаг — зарегистрировать её в консоли кластера серверов 1С или добавить в список баз на клиенте, указав сервер СУБД и имя восстановленной базы. Если база восстанавливалась на другой сервер, проверьте также сопоставление пользователей SQL Server: логин, под которым 1С обращается к базе, должен существовать и иметь нужные права.

Типовая команда восстановления через T-SQL выглядит так:

sql
RESTORE DATABASE [MyBase] FROM DISK = N'D:\Backups\MyBase.bak' WITH REPLACE, RECOVERY;

Перед выполнением команды полезно посмотреть состав бэкапа командой RESTORE HEADERONLY — она показывает, какая база, когда и на какой версии SQL Server была скопирована, не изменяя ничего на сервере.

Как открыть выгрузку .dt, если файл оказался не .bak

Если выяснилось, что у вас файл .dt, сценарий проще и не требует SQL Server. Создайте пустую информационную базу (файловую или серверную), откройте её в конфигураторе и выберите «Администрирование → Загрузить информационную базу», указав файл .dt. Платформа развернёт данные, включая конфигурацию, пользователей и настройки.

Учтите два момента. Во-первых, загрузка .dt полностью заменяет содержимое базы-приёмника — всё, что было в ней до загрузки, будет потеряно. Во-вторых, версия платформы 1С должна быть не ниже той, на которой делалась выгрузка, иначе возможны ошибки загрузки.

BAK против DT: что выбрать

Восстановление из .bak

Быстро для больших баз, сохраняет базу «как есть» на уровне СУБД. Требует SQL Server той же или новее версии и прав администратора СУБД.

Загрузка из .dt

Универсально, работает между файловым и клиент-серверным вариантами, не требует доступа к SQL Server. Медленнее на больших базах и чувствительно к версии платформы.

Частые ошибки и как их избежать

Самая распространённая проблема — попытка восстановить бэкап с новой версии SQL Server на старую, например с SQL Server 2019 на 2016. Сервер честно сообщит об ошибке несовместимости, и единственное решение — развернуть копию на подходящей версии, а затем при необходимости выгрузить данные через .dt.

Вторая типичная ошибка — нехватка прав. Восстановление требует прав на создание базы, а служба SQL Server должна иметь доступ к папке, где лежит .bak. Если файл лежит на сетевом ресурсе, а служба работает под локальной учётной записью, сервер его просто не увидит.

Третья группа ошибок связана с восстановлением поверх рабочей базы без резервной копии текущего состояния. Опция WITH REPLACE безвозвратно затирает существующую базу. Перед такой операцией всегда делайте свежий бэкап текущих данных, даже если база кажется «ненужной».

Типичные ошибки
01
Восстановление поверх рабочей базы без копии — текущие данные теряются безвозвратно.
02
Попытка открыть .bak архиватором или переименовать в .zip — файл не является архивом, это бесполезно.
03
Игнорирование версии SQL Server — бэкап с новой версии на старую не восстановится.
04
Копирование .bak во время его записи планом обслуживания — полученный файл окажется обрезанным и не восстановится.
05
Восстановление рабочей копии под тем же именем рядом с боевой базой без переименования — путаница и риск работы не с теми данными.

Риски и границы безопасной самостоятельной работы

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

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

Для тестовых восстановлений заведите отдельный сервер или хотя бы отдельный экземпляр SQL Server. Это дешёвая страховка: даже грубая ошибка в тестовой среде не затронет работающих пользователей.

Как проверить, что восстановление прошло успешно

После завершения восстановления проверьте базу в несколько этапов. Сначала убедитесь, что в SSMS база отображается в состоянии Online, без пометок «Restoring» или «Suspect». Затем подключите базу к 1С и войдите в неё под пользователем с полными правами.

Далее проверьте содержимое: откройте несколько документов за последние даты перед созданием бэкапа, сформируйте стандартный отчёт (например, оборотно-сальдовую ведомость для бухгалтерской базы), убедитесь, что справочники заполнены. Если восстановленная база — копия боевой на другом сервере, отключите в ней регламентные задания и обмены, чтобы тестовая копия не начала отправлять данные во внешние системы.

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

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

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

Online, без пометок Restoring/Suspect

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

База висит в Restoring или помечена Suspect

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

База открывается, пользователи на месте

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

Ошибки входа, пустой список пользователей

Данные за последние даты
Норма

Документы и отчёты соответствуют дате бэкапа

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

Данных нет или они старше даты копии

Регламентные задания в тестовой копии
Норма

Отключены, обмены не выполняются

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

Задания активны и лезут во внешние системы

FAQ: частые вопросы о файлах .bak из 1С

Можно ли открыть .bak файл без установки SQL Server?

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

Чем .bak отличается от .dt в 1С?

Файл .bak — это копия базы средствами SQL Server, восстанавливается через СУБД. Файл .dt — выгрузка информационной базы средствами платформы 1С, загружается через конфигуратор. Форматы несовместимы: .bak нельзя загрузить в конфигуратор, а .dt нельзя восстановить через SQL Server.

Почему бэкап не восстанавливается с ошибкой о версии?

SQL Server не позволяет восстанавливать бэкапы, созданные на более новой версии, на сервер более старой версии. Решение — установить экземпляр SQL Server той же или более новой версии, восстановить базу там, а затем при необходимости перенести данные через выгрузку .dt.

Можно ли восстановить .bak в файловую базу 1С напрямую?

Нет, напрямую такое преобразование невозможно. Сначала восстановите .bak на SQL Server, подключите базу к 1С, а затем выгрузите её из конфигуратора в файл .dt и загрузите в файловую базу. Это штатный маршрут перехода с клиент-серверного варианта на файловый.

Файл .bak повреждён: есть ли шанс вытащить данные?

Шансы зависят от степени повреждения. Сначала проверьте файл командой RESTORE VERIFYONLY и попробуйте восстановление с опцией CONTINUE_AFTER_ERROR — иногда сервер восстанавливает базу, пропуская повреждённые фрагменты. Если бэкапов несколько (полный плюс разностные или копии журналов), используйте цепочку. При критичности данных имеет смысл обратиться к специалистам по восстановлению БД.

Как убедиться, что бэкап вообще рабочий, до момента аварии?

Только периодическим тестовым восстановлением. Регулярно (например, раз в месяц) разворачивайте свежий .bak на тестовом сервере и проверяйте вход в 1С и наличие данных. Дополнительно включите в план обслуживания проверку целостности бэкапа сразу после его создания (опция VERIFY).

Итог

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

Файл .bak из 1С — это бэкап SQL Server, и открывается он только через восстановление базы в SQL Server (SSMS или T-SQL), а не через конфигуратор. Проверяйте версию SQL Server, никогда не восстанавливайте поверх рабочей базы без копии и регулярно тестируйте бэкапы на восстановление.