В процессе командной разработки на платформе 1С хранилище конфигурации становится центральным элементом, от которого зависит работа всей команды. Ситуация, когда хранилище оказывается поврежденным, может парализовать разработку. Особенно критично, если проблема обнаруживается поздно, и все последние резервные копии также содержат ошибку. Рассмотрим, как настроить автоматическую проверку бэкапов хранилища, чтобы избежать подобных катастроф.
Прежде чем перейти к автоматизации, разберемся в причинах проблемы и самых простых способах диагностики.
Архитектура хранилища и роль сервера. Важно понимать, что хранилище конфигурации — это всегда файловая база данных 1С с расширением .1CD. Доступ к ней может осуществляться двумя способами:
Быстрая проверка утилитой chdbfl.exe. Если у вас есть подозрение на повреждение файла .1CD, можно воспользоваться стандартной утилитой для тестирования и исправления файловых баз 1С.
chdbfl.exe в каталоге bin установленной платформы 1С (например, C:\Program Files\1cv8\8.3.20.1234\bin\).Важный момент: утилита chdbfl.exe проверяет физическую целостность структуры файла. Она может не обнаружить логические ошибки, которые проявляются только при попытке получить данные определенной версии или сравнить объекты. Как показала практика, даже если утилита не находит ошибок, хранилище все равно может быть неработоспособным.
Самый надежный способ убедиться в работоспособности бэкапа — это попытаться выполнить с ним реальную операцию. Этот процесс можно и нужно автоматизировать с помощью пакетного режима запуска 1С.
Разработаем пошаговый план для скрипта (например, на PowerShell или в виде .bat/.cmd файла), который будет запускаться по расписанию после создания резервной копии.
.1CD извлекается из архива в эту временную папку.0, операция прошла успешно, и бэкап считается рабочим. Любой другой код или появление сообщений об ошибках в лог-файле свидетельствует о проблеме.Рассмотрим, как реализовать ключевые шаги с помощью параметров запуска 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
Разберем параметры этой команды:
ENTERPRISE: режим запуска "1С:Предприятие". Можно использовать и DESIGNER (Конфигуратор)./F"...": путь к нашей временной информационной базе./ConfigurationRepositoryAddress "...": путь к папке с развернутым файлом хранилища./ConfigurationRepositoryUpdate -version 123: команда на обновление конфигурации ИБ до версии хранилища с номером 123. Можно выбрать любую достаточно старую версию, чтобы проверить глубину истории, или использовать ключ -latest для получения последней.-force: ключ, который позволяет выполнить обновление без интерактивных вопросов./Out "..." -NoTruncate: указывает, куда записывать служебные сообщения. Очень важен для анализа результатов.После выполнения этой команды ваш скрипт должен проверить код завершения процесса 1С и/или содержимое файла log.txt на наличие строк со словом "Ошибка".
Автоматическая проверка бэкапов — это отличная мера, но для максимальной надежности стоит внедрить еще несколько практик.
Не стоит полагаться исключительно на хранилище. Настройте автоматическую задачу (например, с помощью планировщика Windows и скрипта OneScript), которая будет каждый день выгружать основную конфигурацию разработки в файл .cf. Этот файл является "золотой копией" вашей работы и не зависит от целостности хранилища. В случае полной потери хранилища вы сможете развернуть конфигурацию из .cf-файла, создать новое хранилище и продолжить работу с минимальными потерями.
Современный подход к разработке на 1С предполагает интеграцию с системами контроля версий, такими как Git. С помощью специальных инструментов (1C:EDT, OneScript-библиотеки) можно настроить выгрузку исходных кодов конфигурации из хранилища 1С в текстовые файлы и их последующую отправку (коммит) в Git-репозиторий. Это дает колоссальные преимущества:
Внедрение многоуровневой системы защиты, включающей Сервер хранилища, автоматическую проверку бэкапов, регулярные выгрузки в .cf и интеграцию с Git, позволит вам быть уверенными в сохранности результатов работы вашей команды разработчиков.