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

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

Как сделать архивную копию базы 1С: все рабочие способы

Как сделать архивную копию базы 1С: выгрузка через конфигуратор, копирование файла 1Cv8.1CD, резервное копирование SQL-базы и автоматизация по расписанию.

Резервная копия базы 1С — единственная защита от потери данных при сбое диска, ошибочном обновлении конфигурации, действиях вируса-шифровальщика или случайном удалении документов. При этом способ копирования зависит от того, как развёрнута база: в файловом варианте (один файл 1Cv8.1CD в папке) или в клиент-серверном (на MS SQL Server, PostgreSQL или другой СУБД).

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

Перед любыми регламентными операциями — обновлением конфигурации, тестированием и исправлением, переносом данных — архивная копия обязательна. Восстановление из копии занимает минуты, а восстановление базы без копии часто невозможно в принципе.

Как определить, где хранится ваша база

Прежде чем выбирать способ копирования, нужно понять тип базы. Откройте список информационных баз в окне запуска 1С, выделите нужную базу и посмотрите строку подключения внизу окна. Если там указан путь вида File="D:\Bases\Trade" — база файловая. Если указан сервер и имя базы на СУБД (Srvr="server";Ref="trade") — клиент-серверная.

Тот же ответ даёт пункт меню «Файл → Открыть» или сведения о базе в разделе «О программе». Тип базы определяет доступные механизмы: прямое копирование файла работает только для файлового варианта, а штатное резервное копирование SQL — только для серверного.

Выгрузка базы через конфигуратор в файл .dt

Это основной и самый надёжный способ, подходящий для любой базы независимо от платформы и СУБД. Запустите базу в режиме «Конфигуратор» (в окне выбора баз — кнопка «Конфигуратор»). Затем откройте меню «Администрирование» и выберите пункт «Выгрузить информационную базу». Укажите папку и имя файла — удобно включать в имя дату, например trade_15-05.dt.

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

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

Выгрузка базы в .dt
  1. 1
    Попросите пользователей завершить работу и завершите фоновые сеансы
  2. 2
    Откройте базу в режиме Конфигуратор
  3. 3
    Выберите «Администрирование → Выгрузить информационную базу»
  4. 4
    Укажите папку и имя файла с датой, дождитесь окончания выгрузки
  5. 5
    Скопируйте .dt на отдельный носитель и проверьте размер файла

Копирование файловой базы напрямую

Если база файловая, резервную копию можно сделать проще — скопировать сам файл базы. В папке, указанной в строке подключения, найдите файл 1Cv8.1CD — это и есть вся база целиком. Скопируйте его в архивную папку стандартными средствами проводника или командой копирования.

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

Для восстановления достаточно вернуть файл 1Cv8.1CD на место или прописать в списке баз путь к папке с копией. Этот способ быстрее выгрузки в .dt, но менее универсален: перенести такую копию на другую версию платформы или в серверный вариант напрямую не получится — понадобится всё та же выгрузка .dt.

Резервное копирование клиент-серверной базы

Для баз на MS SQL Server, PostgreSQL или другой СУБД прямое копирование файлов данных — плохая идея: файлы базы данных нельзя корректно скопировать на работающем сервере. Здесь применяются штатные средства СУБД.

В MS SQL Server резервная копия создаётся через SQL Server Management Studio: правый клик по базе → «Tasks → Back Up», тип копии Full, назначение — файл .bak. В PostgreSQL используется утилита pg_dump, которая создаёт согласованную выгрузку даже при работающих пользователях.

bash
pg_dump -U postgres -F c -f trade_backup.dump trade_base

Копирование средствами СУБД хорошо тем, что не требует завершения сеансов и легко автоматизируется планировщиком. Но помните: такая копия восстанавливается только на той же СУБД, а для переноса базы на другую платформу или в файловый вариант всё равно нужна выгрузка .dt.

Автоматизация: архивные копии по расписанию

Ручное копирование рано или поздно забывается, поэтому регулярные копии стоит автоматизировать. Для файловых баз достаточно скрипта, который копирует 1Cv8.1CD по расписанию через планировщик заданий Windows — при условии, что в назначенное время сеансов нет.

Для выгрузки .dt без ручного запуска конфигуратор поддерживает пакетный режим командной строки с параметрами DumpIB и указанием пути к файлу выгрузки. Скрипт с такой командой добавляют в планировщик и запускают ночью. Для серверных баз аналогичную роль выполняют планы обслуживания в MS SQL Server или задания cron с pg_dump.

bash
"C:\Program Files\1cv8\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Админ" /P"пароль" /DumpIB"E:\Backup\trade_%date%.dt"

Полезно настроить ротацию: хранить ежедневные копии за последнюю неделю, еженедельные — за месяц, ежемесячные — дольше. Это позволит откатиться не только на «вчера», но и на момент до того, как ошибка попала в данные.

Проверка копии и восстановление из неё

Архивная копия считается рабочей только после проверки восстановления. Для .dt создайте пустую информационную базу, откройте её в конфигураторе и выполните «Администрирование → Загрузить информационную базу», указав файл копии. Если загрузка прошла без ошибок и база открывается в режиме предприятия — копия в порядке.

При восстановлении рабочей базы из копии помните: загрузка .dt полностью замещает текущие данные базы. Все изменения, сделанные после момента создания копии, будут потеряны. Поэтому перед восстановлением зафиксируйте, какие документы введены после даты копии, чтобы внести их повторно.

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

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

Файл копии создан
Норма

Размер сопоставим с размером базы, дата свежая

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

Файл нулевого размера или дата не обновляется

Тестовое восстановление
Норма

Копия загружается в пустую базу без ошибок

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

Ошибка загрузки или база не открывается

Место хранения
Норма

Копия лежит на отдельном диске или в облаке

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

Копия на том же диске, что и рабочая база

Типичные ошибки при создании архивных копий

Большинство потерь данных связано не с отсутствием самой процедуры, а с ошибками в её организации: копии хранятся рядом с базой, никто не проверяет их целостность, а перед обновлением конфигурации копию делают «потом».

Типичные ошибки
01
Хранение копии на том же диске, что и база — при отказе диска теряется и то, и другое
02
Копирование файла 1Cv8.1CD при открытых сеансах — копия оказывается повреждённой
03
Отсутствие проверки восстановления — в критический момент выясняется, что копия нерабочая
04
Копия только перед обновлением, но не регулярно — откат возможен только на старую дату
05
Хранение всех копий без ротации — диск переполняется, и архивация останавливается

Частые вопросы об архивных копиях 1С

Итог

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

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

Чем отличается выгрузка .dt от копирования файла базы?

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

Можно ли делать копию, пока пользователи работают?

Выгрузка .dt требует монопольного доступа и не начнётся при активных сеансах. Резервное копирование средствами СУБД (backup в MS SQL, pg_dump в PostgreSQL) работает при активных пользователях и даёт согласованную копию — это основной вариант для серверных баз без остановки работы.

Как часто нужно делать архивные копии?

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

Куда лучше сохранять копии?

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

База не открывается, а копии нет. Что делать?

Сначала попробуйте штатную утилиту «Тестирование и исправление» из конфигуратора на копии повреждённого файла. Для файловых баз также существует утилита chdbfl.exe из каталога платформы. Если механизмы не помогли, восстановление возможно только специализированными средствами, и гарантий нет — поэтому регулярные копии важнее любых способов ремонта.