Администрирование · 11 мин
BAK-файл в 1С: что это и как с ним работать
Что такое файл .bak в контексте 1С, чем он отличается от dt и 1Cv8, как открыть и восстановить базу из bak-файла через MS SQL Server и в файловом режиме.
Файл с расширением .bak — это резервная копия (backup), которая создаётся либо вручную пользователем, либо автоматически планировщиком задач. В контексте 1С чаще всего .bak — это дамп базы данных MS SQL Server, на которой развёрнута клиент-серверная база 1С. Сама платформа 1С файлы .bak не создаёт и не открывает напрямую: её «родной» формат резервной копии — это файл выгрузки .dt, а файловая база хранится в файле 1Cv8.1CD.
Путаница возникает потому, что администраторы настраивают регламентное резервное копирование средствами SQL Server, и на диске появляются файлы вида base_backup_2026.bak. Пользователь видит незнакомое расширение и пытается открыть его конфигуратором — безуспешно. Чтобы восстановить такую копию, нужно действовать через средства СУБД, а не через 1С.
Ниже разобрано, откуда берутся bak-файлы в инфраструктуре 1С, чем они отличаются от dt и 1CD, как корректно восстановить из них базу и каких ошибок при этом следует избегать.
Что такое .bak и откуда он берётся в 1С
Расширение .bak (от англ. backup) — универсальное обозначение резервной копии. Его используют самые разные программы: текстовые редакторы, СУБД, системы виртуализации. В инфраструктуре 1С источник bak-файла почти всегда один — план обслуживания или задание агента SQL Server, который выполняет команду BACKUP DATABASE и сохраняет результат в файл с этим расширением.
Такой файл содержит полный образ базы данных на момент копирования: таблицы, индексы, хранимые процедуры и служебные объекты SQL Server. Это не «файл 1С» в привычном смысле — платформа 1С о его существовании не знает и работать с ним не умеет.
Реже расширение .bak встречается у файловых баз: некоторые администраторы и сторонние утилиты архивации просто копируют 1Cv8.1CD и переименовывают копию в .bak. В этом случае достаточно вернуть файлу исходное имя и подключить его как файловую базу. Определить тип можно по размеру и содержимому: дамп SQL Server обычно велик и начинается со служебной сигнатуры TAPE, а файл 1Cv8.1CD имеет собственный заголовок базы данных 1С.
Чем .bak отличается от .dt и 1Cv8.1CD
У 1С существует три распространённых способа резервного копирования, и у каждого свой формат и своя процедура восстановления. Смешивать их нельзя: попытка загрузить bak через «Загрузить информационную базу» в конфигураторе закончится ошибкой.
| Формат | Кто создаёт | Как восстанавливается | Когда применяется |
|---|---|---|---|
| .bak | MS SQL Server (план обслуживания, агент) | RESTORE DATABASE в SQL Server Management Studio | Клиент-серверные базы, регламентное копирование |
| .dt | Конфигуратор 1С («Выгрузить информационную базу») | Конфигуратор, «Загрузить информационную базу» | Перенос базы, копия перед обновлением |
| 1Cv8.1CD (копия) | Копирование файла или сторонняя утилита | Подключение папки как файловой базы | Небольшие файловые базы |
Практический смысл различия: dt-файл универсален и переносит базу между платформами и СУБД, но выгрузка большой базы в dt занимает много времени и требует монопольного доступа. Bak-файл создаётся быстро средствами СУБД, часто без остановки работы пользователей, но восстановить его можно только в той же или совместимой версии SQL Server.
Как определить, что находится внутри bak-файла
Прежде чем восстанавливать копию, полезно убедиться, что файл действительно содержит дамп нужной базы. Самый простой способ — посмотреть имя файла и папку: администраторы обычно включают в имя название базы и дату. Если имена неинформативны, заголовок дампа можно прочитать средствами SQL Server без восстановления.
Для этого в SQL Server Management Studio выполняется запрос RESTORE HEADERONLY, который возвращает имя исходной базы, дату создания копии, версию сервера и тип дампа (полный, разностный, журнал транзакций). Это безопасная операция: она ничего не изменяет на сервере.
RESTORE HEADERONLY FROM DISK = N'D:\Backups\base_backup.bak';По результату проверьте поле DatabaseName — оно должно совпадать с именем рабочей базы, и позицию BackupType: значение 1 означает полную копию, 5 — разностную. Разностную копию нельзя восстановить без предшествующей полной, это частая причина ошибок.
Как восстановить базу 1С из bak-файла
Восстановление выполняется на стороне SQL Server. Платформа 1С участвует только на последнем шаге, когда восстановленную базу нужно подключить. Ниже — типовой порядок для тестового восстановления копии рядом с рабочей базой.
- 1Скопируйте bak-файл на диск сервера СУБД или в доступную ему сетевую папку.
- 2Откройте SQL Server Management Studio и подключитесь к нужному экземпляру.
- 3Выполните RESTORE DATABASE с новым именем базы и параметром WITH MOVE, чтобы файлы данных не перекрыли рабочие.
- 4Дождитесь завершения восстановления и проверьте, что база в состоянии Online.
- 5В консоли сервера 1С создайте новую информационную базу, указав восстановленную базу данных, либо подключитесь к ней через конфигуратор для проверки.
- 6Откройте базу и убедитесь, что данные соответствуют ожидаемой дате копии.
Ключевой момент — параметр WITH MOVE. Файлы данных внутри дампа хранят исходные пути, и при восстановлении под тем же именем SQL Server попытается перезаписать файлы рабочей базы. Восстановление всегда выполняйте под новым именем базы, если цель — не откат, а получение копии для анализа.
Если задача — именно откат рабочей базы на дату копии, сначала переведите базу в single_user или отключите сеансы 1С, сделайте дополнительную копию текущего состояния и только потом восстанавливайте поверх. Откат без предварительной копии уничтожит все данные, введённые после даты дампа.
Восстановление файловой базы, переименованной в .bak
Если выяснилось, что bak-файл — это просто переименованная копия 1Cv8.1CD, процедура гораздо проще и не требует SQL Server. Такие копии делают перед обновлением конфигурации или при переносе базы между компьютерами.
Создайте новую папку, скопируйте туда файл и переименуйте его в 1Cv8.1CD. Затем в списке информационных баз добавьте новую базу, указав эту папку. Если база открывается и конфигуратор не сообщает об ошибках структуры, копия исправна. Перед использованием в работе полезно выполнить тестирование и исправление в режиме проверки физической целостности.
Учтите ограничение: копировать файл 1Cv8.1CD можно только когда с базой никто не работает. Копия, снятая «на живую» во время активных сеансов, может оказаться повреждённой — это одна из самых частых причин «битых» резервных копий файловых баз.
Типичные ошибки и как их избежать
Отдельно стоит упомянуть версии SQL Server: дамп, созданный на более новой версии, нельзя восстановить на старой. Обратная совместимость (со старой на новую) обычно работает, но после восстановления база может быть автоматически обновлена до нового уровня совместимости.
Ещё одна частая проблема — права доступа. Учётная запись службы SQL Server должна иметь чтение на папку с bak-файлом. Если файл лежит в сетевой папке, а служба работает под локальной учётной записью, RESTORE завершится ошибкой доступа, хотя сам файл виден администратору.
Как проверить, что восстановление прошло успешно
Как проверить результат
База в статусе Online, без суффикса Restoring
База зависла в Restoring — не выполнен RESTORE WITH RECOVERY
База открывается, справочники и документы доступны
Ошибка соединения или пустые данные
Последние документы соответствуют дате копии
Данные старше ожидаемых — восстановлен не тот файл
Нет ошибок восстановления и целостности
Сообщения о повреждённых страницах — дамп неисправен
После подключения восстановленной базы к серверу 1С откройте несколько ключевых отчётов и журналы документов. Убедитесь, что обороты сходятся с ожиданиями на дату копии. Для тестовой базы этого достаточно; для отката рабочей базы дополнительно проведите сверку с пользователями по критичным участкам учёта.
Как организовать резервное копирование, чтобы bak-файлы реально помогали
Наличие bak-файла само по себе не гарантирует защиту данных. Копия полезна, только если она свежая, исправная и лежит вне отказавшего оборудования. Минимальный рабочий набор для клиент-серверной базы: ежедневная полная копия, копии журнала транзакций в течение дня (при модели восстановления Full) и периодическая выгрузка в dt.
Обязательно периодически выполняйте контрольное восстановление на тестовый сервер. Копия, которая ни разу не восстанавливалась, — это предположение, а не гарантия. Храните копии минимум в двух физически разных местах: локальный диск сервера подходит для оперативного отката, сетевое хранилище или облако — для защиты от отказа сервера целиком.
Что важно запомнить
BAK-файл в контексте 1С — это дамп базы MS SQL Server, а не файл платформы. Восстанавливается он средствами SQL Server с параметром WITH MOVE, затем база подключается к серверу 1С. Перед восстановлением проверяйте заголовок дампа, всегда делайте копию текущего состояния и регулярно тестируйте восстановление.
Частые вопросы
Можно ли открыть bak-файл без SQL Server?
Нет, если это дамп SQL Server — просмотреть или извлечь данные из него можно только восстановив базу на экземпляре SQL Server подходящей версии. Для разовой задачи подойдёт бесплатная редакция SQL Server Express, если размер базы укладывается в её ограничение по объёму данных.
Чем bak отличается от dt и что выбрать для ежедневного копирования?
Bak создаётся средствами СУБД быстро и без остановки работы, но привязан к SQL Server. Dt создаётся конфигуратором, требует монопольного доступа, зато переносим между платформами. Для ежедневного регламентного копирования удобнее bak, а dt разумно делать периодически как страховочный переносимый архив.
Почему при восстановлении возникает ошибка «файл используется»?
Почти всегда причина в том, что восстановление выполняется под именем существующей базы или без параметра WITH MOVE, и SQL Server пытается перезаписать файлы работающей базы. Восстановите дамп под новым именем и укажите новые пути для файлов данных и журнала.
Можно ли восстановить bak, созданный на новой версии SQL Server, на старую?
Нет, обратной совместимости дампов нет: копия с новой версии не восстановится на старой. Обходной путь — восстановить на новой версии и перенести данные через выгрузку dt или скрипты генерации данных.
Нашёлся файл 1Cv8.1CD.bak — что с ним делать?
Это копия файловой базы. Скопируйте файл в отдельную папку, переименуйте в 1Cv8.1CD и добавьте папку как новую информационную базу в списке 1С. Если база не открывается или ругается на структуру, выполните тестирование и исправление в конфигураторе.
Как узнать дату создания копии внутри bak-файла?
Выполните в SQL Server Management Studio запрос RESTORE HEADERONLY с указанием пути к файлу. В результате будут поля BackupStartDate и BackupFinishDate — по ним видно, какому моменту соответствует копия, не прибегая к восстановлению.