Почему зависает штатное резервное копирование в 1С и как решить эту проблему?

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

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

Выясним причину: почему зависает подготовка к копированию?

Для понимания физики процесса вспомним особенности работы платформы 1С:Предприятие 8.3 в файловом режиме. Чтобы создать резервную копию штатными средствами, системе требуется получить монопольный доступ к файлу базы данных 1Cv8.1CD. Это означает, что в этот момент в базе не должно быть ни одного активного подключения. Для автоматического отключения активных сессий перед обслуживанием базы можно использовать расширение для принудительного завершения работы пользователей.

Однако в файловом варианте выполнение регламентных и фоновых заданий происходит внутри самого клиентского приложения. Когда последний пользователь закрывает программу 1С, запускается специальный скрытый поток процесса 1cv8.exe для выполнения отложенных задач. Визуально программа исчезает с экрана, но сам процесс продолжает висеть в памяти Диспетчера задач Windows. Пока этот процесс активен, монопольный доступ получить невозможно, и процедура резервного копирования зависает в состоянии бесконечного ожидания.

Почему фоновые задания запускаются именно в момент закрытия базы?

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

  1. Обновление новостей: система пытается связаться с серверами 1С для загрузки актуального контента. Если соединение с интернетом нестабильно, этот процесс может зависнуть на длительное время.
  2. Центр мониторинга (телеметрия): сбор и отправка статистики использования конфигурации на серверы разработчиков.
  3. Автоматическое извлечение текста: необходимо для работы полнотекстового поиска. На больших базах данных этот процесс может занимать часы.
  4. Загрузка классификаторов и курсов валют: регламентированные регламентные задания, работающие по расписанию.

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

Решение 1. Отключение неиспользуемых регламентных заданий через интерфейс 1С

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

Разберем по шагам, как это сделать:

  1. Запустим программу 1С под учетной записью с правами администратора.
  2. Перейдем в раздел Администрирование, далее выберем пункт Обслуживание.
  3. В открывшемся окне раскроем группу Регламентные операции и перейдем по ссылке Регламентные и фоновые задания.
  4. В появившемся списке найдем задания, мешающие нормальной работе (например, Обновление новостей, Сбор и отправка статистики).
  5. Дважды кликнем на нужное задание и снимем флажок Включено (Использование — Ложь), после чего нажмем кнопку Записать и закрыть.

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

Решение 2. Запрет выполнения регламентных заданий на рабочих местах пользователей

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

Для этого выполним следующие действия:

  1. Откроем свойства ярлыка 1С на рабочем столе пользователя.
  2. В поле Объект в самый конец строки допишем параметр: /AllowExecuteScheduledJobs -Off.
  3. Нажмем кнопку Применить и запустим программу.

Этот ключ запретит данному конкретному рабочему месту инициировать любые фоновые процессы. Все регламентные задачи будут выполняться только на одном выделенном компьютере (например, на сервере или ПК администратора), где этот параметр не прописан.

Решение 3. Снятие зависшей блокировки и удаление файла 1Cv8.cdn

Если штатный бэкап уже завис или был прерван принудительно через Диспетчер задач, пользователи часто сталкиваются с ошибкой "Ожидание выполнения резервного копирования" при попытке войти в базу. Это происходит потому, что в каталоге базы данных остается файл блокировки.

Для восстановления работоспособности системы проделаем следующее:

  1. Перейдем в папку с файловой базой данных 1С.
  2. Найдем файл с расширением .cdn (обычно это 1Cv8.cdn).
  3. Вручную удалим этот файл. Если файл занят, предварительно снимем все зависшие процессы 1cv8.exe в Диспетчере задач Windows.

Если удалить файл блокировки по какой-то причине не удается, мы можем экстренно запустить 1С через командную строку Windows со специальным параметром обхода защиты:


"C:\Program Files\1cv8\8.3.10.XXXX\bin\1cv8.exe" ENTERPRISE /F "C:\Put_K_Baze" /CРазрешитьРаботуПользователей /UC РезервноеКопирование

Профессиональная альтернатива: переход на внешние скрипты архивации

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

Рассмотрим пример создания простого и надежного командного файла (скрипта .bat), который будет принудительно завершать зависшие сеансы, архивировать базу и отправлять копию в хранилище. Создадим текстовый файл, скопируем в него приведенный ниже код и сохраним с расширением .bat:


@echo off
chcp 1251

echo --- Завершаем работу всех зависших процессов 1С ---
taskkill /f /im 1cv8.exe
taskkill /f /im 1cv8c.exe

echo --- Удаляем временные файлы блокировок, если они остались ---
del /q /f "C:\1C_Bases\Retail\1Cv8.cdn"

echo --- Создаем резервную копию базы данных с помощью 7-Zip ---
"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx5 "D:\Backups\Retail_backup_%date%.zip" "C:\1C_Bases\Retail\1Cv8.1CD"

echo --- Очистка старых архивов (старше 30 дней) ---
forfiles /p "D:\Backups" /s /m *.zip /d -30 /c "cmd /c del @path"

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

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

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

← На главную