Почему не создается ручной бэкап в 1С 8.3 и как исправить ошибку блокировки базы

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При работе с файловыми базами 1С:Предприятие 8.3 пользователи часто сталкиваются с ситуацией, когда штатный механизм резервного копирования (через пользовательский режим) перестает работать. Процесс запускается, но вместо создания архива программа «зависает» или выдает ошибку о невозможности блокировки базы. В итоге администратору приходится вручную удалять файлы блокировок (*.1cl, *.cdn), чтобы возобновить работу. Проанализируем причины этого поведения и разберем по шагам, как восстановить работоспособность системы.

Механизм работы штатного бэкапа в 1С

Прежде чем переходить к исправлению, выясним причину возникновения проблемы. В управляемых формах 1С (например, в «Бухгалтерии предприятия 3.0») при нажатии кнопки «Создать резервную копию» программа не выполняет копирование самостоятельно. Она инициирует сложную цепочку действий:

  1. Запускается внешняя утилита ibbackup.exe, расположенная в папке bin установленной платформы.
  2. Программа устанавливает монопольную блокировку базы данных, чтобы предотвратить запись данных во время копирования.
  3. Для отображения прогресса и взаимодействия с пользователем используется интерфейс на базе HTA (HTML Application). Это системный компонент Windows, который обрабатывается приложением mshta.exe.

Если хотя бы одно звено этой цепи (особенно визуальный интерфейс HTA) дает сбой, процесс «замирает». Блокировка остается активной, а сама копия не создается.

Решение 1: Восстановление системного компонента mshta.exe

Как показывает практика, основной причиной сбоя является отсутствие или некорректная регистрация компонента mshta.exe в операционной системе. Это может произойти после обновлений Windows, действий антивирусного ПО или чистки реестра. Проанализируем ситуацию и выполним восстановление:

Рассмотрим порядок действий для 64-битных систем Windows (на которых чаще всего работает 32-битная версия 1С):

  1. Проверим наличие файла по пути C:\Windows\SysWOW64\mshta.exe. Если файла там нет, его необходимо скопировать с аналогичной исправной системы или восстановить через средства проверки системных файлов Windows.
  2. Настроим ассоциацию типов файлов. Зайдем в Панель управления -> Программы по умолчанию (или через современные настройки ассоциаций файлов в Windows 10/11).
  3. Найдем расширение .hta и убедимся, что для него выбрана программа Microsoft (R) HTML Application host (это и есть mshta.exe).

Если ассоциации через интерфейс настроек не помогают, воспользуемся редактированием реестра. Рассмотрим, как должна выглядеть строка запуска в ключе HKEY_CLASSES_ROOT\htafile\shell\open\command:


"C:\Windows\SysWOW64\mshta.exe" "%1" {1E460BD7-F828-11D2-84B0-444100000000} {1E460BD7-F828-11D2-84B0-444100000000}

Решение 2: Проверка фоновых процессов и активных сессий

Иногда бэкап не может стартовать из-за того, что в базе остаются «невидимые» пользователи или незавершенные фоновые задания. Даже если интерфейс программы закрыт, процессы могут висеть в памяти. Разберем, на что обратить внимание:

  1. Откроем Диспетчер задач и проверим наличие лишних процессов 1cv8.exe или 1cv8c.exe. Завершим их принудительно.
  2. Проанализируем работу регламентных заданий. Перейдем в раздел Администрирование -> Обслуживание -> Регламентные и фоновые задания. Несмотря на то, что автор темы их отключал, важно убедиться, что ни одно задание не находится в статусе «Выполняется».
  3. Если база файловая, зайдем в папку с информационной базой и вручную удалим файлы 1cv8.1cl (файл блокировки) и 1cv8.cdn, если они существуют в момент, когда в программе никого нет.

Решение 3: Особенности платформы 8.3.27 и права доступа

В новых версиях платформы (8.3.27 и выше) 1С стала более требовательна к безопасности. Посмотрим на возможные ограничения со стороны ОС:

Решение 4: Альтернативный способ — использование скриптов (Best Practice)

Опытные системные администраторы часто отказываются от встроенного в 1С механизма «бэкапа одной кнопкой» в пользу внешних скриптов. Это надежнее, так как исключает зависимость от капризного компонента mshta.exe. Рассмотрим создание простого cmd-файла (батника) для резервного копирования файловой базы:


@echo off
set "base_path=C:\1C_Bases\Accounting"
set "backup_path=D:\Backups\1C"
set "timestamp=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%"
set "timestamp=%timestamp: =0%"

:: Убиваем процессы 1С для чистого копирования (опционально)
taskkill /f /im 1cv8.exe /im 1cv8c.exe

:: Копируем основной файл базы данных
copy /y "%base_path%\1cv8.cd" "%backup_path%\backup_%timestamp%.cd"

:: Сжимаем архиватором (например, 7-Zip), если установлен
"C:\Program Files\7-Zip\7z.exe" a "%backup_path%\backup_%timestamp%.7z" "%backup_path%\backup_%timestamp%.cd"
del "%backup_path%\backup_%timestamp%.cd"

echo Резервное копирование завершено!
pause

Преимущество такого подхода в том, что вы можете добавить этот скрипт в Планировщик задач Windows и выполнять копирование в ночное время без участия пользователя.

Резюме

Подводя итог, если в вашей 1С перестал работать ручной бэкап, первым делом проверьте наличие mshta.exe в папке SysWOW64 и настройки ассоциаций .hta. Если это не помогло, проанализируйте активные фоновые процессы. Однако для обеспечения максимальной надежности мы рекомендуем настроить внешнее копирование файла 1cv8.cd средствами операционной системы или специализированного ПО для резервного копирования.

← На главную