Возврат базы 1С 8.3 из бэкапа: файл .dt, копия 1Cv8.1CD и дамп СУБД
Содержание
Чтобы восстановить базу 1С 8.3 из резервной копии в формате .dt, откройте базу в Конфигураторе и выберите Администрирование → Загрузить информационную базу. Укажите файл выгрузки, подтвердите замену данных — после загрузки база станет такой, какой была в момент выгрузки. Если копия — это файл 1Cv8.1CD или дамп SQL, способ другой, и о каждом ниже.
Частая ошибка — грузить .dt прямо в рабочую базу «на всякий случай». Загрузка полностью стирает текущие данные, включая список пользователей. Сначала восстановите копию в новую пустую базу, проверьте её, и только потом решайте, заменять ли рабочую.
1. Что у вас на руках: тип копии определяет способ
Перед восстановлением посмотрите на сам файл бэкапа. От его вида зависит, какой инструмент нужен и сколько времени займёт работа.
| Что лежит в папке бэкапа | Откуда взялось | Чем восстанавливать |
|---|---|---|
Файл .dt | Выгрузка из Конфигуратора или пакетного режима | Загрузить информационную базу в Конфигураторе |
Файл 1Cv8.1CD или архив .zip с ним | Копирование папки файловой базы, встроенное резервное копирование программы | Замена файла в каталоге базы |
.bak (MS SQL) | Задание обслуживания SQL Server | RESTORE DATABASE в SQL Server |
.backup, .dump, .sql (PostgreSQL) | pg_dump | pg_restore или psql |
.cf | Сохранение конфигурации | Только программа, без данных |
Файл .cf — это не резервная копия данных. В нём нет ни одного документа или справочника, только конфигурация. Если других файлов нет, восстановить учёт из него не получится.
Что подготовить заранее
- 💾 Свободное место на диске — примерно в 2–3 раза больше размера
.dt: выгрузка сжата, база после загрузки заметно крупнее. - 🔢 Платформа с номером не ниже той, в которой сделана выгрузка. Номер видно в
Справка → О программеу той базы, откуда делали копию. - 👤 Логин и пароль администратора из той копии. После загрузки действует список пользователей из бэкапа, а не текущий.
- 🚪 Монопольный доступ: загрузка
.dtтребует, чтобы в базе не было других сеансов.
2. Загрузка выгрузки .dt в файловую базу
Это самый частый сценарий: бухгалтер или администратор держит набор .dt за разные даты и возвращает нужную.
Шаг 1. Создайте пустую базу под копию
- В окне запуска 1С нажмите
Добавить. - Выберите «Создание новой информационной базы» и вариант без конфигурации — пустую базу.
- Укажите новый каталог, например
D:\Bases\Buh_restore. Не тот, где лежит рабочая база.
Шаг 2. Загрузите файл
- Выделите новую базу и нажмите
Конфигуратор. - Откройте меню
Администрирование → Загрузить информационную базу. - Выберите файл
.dtи подтвердите предупреждение о потере текущих данных. - Дождитесь сообщения об успешной загрузке. Конфигуратор предложит перезапуститься — согласитесь.
Для базы на 2–3 ГБ загрузка обычно идёт от нескольких минут до получаса. Окно может казаться зависшим — не закрывайте его, иначе база останется недозагруженной.
Шаг 3. Проверьте результат
Запустите базу в режиме «1С:Предприятие» под пользователем из копии. Откройте журнал документов и посмотрите последнюю дату: она должна совпасть с датой бэкапа. Сформируйте оборотно-сальдовую ведомость за последний месяц и сравните с тем, что ждали.
Как выбрать нужную копию из нескольких
Если бэкапов много, не грузите их по очереди в одну базу. Создайте две-три пустые базы и загрузите в них копии за разные даты. Так быстрее найти последнюю исправную версию — например, ту, что была до ошибочного закрытия месяца или массового удаления документов.
Ориентируйтесь на дату в имени файла и на дату изменения файла в проводнике. Если они расходятся, верьте содержимому: после загрузки откройте журнал регистрации и посмотрите последние события.
Если база проверена и подходит, проще всего поменять пути в списке баз: рабочей базе дать имя «Старая», а восстановленной — привычное имя. Так у вас останется путь назад.
Если нужно загрузить прямо в рабочую базу
Иногда новую базу создать нельзя — например, к рабочему пути привязаны обмены и ярлыки у пользователей. Тогда:
- Сделайте выгрузку текущего состояния в
.dt— это страховка на случай, если копия окажется не той. - Попросите всех выйти из программы.
- Загрузите нужный
.dtчерез то же меню Конфигуратора.
3. Восстановление файловой базы из копии 1Cv8.1CD
Файловая база — это папка, а все данные лежат в одном файле 1Cv8.1CD. Если бэкап делали простым копированием этой папки или встроенным резервным копированием, восстановление сводится к замене файла.
- Убедитесь, что базой никто не пользуется: закройте 1С на всех компьютерах. Открытая база не даст заменить файл.
- Переименуйте текущий
1Cv8.1CD, например в1Cv8_old.1CD. Не удаляйте его. - Распакуйте архив копии, если он в
.zip, и положите файл1Cv8.1CDв каталог базы. - Запустите базу и проверьте данные так же, как в шаге 3 выше.
Восстановление средствами самой программы
В типовых конфигурациях для файловых баз есть раздел Администрирование → Обслуживание → Резервное копирование и восстановление. Там же находится команда восстановления из резервной копии: программа сама закроет сеанс, подменит базу и запустится снова. Удобно, если копии делались этим же механизмом и лежат в известной папке.
Меню встроенного восстановления доступно только в файловом варианте. В клиент-серверной базе этот раздел предложит настроить копирование средствами СУБД.
4. Клиент-серверная база: восстановление через SQL
В клиент-серверном варианте данные хранятся в базе СУБД, а сервер 1С лишь подключается к ней. Поэтому бэкап и восстановление делают инструментами СУБД — это быстрее, чем .dt, особенно на базах в десятки гигабайт.
Подготовка на стороне сервера 1С
- Откройте консоль администрирования серверов 1С.
- В свойствах информационной базы включите блокировку начала сеансов и блокировку регламентных заданий.
- Завершите активные сеансы в списке сеансов базы.
Завершение сеансов обрывает работу пользователей без сохранения. Предупредите людей заранее и делайте это в нерабочее время.
MS SQL Server
Восстановление из .bak выполняют в SQL Server Management Studio через мастер восстановления базы или запросом:
RESTORE DATABASE [Buh]
FROM DISK = N'D:\Backup\Buh_full.bak'
WITH REPLACE, RECOVERY, STATS = 10;
Параметр REPLACE перезапишет существующую базу Buh. Если хотите сначала проверить копию, восстановите её под другим именем — понадобится WITH MOVE, чтобы файлы данных и журнала не легли поверх рабочих. Если есть разностные копии и журналы транзакций, восстанавливайте их по порядку с NORECOVERY, а последний — с RECOVERY.
PostgreSQL
Дамп в пользовательском формате восстанавливают так:
createdb -U postgres -T template0 buh_restore
pg_restore -U postgres -d buh_restore -j 4 D:\Backup\buh.backup
Ключ -j 4 запускает восстановление в 4 потока и заметно ускоряет работу на больших базах. Используйте сборку PostgreSQL с доработками для 1С — ту же, на которой работает рабочая база.
Подключение восстановленной базы к серверу 1С
Если восстановили поверх рабочей базы СУБД — снимите блокировки в консоли, и пользователи заходят как раньше.
Если базу СУБД развернули под новым именем, зарегистрируйте её в кластере: в консоли создайте новую информационную базу и в её параметрах укажите сервер СУБД и имя восстановленной базы данных. Флажок «Создать базу данных в случае её отсутствия» оставьте выключенным: база уже существует.
5. Переход между форматами: файловая, серверная, другая СУБД
Отдельная официальная утилита конвертации вроде «dt2db» для 1С 8.3 не нужна: универсальный переходник — сам формат .dt. Он не зависит от варианта работы и СУБД.
| Задача | Как сделать |
|---|---|
| Файловая → клиент-серверная | Выгрузить .dt из файловой базы, создать базу на сервере 1С, загрузить .dt |
| Клиент-серверная → файловая | Выгрузить .dt из серверной базы, создать пустую файловую, загрузить |
| MS SQL → PostgreSQL | Только через .dt: бэкап .bak в PostgreSQL не восстанавливается |
Есть только 1Cv8.1CD | Подключить папку с файлом как файловую базу, затем выгрузить .dt |
Сторонние программы, которые обещают «достать» данные из .1CD или конвертировать бэкапы без платформы, используйте только для чтения и на копии файла. Для рабочего восстановления хватает штатных средств.
6. Автоматическое резервное копирование, чтобы было из чего восстанавливать
Восстановить базу можно только из той копии, которая есть. Поэтому вторая половина задачи — настроить регулярный бэкап.
Файловая база
В типовых конфигурациях откройте Администрирование → Обслуживание → Резервное копирование и восстановление и включите автоматическое копирование. Задайте:
- 🕗 расписание — например, ежедневно в 20:00 или при завершении работы;
- 📁 каталог на другом диске или сетевом ресурсе, а не рядом с базой;
- 🗂 сколько последних копий хранить — например, 14.
Пакетная выгрузка .dt по расписанию
Для любой базы, включая серверную, подойдёт выгрузка через командную строку и планировщик заданий Windows:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\Buh" /N "Администратор" /P "пароль" /DumpIB "D:\Backup\Buh_%date:~6,4%%date:~3,2%%date:~0,2%.dt" /Out "D:\Backup\dump.log" /DisableStartupDialogs
Для файловой базы вместо /S "srv1c\Buh" укажите /F "D:\Bases\Buh". Номер версии в пути замените на свой. Обратная операция в пакетном режиме — ключ /RestoreIB с путём к файлу.
Пароль в bat-файле хранится открытым текстом. Создайте для бэкапа отдельного пользователя с нужными правами и закройте папку со скриптом от посторонних.
Помните, что выгрузка .dt тоже требует монопольного доступа: ставьте её на ночь, когда в базе никого нет.
Клиент-серверная база
Здесь бэкап — задача СУБД: план обслуживания в MS SQL или pg_dump по расписанию в PostgreSQL. Разумная схема: полная копия раз в сутки, журналы транзакций каждый час — тогда восстановление возможно с потерей не больше часа работы. Раз в неделю дополнительно делайте .dt: он пригодится для переезда на другую СУБД.
7. Ошибки при восстановлении базы и что с ними делать
Частые ошибки, из-за которых теряют данные
- ❌ Загружают
.dtв рабочую базу без свежей выгрузки текущего состояния — и не могут вернуть то, что внесли после бэкапа. - ❌ Хранят копии в той же папке, что и база. Сбой диска или шифровальщик уносит всё сразу.
- ❌ Ни разу не проверяли копию. Узнают, что она пустая или битая, в день аварии.
- ❌ Восстанавливают
.bakповерх рабочей базы СУБД, не сняв блокировки в консоли 1С, — пользователи успевают зайти в полувосстановленную базу.