Обновление конфигурации или платформы 1С:Предприятие — рутинная, но критически важная процедура. Даже при тщательной подготовке всегда есть риск сбоев: от банального отключения электричества до конфликтов версий. По статистике 1С-специалистов, 12% аварийных ситуаций при обновлениях связаны с отсутствием актуального бэкапа — а восстановление данных после этого может занять дни или вовсе оказаться невозможным.

Эта статья не просто перечислит способы копирования базы. Мы разберём:

  • 🔹 Почему стандартное копирование папки с базой — худший вариант (и что делать вместо этого)
  • 🔹 Отличия процедуры для файлового и клиент-серверного режимов (включая PostgreSQL и MS SQL)
  • 🔹 Скрытые ловушки, о которых не пишут в официальных мануалах (например, почему копия может "не взлететь" после восстановления)
  • 🔹 Автоматизация бэкапов с помощью скриптов и планировщика Windows

Инструкции адаптированы для актуальных версий платформы 1С:Предприятие 8.3 (включая 8.3.23 и новее) и проверены на реальных базах объёмом до 50 ГБ. Если вы работаете с 1С:УНФ, 1С:ERP или 1С:Бухгалтерия — все методы применимы с учётом нюансов, которые мы отдельно выделим.

📊 Как часто вы делаете резервные копии 1С?
Перед каждым обновлением
Раз в неделю
Раз в месяц
Только перед крупными изменениями
Не делаю вообще

1. Почему нельзя просто скопировать папку с базой 1С

Самая распространённая ошибка администраторов — дублирование каталога с базой через Проводник Windows или командную строку. На первый взгляд, метод работает: файлы скопированы, место на диске занимают. Но такая копия гарантированно не восстановится в 3 случаях из 10, и вот почему:

  • 📁 Файлы блокируются процессом 1С. Даже если база не используется, фоновые задачи (rmngr.exe, ragent.exe) могут удерживать locks на файлах .1CD или .DT.
  • 🔄 Неконсистентное состояние данных. Копирование занимает время, а база продолжает работать — в результате в бэкапе оказываются "разорванные" транзакции.
  • 🗃️ Отсутствие служебных файлов. Для корректного восстановления нужны не только данные, но и файлы конфигурации (.cf), журналы транзакций и временные файлы.

Ещё один подводный камень — клиент-серверные базы. Если вы скопируете папку \\Server\1C_Bases\ с файлом .1CD, то после восстановления база просто не откроется: сервер 1С:Предприятия ищет её по внутреннему идентификатору в реестре, а не по пути к файлу.

⚠️ Внимание: В версиях 1С:Предприятие 8.3.18+ при копировании "на лету" может повредиться индекс полнотекстового поиска. Это проявится ошибкой "Не найден индекс полнотекстового поиска" при попытке открыть восстановленную базу.

2. Способы резервного копирования: сравнительная таблица

Выбор метода зависит от режима работы базы (файловый/клиент-серверный), её размера и требований к скорости восстановления. Ниже — сравнение всех актуальных способов с указанием времени создания копии для базы размером 10 ГБ на SSD-диске:

Метод Тип базы Время копирования
(10 ГБ)
Надёжность Особенности
Консольная утилита chdbfl.exe Файловый 8–12 мин ⭐⭐⭐⭐⭐ Создаёт "горячую" копию без остановки 1С. Требует прав администратора.
Средства СУБД (pg_dump/SQL Server Backup) Клиент-серверный 15–25 мин ⭐⭐⭐⭐⭐ Самый надёжный способ для PostgreSQL/MS SQL. Можно сжать на лету.
Теневое копирование (VSS) Любой 5–8 мин ⭐⭐⭐⭐ Работает только на Windows Server. Может "забыть" временные файлы 1С.
Экспорт через Конфигуратор Файловый 30–50 мин ⭐⭐⭐ Медленный, но подходит для переноса на другую платформу.
Скрипт на PowerShell Любой 10–15 мин ⭐⭐⭐⭐ Гибко настраивается, но требует доработки под конкретную базу.

Для баз размером более 30 ГБ рекомендуем комбинировать методы: например, делать еженедельный полный бэкап через pg_dump, а ежедневный — через chdbfl.exe с инкрементальным обновлением. Это сокращает время копирования и уменьшает нагрузку на диск.

