Как автоматически проверять работоспособность хранилища конфигураций 1С из резервной копии?

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

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

Причины повреждения и базовые методы проверки

Прежде чем перейти к автоматизации, разберемся в причинах проблемы и самых простых способах диагностики.

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

  1. Прямой доступ к файлу по сети (file-share). Этот способ крайне не рекомендуется для командной работы. Любой сбой сети, отключение электричества у разработчика в момент записи в хранилище может привести к повреждению файла данных.
  2. Через Сервер хранилища конфигураций (Configuration Repository Server). Это специальная служба, которая выступает посредником между разработчиками и файлом хранилища. Она корректно обрабатывает одновременные подключения, управляет транзакциями и значительно снижает риск повреждения данных при сбоях у клиентов. Использование сервера хранилища — это стандарт де-факто для надежной групповой разработки.

Быстрая проверка утилитой chdbfl.exe. Если у вас есть подозрение на повреждение файла .1CD, можно воспользоваться стандартной утилитой для тестирования и исправления файловых баз 1С.

  1. Обязательно сделайте копию файла хранилища перед любыми манипуляциями.
  2. Найдите исполняемый файл chdbfl.exe в каталоге bin установленной платформы 1С (например, C:\Program Files\1cv8\8.3.20.1234\bin\).
  3. Запустите утилиту, укажите путь к копии файла хранилища.
  4. Установите флажок "Исправлять обнаруженные ошибки" и нажмите "Выполнить".

Важный момент: утилита chdbfl.exe проверяет физическую целостность структуры файла. Она может не обнаружить логические ошибки, которые проявляются только при попытке получить данные определенной версии или сравнить объекты. Как показала практика, даже если утилита не находит ошибок, хранилище все равно может быть неработоспособным.

Разработка скрипта для автоматической проверки

Самый надежный способ убедиться в работоспособности бэкапа — это попытаться выполнить с ним реальную операцию. Этот процесс можно и нужно автоматизировать с помощью пакетного режима запуска 1С.

Алгоритм автоматической проверки

Разработаем пошаговый план для скрипта (например, на PowerShell или в виде .bat/.cmd файла), который будет запускаться по расписанию после создания резервной копии.

  1. Подготовка окружения. Скрипт находит свежий архив с бэкапом хранилища и создает временную рабочую папку.
  2. Развертывание бэкапа. Файл хранилища .1CD извлекается из архива в эту временную папку.
  3. Создание тестовой базы. Во временной папке создается новая пустая информационная база 1С.
  4. Подключение к хранилищу. С помощью командной строки пустая база подключается к развернутому из бэкапа хранилищу.
  5. Выполнение проверочной операции. Запускается процесс 1С в пакетном режиме, который выполняет операцию, активно использующую хранилище. Например, обновление конфигурации до последней или какой-то конкретной старой версии. Это самая важная часть проверки.
  6. Анализ результата. Скрипт анализирует код возврата процесса 1С. Если код равен 0, операция прошла успешно, и бэкап считается рабочим. Любой другой код или появление сообщений об ошибках в лог-файле свидетельствует о проблеме.
  7. Оповещение. Если проверка не пройдена, скрипт должен немедленно отправить уведомление системному администратору или ответственному лицу (например, по email).
  8. Очистка. В конце работы скрипт удаляет временную папку со всеми созданными файлами.

Ключи командной строки для автоматизации

Рассмотрим, как реализовать ключевые шаги с помощью параметров запуска 1С. Предположим, что путь к платформе — "C:\Program Files\1cv8\8.3.20.1234\bin\1cv8.exe".

Шаг 3: Создание пустой информационной базы

Для этого используется команда CREATEINFOBASE.


"C:\Program Files\1cv8\8.3.20.1234\bin\1cv8.exe" CREATEINFOBASE "File=C:\Temp\TestCheck\TestDB"

Эта команда создаст пустую файловую базу в указанном каталоге.

Шаг 5: Обновление из хранилища для проверки

Это сердце нашего скрипта. Мы запускаем 1С в режиме предприятия и даем команду на обновление из хранилища. Если хранилище "битое", эта операция с большой вероятностью завершится ошибкой.


"C:\Program Files\1cv8\8.3.20.1234\bin\1cv8.exe" ENTERPRISE /F"C:\Temp\TestCheck\TestDB" ^
/ConfigurationRepositoryAddress "C:\Temp\TestCheck\RepoBackup" ^
/ConfigurationRepositoryUpdate -version 123 -force ^
/Out "C:\Temp\TestCheck\log.txt" -NoTruncate

Разберем параметры этой команды:

После выполнения этой команды ваш скрипт должен проверить код завершения процесса 1С и/или содержимое файла log.txt на наличие строк со словом "Ошибка".

Дополнительные меры защиты данных разработки

Автоматическая проверка бэкапов — это отличная мера, но для максимальной надежности стоит внедрить еще несколько практик.

Регулярное сохранение конфигурации в файлы (.cf)

Не стоит полагаться исключительно на хранилище. Настройте автоматическую задачу (например, с помощью планировщика Windows и скрипта OneScript), которая будет каждый день выгружать основную конфигурацию разработки в файл .cf. Этот файл является "золотой копией" вашей работы и не зависит от целостности хранилища. В случае полной потери хранилища вы сможете развернуть конфигурацию из .cf-файла, создать новое хранилище и продолжить работу с минимальными потерями.

Использование внешних систем контроля версий (например, Git)

Современный подход к разработке на 1С предполагает интеграцию с системами контроля версий, такими как Git. С помощью специальных инструментов (1C:EDT, OneScript-библиотеки) можно настроить выгрузку исходных кодов конфигурации из хранилища 1С в текстовые файлы и их последующую отправку (коммит) в Git-репозиторий. Это дает колоссальные преимущества:

Внедрение многоуровневой системы защиты, включающей Сервер хранилища, автоматическую проверку бэкапов, регулярные выгрузки в .cf и интеграцию с Git, позволит вам быть уверенными в сохранности результатов работы вашей команды разработчиков.

← На главную