Вопрос резервного копирования файловых баз данных 1С:Предприятие 8 является одним из самых обсуждаемых среди администраторов и разработчиков. Часто возникает соблазн просто скопировать файл 1Cv8.1CD обычными средствами операционной системы (Ctrl+C / Ctrl+V), пока в базе работают люди. Давайте подробно разберем, к каким последствиям это может привести, почему страдает целостность данных и как правильно организовать процесс резервного копирования без прерывания работы пользователей.
Начнем с успокаивающего факта: для оригинального файла базы данных, с которым в данный момент работают пользователи, прямое копирование практически не несет рисков. В современных операционных системах чтение файла другим процессом (например, проводником Windows или архиватором) не мешает движку 1С продолжать запись или чтение данных. Однако стоит учитывать следующие нюансы:
Основная опасность кроется не в оригинале, а в полученной копии. Файловая база 1С — это сложная структура, состоящая из множества внутренних таблиц, индексов и служебных полей, хранящихся в одном физическом файле 1Cv8.1CD. Рассмотрим подробнее, что происходит в момент копирования.
Когда операционная система копирует файл, она делает это последовательно, блок за блоком. В это же самое время движок 1С может выполнять транзакцию. Например, бухгалтер проводит документ «Реализация товаров и услуг». С точки зрения 1С, это единая операция, но внутри файла она разбивается на множество записей в разные таблицы:
Проанализируем ситуацию: ОС уже скопировала первую часть файла, где находится заголовок документа, и перешла к середине файла. В этот момент 1С завершает транзакцию и обновляет данные в регистрах в конце файла. В итоге в вашей копии окажется «заголовок» нового документа, но информация о его движениях по регистрам может быть либо старой, либо вообще отсутствовать. Это и называется нарушением логической целостности.
Разберем, с какими конкретными ошибками вы можете столкнуться, попытавшись открыть такую «горячую» копию:
SDBL: Таблица или поле не содержится в схеме.Объект не найден, так как ссылка на него была записана в одну таблицу, но сам объект еще не успел физически зафиксироваться в другой части копируемого файла.При работе с файловой базой в папке всегда присутствуют файлы 1Cv8.1cl (файл блокировок) и иногда 1Cv8.1ck. Если вы копируете всю папку целиком, в копию попадает и файл блокировок. Проанализируем последствия: при попытке открыть такую копию 1С может ошибочно решить, что с базой уже кто-то работает, и выдать ошибку совместного доступа, даже если вы единственный пользователь.
Если выгонять пользователей нельзя, а бэкап нужен прямо сейчас, разберем правильные инструменты.
Технология Volume Shadow Copy Service (VSS) позволяет сделать «снимок» файловой системы в конкретный момент времени. Хотя у файловой 1С нет собственного VSS-райтера (в отличие от MS SQL), использование системного провайдера позволяет получить «согласованную на уровне файловой системы» копию. Это аналогично состоянию базы после резкого выключения питания сервера. При первом запуске такой копии 1С проведет внутреннюю проверку и исправит мелкие несоответствия. Для реализации этого метода можно использовать специализированное ПО, такое как Effector Saver или скрипты на базе утилиты vshadow.exe.
Это самый надежный способ, гарантирующий логическую целостность. Мы можем запустить Конфигуратор в фоновом режиме с командой выгрузки. Рассмотрим пример командной строки для такого действия:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "C:\PathToYourBase" /N "Admin" /P "Password" /DumpIB "C:\Backup\Base.dt" /Out "C:\Backup\log.txt"
Важно: Этот метод потребует монопольного доступа в старых версиях платформы или может завершиться ошибкой, если активно используются объектные блокировки. Тем не менее, механизм /DumpIB проверяет целостность данных в процессе выгрузки.
Если риски повреждения данных при копировании становятся критичными для бизнеса, мы рекомендуем рассмотреть переход на MS SQL Server или PostgreSQL. В этих СУБД механизмы транзакций и создания резервных копий «на лету» реализованы на уровне ядра системы и работают со 100% гарантией целостности без необходимости прерывать работу пользователей.
Если вы все же скопировали файл напрямую и подозреваете наличие ошибок, обязательно выполните следующие шаги в базе-копии:
Реиндексация таблиц, Проверка логической целостности и Проверка ссылочной целостности.Подведем итог: Прямое копирование 1Cv8.1CD — это лотерея. В большинстве случаев база откроется, но вы никогда не будете уверены в достоверности данных внутри нее. Для профессиональной работы всегда используйте специализированные средства резервного копирования, поддерживающие VSS, или штатные механизмы выгрузки платформы 1С.