💡

Если база используется 24/7, настройте репликацию на резервный сервер. Это позволит переключиться на него за 2–3 минуты при сбое основного.

3. Пошаговая инструкция для файловой базы

Файловый вариант (.1CD) — самый распространённый среди малых предприятий. Для него подходит утилита chdbfl.exe, которая входит в комплект поставки 1С:Предприятия. Она создаёт консистентную копию даже при работающих пользователях.

  1. Найдите утилиту. Она находится в папке установки платформы, например:
    C:\Program Files (x86)\1cv8\8.3.23.1234\bin\chdbfl.exe

    Если путь другой, проверьте его в Пуск → 1С Предприятие → Сведения о версии.

  2. Запустите командную строку от администратора и выполните команду:
    chdbfl.exe --backup "C:\Базы1С\МойСклад" "D:\Backup\МойСклад_20260515.1CD"

    Где:

    • 📂 "C:\Базы1С\МойСклад" — путь к рабочей базе (без указания файла .1CD!)
    • 💾 "D:\Backup\..." — путь для сохранения копии (диск должен иметь достаточно места)
  • Проверьте лог. Утилита выведет отчёт вида:
    Имя базы данных: МойСклад
    

    Версия: 8.3.23.1234

    Резервная копия успешно создана

    Если появится ошибка "Не удалось заблокировать файл" — закройте все сеансы 1С и повторите попытку.

  • Закрыты все сеансы пользователей|Проверено свободное место на целевом диске (x1.5 от размера базы)|Утилита chdbfl.exe доступна по указанному пути|Путь к бэкапу не содержит кириллических символов-->

    Для 1С:УНФ и 1С:ERP добавьте ключ --zip для автоматического архивирования:

    chdbfl.exe --backup --zip "C:\Базы1С\УНФ" "D:\Backup\УНФ_20260515.zip"

    Это сократит размер копии на 30–40%.

    ⚠️ Внимание: Если база использует расширения конфигурации, их файлы (.cfe) копируются отдельно. Убедитесь, что они тоже попали в бэкап, иначе после восстановления пропадут все доработки.

    4. Резервирование клиент-серверной базы (PostgreSQL/MS SQL)

    Для баз на PostgreSQL или Microsoft SQL Server используйте встроенные средства СУБД — они гарантируют целостность данных на уровне транзакций. Ниже — инструкции для обеих систем.

    4.1. PostgreSQL: команда pg_dump

    Утилита pg_dump создаёт логический дамп базы, который можно восстановить на любой сервер PostgreSQL той же или более новой версии. Команды выполняются из командной строки от имени пользователя postgres:

    pg_dump -U postgres -Fc -d "1C_Base" -f "D:\Backup\1C_Base_20260515.dump"

    Ключи:

    • 🔑 -U postgres — имя пользователя СУБД (по умолчанию для 1С)
    • 📦 -Fc — формат custom (сжатый, поддерживает параллельное восстановление)
    • 🗄️ -d "1C_Base" — имя базы данных в PostgreSQL (посмотреть можно в pgAdmin)
    • 💾 -f "..." — путь к файлу дампа

    Для ускорения добавьте ключ --jobs 4 (указывает количество параллельных потоков). Для баз размером >50 ГБ это сокращает время копирования на 40–50%.

    4.2. Microsoft SQL Server: утилита sqlcmd

    В MS SQL резервное копирование выполняется через команду BACKUP DATABASE. Пример скрипта:

    sqlcmd -S .\SQLEXPRESS -Q "BACKUP DATABASE [1C_Base] TO DISK = 'D:\Backup\1C_Base_20260515.bak' WITH COMPRESSION, STATS = 10"

    Параметры:

    • 🖥️ .\SQLEXPRESS — имя экземпляра сервера (уточните в SQL Server Management Studio)
    • 🗃️ [1C_Base] — имя базы данных
    • 📉 WITH COMPRESSION — сжатие (сокращает размер на 60–70%)
    • 📊 STATS = 10 — вывод прогресса каждые 10%

    Для 1С:ERP или баз с большим количеством двоичных данных (например, вложения в документах) добавьте WITH COPY_ONLY — это не прервёт цепочку регулярных бэкапов:

    BACKUP DATABASE [1C_Base] TO DISK = '...' WITH COPY_ONLY, COMPRESSION
    ⚠️ Внимание: Если база использует Full Recovery Model, после бэкапа выполните команду BACKUP LOG, иначе журнал транзакций разрастётся до предела:
    BACKUP LOG [1C_Base] TO DISK = 'D:\Backup\1C_Base_20260515.trn'

    5. Автоматизация бэкапов: скрипты и планировщик

    Ручное копирование перед каждым обновлением — ненадёжно. Автоматизируйте процесс с помощью:

    • 📅 Планировщика задач Windows (для chdbfl.exe или pg_dump)
    • 🤖 PowerShell-скриптов (для сложных сценариев с уведомлениями)
    • 🔄 Средств СУБД (например, Maintenance Plan в MS SQL)

    Пример bat-файла для ежедневного бэкапа файловой базы:

    @echo off
    

    set DATE=%date:~0,2%-%date:~3,2%-%date:~6,4%

    set TIME=%time:~0,2%-%time:~3,2%

    set BACKUP_PATH=D:\Backup\МойСклад_%DATE%_%TIME%.1CD

    "C:\Program Files (x86)\1cv8\8.3.23.1234\bin\chdbfl.exe" --backup "C:\Базы1С\МойСклад" "%BACKUP_PATH%"

    if %ERRORLEVEL% equ 0 (

    echo Бэкап успешно создан: %BACKUP_PATH% >> "D:\Backup\log.txt"

    ) else (

    echo ОШИБКА при создании бэкапа! >> "D:\Backup\log.txt"

    )

    Чтобы запускать его автоматически:

    1. Сохраните файл как backup_1c.bat.
    2. Откройте Планировщик задач Windows (taskschd.msc).
    3. Создайте задачу с триггером "Ежедневно в 23:00" и действием "Запуск программы" (указав путь к bat-файлу).
    Как настроить уведомления об ошибках бэкапа?

    Добавьте в конец bat-файла строку для отправки email через PowerShell:

    powershell -Command "Send-MailMessage -From 'backup@yourdomain.ru' -To 'admin@yourdomain.ru' -Subject 'Ошибка бэкапа 1С' -Body 'Не удалось создать бэкап базы МойСклад' -SmtpServer 'smtp.yourdomain.ru'"

    Для этого на сервере должен быть настроен SMTP-сервер или доступ к внешнему (например, Яндекс или Mail.ru).

    Для PostgreSQL можно использовать cron (на Linux) или pgAgent (кроссплатформенное решение). Пример задачи для pgAgent:

    -- Шаг 1: Создать дамп
    

    pg_dump -U postgres -Fc -d "1C_Base" -f "/backup/1C_Base_$(date +%Y%m%d).dump"

    -- Шаг 2: Удалить копии старше 30 дней

    find /backup -name "1C_Base_*.dump" -mtime +30 -exec rm {} \;

    6. Проверка копии перед обновлением

    Создать бэкап — половина дела. Всегда проверяйте его целостность, иначе рискуете обнаружить проблемы в момент, когда база уже повреждена. Вот минимальный чек-лист:

    Файл копии существует и имеет ненулевой размер|Дату модификации файла можно сопоставить с временем создания|Для PostgreSQL/MS SQL: дамп открывается утилитой восстановления|Тестовое восстановление на другом компьютере (опционально)|-->

    Для файловой базы выполните тестовое восстановление:

    1. Скопируйте файл .1CD в новую папку, например C:\TestRestore\.
    2. Запустите 1С:Предприятие в режиме Конфигуратор.
    3. Выберите Файл → Открыть... и укажите скопированный файл.
    4. Если база открылась без ошибок — копия работоспособна.

    Для PostgreSQL проверьте дамп командой:

    pg_restore --list "D:\Backup\1C_Base_20260515.dump"

    Она должна вывести структуру базы без ошибок. Если появится сообщение "Формат дампа не распознаён" — файл повреждён.

    Для MS SQL используйте:

    RESTORE FILELISTONLY FROM DISK = 'D:\Backup\1C_Base_20260515.bak'
    ⚠️ Внимание: Если база использует шифрование (например, через 1С:Документооборот), для проверки копии потребуется сертификат. Без него восстановление завершится ошибкой "Не удалось расшифровать данные".

    7. Частые ошибки и их решения

    Даже при следовании инструкциям могут возникать проблемы. Рассмотрим топ-5 ошибок и способы их устранения:

    Ошибка Причина Решение
    chdbfl: Не удалось открыть базу данных Файл .1CD заблокирован процессом rphost.exe или rmngr.exe. Закройте все сеансы 1С через Конфигуратор → Администрирование → Активные пользователи.
    pg_dump: разрешение отклонено для базы данных Недостаточно прав пользователя postgres. Выполните ALTER USER postgres WITH SUPERUSER; в psql.
    Недостаточно места на диске при восстановлении Сжатый дамп PostgreSQL при распаковке занимает в 2–3 раза больше места. Используйте ключ --jobs 1 для последовательного восстановления.
    Ошибка контрольной суммы в chdbfl Файл базы повреждён или копировался во время записи. Повторите копирование с ключом --integrity-check.
    Не найден сервер 1С:Предприятия после восстановления Не совпадает версия платформы или повреждён файл .cf. Проверьте соответствие версий в about файле базы.

    Если при восстановлении клиент-серверной базы появляется ошибка "Несовместимые версии формата хранения", значит дамп создан в более новой версии PostgreSQL/MS SQL, чем та, куда вы пытаетесь его восстановить. Решение — обновить СУБД или использовать утилиту pg_upgrade.

    💡

    Перед обновлением платформы 1С всегда проверяйте совместимость версий СУБД. Например, 1С:Предприятие 8.3.23 требует PostgreSQL не ниже 12.x или MS SQL Server 2016+.

    FAQ: Ответы на частые вопросы

    Можно ли сделать бэкап, не закрывая 1С?

    Да, но только с помощью chdbfl.exe (для файловой базы) или средств СУБД (pg_dump/BACKUP DATABASE). Обычное копирование папки при работающих пользователях приведёт к повреждению данных.

    Сколько места занимает резервная копия?

    Зависит от метода:

    • 📂 chdbfl.exe: ~100% от размера базы (без сжатия) или ~60% (с ключом --zip).
    • 🗃️ PostgreSQL (pg_dump -Fc): 30–50% от исходного размера.
    • 💾 MS SQL (с компрессией): 20–40% от исходного размера.

    Для базы 10 ГБ потребуется от 2 до 10 ГБ на диске.

    Как восстановить базу из копии, если обновление прошло неудачно?

    Инструкция зависит от типа базы:

    1. Файловая: Замените файл .1CD в рабочей папке на скопированный, затем выполните Тестирование и исправление в Конфигураторе.
    2. PostgreSQL:
      dropdb -U postgres 1C_Base
      

      createdb -U postgres 1C_Base

      pg_restore -U postgres -d 1C_Base "D:\Backup\1C_Base_20260515.dump"

    3. MS SQL:
      RESTORE DATABASE [1C_Base] FROM DISK = 'D:\Backup\1C_Base_20260515.bak' WITH REPLACE

    После восстановления проверьте права доступа пользователей 1С в Конфигураторе → Администрирование → Пользователи.

    Нужно ли копировать конфигурацию (.cf) отдельно?

    Для файловой базы — да, если вы используете расширения конфигурации (.cfe) или внешние отчёты/обработки. Для клиент-серверного варианта конфигурация хранится в базе данных, поэтому отдельное копирование не требуется.

    Можно ли использовать облачные сервисы для хранения бэкапов?

    Да, но с оговорками:

    • Подходит: Яндекс Диск, Google Drive, 1С:Линк (для небольших баз до 5 ГБ).
    • Не подходит: Облака с ограничением по количеству файлов (например, Dropbox — ограничивает 300 000 файлов на аккаунт).
    • 🔒 Обязательно: Шифруйте бэкапы перед загрузкой (например, с помощью 7-Zip с паролем).

    Для баз >20 ГБ лучше использовать FTP или SFTP на выделенном сервере.