Сохранение баз 1С: выгрузка в файл, резервная копия и восстановление

· 9 мин

Содержание

Сохранить базу 1С можно тремя разными способами, и выбор зависит от того, файловая у вас база или серверная. Для файловой достаточно закрыть программу и скопировать папку с файлом 1Cv8.1CD. Для серверной (клиент-серверной на SQL) правильнее делать резервную копию средствами СУБД. А универсальный для обоих вариантов приём — выгрузка информационной базы в файл .dt через Конфигуратор.

Ниже разберём каждый метод с точными путями меню, настройку автоматического копирования по расписанию и восстановление данных, если база повредилась или её удалили по ошибке.

Выгрузка информационной базы в файл .dt

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

Как выгрузить:

  1. Запустите базу в режиме Конфигуратор.
  2. Меню Администрирование → Выгрузить информационную базу.
  3. Укажите папку и имя файла, нажмите Сохранить.

Платформа создаст один файл с расширением .dt. Перед выгрузкой закройте все сеансы пользователей — платформа предупредит, если кто-то ещё работает в базе.

Для разовой задачи — перенести базу на другой компьютер, передать в поддержку, сохранить состояние перед обновлением — выгрузка .dt удобнее всего. Файл самодостаточен: из него база разворачивается «с нуля».

Одна оговорка: журнал регистрации (кто и что делал в базе) в выгрузку .dt не попадает — он хранится отдельно. Если журнал нужен для разбора инцидента, сохраняйте его вместе с базой отдельно: в файловом варианте это служебные файлы журнала рядом с 1Cv8.1CD.

Тот же результат можно получить прямо из программы, не заходя в Конфигуратор. В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание → Резервное копирование и восстановление → Создать резервную копию. Программа сохранит ту же выгрузку в файл.

Выгрузка в .dt — медленная операция для больших баз. Файл на несколько десятков гигабайт может выгружаться часами. Для крупных серверных баз это не основной способ бэкапа — о нём ниже.

Резервная копия файловой базы

Файловая база — это папка с файлом 1Cv8.1CD (сами данные) и служебными файлами рядом. Самый надёжный бэкап такой базы — скопировать папку целиком.

Где лежит база, видно в окне запуска 1С: выделите базу в списке, нажмите Изменить — в поле каталога указан полный путь.

Порядок копирования:

  1. Убедитесь, что в базе никто не работает — закройте все окна 1С на всех компьютерах.
  2. Откройте папку базы в проводнике.
  3. Скопируйте всю папку целиком в надёжное место (другой диск, сетевую шару, внешний носитель).

Копировать нужно именно папку, а не только файл 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. В окне запуска 1С нажмите Добавить → Создание новой информационной базы.
  2. Выберите Создание информационной базы без конфигурации (пустую).
  3. После создания откройте её в Конфигураторе и загрузите .dt через Администрирование → Загрузить информационную базу.

Копия, из которой ни разу не восстанавливались, — это копия, в которой вы не уверены. Хотя бы раз разверните свежий бэкап в тестовую базу и убедитесь, что она открывается и данные на месте.

Перед тем как положиться на бэкап
Выполнено: 0 / 5

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

Чем выгрузка .dt отличается от копии папки?
.dt — это логическая выгрузка: платформа собирает конфигурацию и данные в один переносимый файл, который развернётся на равной или более новой версии платформы. Копия папки — это побайтовый дубль файла 1Cv8.1CD, он быстрее делается и восстанавливается, но привязан к файловому варианту базы.
Можно ли копировать файл 1Cv8.1CD, не закрывая программу?
Нет. Пока база открыта хотя бы одним пользователем, файл меняется, и копия получится неполной и нерабочей. Сначала завершите все сеансы, затем копируйте.
Почему нельзя просто скопировать файлы серверной базы из папки SQL?
Пока служба СУБД запущена, файлы базы данных заняты и копируются неконсистентно. Серверную базу сохраняют только штатным бэкапом СУБД (.bak для MS SQL, дамп pg_dump для PostgreSQL), а не копированием файлов.
Нужен ли монопольный доступ для сохранения базы?
Для создания копии или выгрузки .dt достаточно, чтобы в базе никто активно не работал. А вот загрузка .dt обратно требует строго монопольного доступа — платформа заблокирует операцию при наличии активных сеансов.
Как часто делать резервные копии?
Для рабочей базы — ежедневно (автоматически), плюс отдельная копия перед каждым обновлением конфигурации и перед закрытием месяца. Глубину хранения задавайте по правилу «дед-отец-сын»: ежедневные за пару недель, недельные за пару месяцев, месячные за год.