Сохранение баз 1С: выгрузка в файл, резервная копия и восстановление
Содержание
Сохранить базу
1С можно тремя разными способами, и выбор зависит от того, файловая у вас база или серверная. Для файловой достаточно закрыть программу и скопировать папку с файлом 1Cv8.1CD. Для серверной (клиент-серверной на SQL) правильнее делать резервную копию средствами СУБД. А универсальный для обоих вариантов приём — выгрузка информационной базы в файл .dt через Конфигуратор.
Ниже разберём каждый метод с точными путями меню, настройку автоматического копирования по расписанию и восстановление данных, если база повредилась или её удалили по ошибке.
Выгрузка информационной базы в файл .dt
Файл .dt — это полная логическая выгрузка базы: конфигурация плюс все данные в одном архиве. Он подходит и файловой, и серверной базе, его удобно хранить и переносить между компьютерами.
Как выгрузить:
- Запустите базу в режиме
Конфигуратор. - Меню
Администрирование → Выгрузить информационную базу. - Укажите папку и имя файла, нажмите
Сохранить.
Платформа создаст один файл с расширением .dt. Перед выгрузкой закройте все сеансы пользователей — платформа предупредит, если кто-то ещё работает в базе.
Для разовой задачи — перенести базу на другой компьютер, передать в поддержку, сохранить состояние перед обновлением — выгрузка .dt удобнее всего. Файл самодостаточен: из него база разворачивается «с нуля».
Одна оговорка: журнал регистрации (кто и что делал в базе) в выгрузку .dt не попадает — он хранится отдельно. Если журнал нужен для разбора инцидента, сохраняйте его вместе с базой отдельно: в файловом варианте это служебные файлы журнала рядом с 1Cv8.1CD.
Тот же результат можно получить прямо из программы, не заходя в Конфигуратор. В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание → Резервное копирование и восстановление → Создать резервную копию. Программа сохранит ту же выгрузку в файл.
Выгрузка в .dt — медленная операция для больших баз. Файл на несколько десятков гигабайт может выгружаться часами. Для крупных серверных баз это не основной способ бэкапа — о нём ниже.
Резервная копия файловой базы
Файловая база — это папка с файлом 1Cv8.1CD (сами данные) и служебными файлами рядом. Самый надёжный бэкап такой базы — скопировать папку целиком.
Где лежит база, видно в окне запуска 1С: выделите базу в списке, нажмите Изменить — в поле каталога указан полный путь.
Порядок копирования:
- Убедитесь, что в базе никто не работает — закройте все окна 1С на всех компьютерах.
- Откройте папку базы в проводнике.
- Скопируйте всю папку целиком в надёжное место (другой диск, сетевую шару, внешний носитель).
Копировать нужно именно папку, а не только файл 1Cv8.1CD: рядом лежат файлы блокировок и журнал регистрации, они тоже относятся к базе.
Нельзя копировать файл 1Cv8.1CD, пока база открыта хотя бы одним пользователем. Копия «на лету» получится битой — восстановить из неё данные не выйдет.
Для файловой базы годятся оба подхода — и копия папки, и выгрузка .dt. Копия папки делается быстрее и переносится один в один; .dt компактнее и не зависит от версии платформы на другом компьютере (развернётся на равной или более новой).
Резервное копирование серверной базы на SQL
У клиент-серверной базы данные хранятся не в файле 1Cv8.1CD, а в СУБД — Microsoft SQL Server или PostgreSQL. Копировать файлы базы данных из каталога СУБД вручную нельзя: пока служба СУБД запущена, файлы заняты, а их ручная копия будет неполной.
Правильный способ — делать бэкап штатными средствами самой СУБД.
Microsoft SQL Server. В SQL Server Management Studio: правой кнопкой на базе → Tasks → Back Up. Тип копии — Full (полная). Результат — файл .bak. Эту же операцию обычно ставят на расписание планом обслуживания (Maintenance Plan).
PostgreSQL. Выгрузка делается утилитой pg_dump из комплекта PostgreSQL. Команда создаёт дамп базы в файл; для восстановления используется pg_restore или psql. Точный синтаксис зависит от версии — смотрите документацию вашей сборки PostgreSQL.
Выгрузку .dt для серверной базы тоже можно делать — как дополнительную «логическую» копию перед обновлением конфигурации. Но ежедневный бэкап большой серверной базы держат на уровне СУБД: он быстрее и позволяет восстановление на точку во времени.
Кто делает бэкап серверной базы — зависит от того, как разделены роли. Если СУБД администрирует отдельный специалист или системный администратор, настройку копий логично оставить ему: у него есть доступ к серверу СУБД и правами на создание заданий.
Автоматическое копирование по расписанию
Ручная копия хороша для разовых задач, но полагаться только на память опасно. Автокопирование настраивается по-разному для файловой и серверной базы.
Файловая база — средствами 1С. В типовых конфигурациях: Администрирование → Обслуживание → Резервное копирование и восстановление → Настройка резервного копирования. Доступные варианты:
- 🔁 автоматически при завершении работы программы;
- 📅 по заданному расписанию (например, раз в день в определённое время);
- 📁 с указанием папки для хранения копий.
Автокопирование файловой базы требует, чтобы в момент создания копии в базе никто не работал. Поэтому вариант «при завершении работы» срабатывает, когда из базы выходит последний пользователь.
Серверная база — средствами СУБД. Для MS SQL расписание задаётся планом обслуживания (Maintenance Plan) или заданием агента SQL Server. Для PostgreSQL — запуском pg_dump по расписанию операционной системы (планировщик заданий Windows или cron в Linux).
Проверяйте, что автокопии реально создаются. Настроенное задание, которое молча падает неделями, обнаруживается ровно в тот момент, когда копия понадобилась. Раз в месяц открывайте папку с копиями и смотрите на даты и размер файлов.
Проверка базы перед сохранением
Копия повреждённой базы наследует все её повреждения. Если файловая база давно не проверялась, а в работе бывали аварийные завершения и обрывы сети, перед важным бэкапом стоит убедиться, что с ней всё в порядке.
Для файловой базы есть два способа проверки целостности:
- 🔧 Утилита
chdbfl.exe— поставляется с платформой, лежит в её каталогеbin. Запускается отдельно от 1С, указываете путь к файлу1Cv8.1CD, при необходимости ставите галку исправления найденных нарушений. Работает только с файловыми базами. - 🛠 Тестирование и исправление из Конфигуратора —
Администрирование → Тестирование и исправление информационной базы. Подходит и файловой, и серверной базе, умеет проверять логическую и ссылочную целостность данных.
Тестирование и исправление, как и chdbfl, требует монопольного доступа и может идти долго на большой базе — пользователи в это время работать не смогут. Перед запуском исправления обязательно сделайте копию — если процедура прервётся, повреждённая база останется без запасного варианта.
Серверную базу
проверяют тем же Тестированием и исправлением, а целостность на уровне СУБД — средствами самой СУБД (для MS SQL — DBCC CHECKDB). Регулярную проверку обычно совмещают с планом обслуживания, который делает бэкап.
Где хранить копии и сколько их держать
Одна копия рядом с базой — это почти не копия. Если выйдет из строя диск или зашифрует вирус, пропадёт и база, и бэкап. Разнесите хранение:
- 💾 одна копия — на отдельном физическом диске или в сетевом хранилище;
- ☁️ одна копия — вне офиса: другой сервер, облако, внешний носитель в сейфе;
- 🗂 оригинал базы — там, где работаете.
Это и есть известное правило «3-2-1»: три копии данных, на двух разных носителях, одна — вне основной площадки. Отдельно стоит держать хотя бы одну копию, до которой не дотянется программа-шифровальщик: внешний носитель, который подключается только на время бэкапа, или хранилище, где старые копии нельзя перезаписать. Если вирус зашифрует сетевую папку, копии в ней пропадут вместе с базой.
Сколько копий держать и как удалять старые (ротация):
| Период | Что хранить | Зачем |
|---|---|---|
| Последние 7–14 дней | Ежедневные копии | Откатиться на вчера-позавчера |
| Последние 2–3 месяца | По одной копии в неделю | Найти, когда «сломались» данные |
| Год | По одной копии в месяц | Закрытые периоды, отчётность |
Такая схема (её называют «дед-отец-сын») не даёт папке с копиями разрастись до бесконечности и при этом сохраняет возможность откатиться на разную глубину. Старые ежедневные копии удаляются, остаются недельные и месячные срезы.
Отдельно сохраняйте копию перед каждым обновлением конфигурации и перед закрытием месяца. Эти точки важнее ежедневных: к ним чаще всего приходится возвращаться.
Восстановление базы из копии
Способ восстановления зависит от того, из чего восстанавливаете.
Из копии папки (файловая база). Закройте все сеансы, замените папку базы сохранённой копией — или подключите копию как новую базу через Добавить в окне запуска, указав её каталог. Второй вариант безопаснее: исходная база остаётся на месте, вы проверяете копию отдельно.
Из файла .dt. Запустите базу в режиме Конфигуратор, затем Администрирование → Загрузить информационную базу, укажите файл .dt.
Загрузка .dt полностью перезаписывает текущую базу — все данные в ней заменяются содержимым файла. Операция требует монопольного доступа: платформа не даст загрузить базу, пока в ней есть активные сеансы. Если нужно сравнить данные, а не затереть — сначала разверните .dt в отдельную пустую базу.
Из бэкапа СУБД (серверная база). Восстановление делается средствами СУБД: для MS SQL — Restore Database из файла .bak, для PostgreSQL — pg_restore/psql из дампа. Это операция администратора сервера.
Если MS SQL настроен на полную модель восстановления и регулярно сохраняет журнал транзакций, базу можно восстановить не только на момент последнего полного бэкапа, но и на конкретное время — например, за минуту до ошибочной массовой операции. Это и есть преимущество бэкапа на уровне СУБД перед выгрузкой .dt: .dt фиксирует состояние только на момент выгрузки.
Чтобы восстановить .dt в новую базу (не затирая рабочую):
- В окне запуска 1С нажмите
Добавить → Создание новой информационной базы. - Выберите
Создание информационной базы без конфигурации(пустую). - После создания откройте её в Конфигураторе и загрузите
.dtчерезАдминистрирование → Загрузить информационную базу.
Копия, из которой ни разу не восстанавливались, — это копия, в которой вы не уверены. Хотя бы раз разверните свежий бэкап в тестовую базу и убедитесь, что она открывается и данные на месте.
Частые вопросы
Чем выгрузка .dt отличается от копии папки?
.dt — это логическая выгрузка: платформа собирает конфигурацию и данные в один переносимый файл, который развернётся на равной или более новой версии платформы. Копия папки — это побайтовый дубль файла 1Cv8.1CD, он быстрее делается и восстанавливается, но привязан к файловому варианту базы.Можно ли копировать файл 1Cv8.1CD, не закрывая программу?
Почему нельзя просто скопировать файлы серверной базы из папки SQL?
.bak для MS SQL, дамп pg_dump для PostgreSQL), а не копированием файлов.Нужен ли монопольный доступ для сохранения базы?
.dt достаточно, чтобы в базе никто активно не работал. А вот загрузка .dt обратно требует строго монопольного доступа — платформа заблокирует операцию при наличии активных сеансов.