1C_SafeArchive v1.3 – безопасное резервное копирование файловых баз 1С

Как известно файловые базы 1С очень «ламучие» и должны сопровождаться частым бэкапом.

Здесь же и таится опасность, о которой администратор 1С может и не подозревать, конечно, пока в очередном «аврале» не попробует выполнить восстановление ИБ.

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

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

Да, что говорить, «боль» администрирования файловых 1С знакома всем )

bad backup

Часто базы оказываются сломанными, и даже «Тестирование и исправление» порой не дает нужного результата.

Конечно лучшее, что можно здесь предпринять это правильный  подход к созданию самого бэкапа в «файле»!

Собственно, пользоваться той кучей скриптов, которыми мы обычно снимаем копии, мягко говоря, не совсем удобно, да и не безопасно.

А программные аналоги стоят немало, и также не работают как от них ожидаешь.

 

Так я в 2024 – том сел снова писать скрипт ), который будет делать прозрачно и безопасно то, что от него требуется, а именно корректный бэкап файловой базы 1С.

1C_SafeArchive – скрипт для создания безопасной резервной копии файловой базы 1С.

1C_SAFEARCHIVE V1.3

1C_SAFEARCHIVE V1.3

 

Скачать файлы можно только после регистрации


 

Работать со скриптом очень просто, достаточно заполнить всего пару основных параметров, таких как расположения базы, куда копировать и пользователя для штатного завершения сеансов 1С – все!

Вкратце, о работе крипта:

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

Также меня всегда бесили битые копии, которые не редко создают как программы, так и скрипты, здесь это исключено, разве что кто-то грубо прервёт работу скрипта )

 

Описание работы скрипта:

  1. Настройки скрипта:
    • Определены основные параметры, такие как расположение базы данных 1С (base_location), имя пользователя в 1С (user_name), пароль пользователя (user_pass), расположение платформы 1С (platforma_1C), расположение утилиты 7-Zip (a7z), и т.д.
  2. Получение текущей даты и времени:
    • Скрипт использует PowerShell для получения текущей даты и времени, сохраняя их в переменной current_datetime.
  3. Очистка лога:
    • Предыдущий лог очищается перед выполнением скрипта.
  4. Завершение процессов 1С:
    • Если опция taskkill_on установлена в “yes”, скрипт пытается завершить процессы 1С командой taskkill перед выполнением резервного копирования.
    • Если опция perform_taskkill также установлена в “yes”, то только после успешного штатного завершения процессов 1С командой “%platforma_1C%” ENTERPRISE /F%base_location% /N”%user_name%” /P”%user_pass%” /WA- /CЗавершитьРаботуПользователей /UCКодРазрешения /DisableStartupMessages
      , скрипт принудительно завершает указанный процесс (process_mask) с использованием taskkill.
  5. Блокировка входа в базу 1С:
    • Вход в базу 1С блокируется, и выполняется штатное завершение сеансов 1С.
    • “%platforma_1C%” ENTERPRISE /F%base_location% /N”%user_name%” /P”%user_pass%” /WA- /CЗавершитьРаботуПользователей /UCКодРазрешения /DisableStartupMessages 
  6. Создание бэкапа:
    • Скрипт использует 7-Zip для создания архива (бэкапа) базы данных 1С в указанное место (kuda) с именем, включающим текущую дату и время.
    • for /r “%base_location%” %%i in (%file_filter%) do (
      “%a7z%” a “%kuda%\%backup_name%_%current_datetime%.7z” “%%i” >> “%~dp0full_log.txt” 2>&1
      )
  7. Удаление старых бэкапов:
    • Скрипт удаляет старые бэкапы, оставляя только заданное количество (backup_old).
  8. Принудительное завершение процессов 1С:
    • Если опция perform_taskkill установлена в “yes” и процессы 1С успешно завершены командой taskkill, скрипт принудительно завершает  процессы 1С что могли остаться, например “Конфигуратор” у разработчика 1С (process_mask) с использованием taskkill.
  9. Разрешение входа пользователям:
    • Если ранее был заблокирован вход в базу 1С, скрипт разрешает вход пользователям.
  10. Логирование:
    • Весь процесс логируется в файл txt, включая информацию о завершении процессов, создании бэкапа и другие шаги. Лог файл содержит дату и время для каждого события.
  11. Обработка ошибок:
    • В случае ошибки при создании бэкапа, скрипт удаляет неудачный бэкап и записывает соответствующую информацию в лог.
  12. Завершение скрипта:
    • Скрипт завершает работу, записывая соответствующую информацию в лог.

 

Без проблем батник будет работать в планировщике windows, и на автомате создавать резервные копии ваших файловых баз 1С.

 

ВАЖНО! Если работа скрипта завершилась аварийно, удалите лишние файлы в каталоге ИБ, чтоб разблокировать доступ к ИБ (Достаточно удалить 1Cv8.cdn) из папки (или все кроме 1Cv8.1CD).

2024-02-28_22-31-04

ВИДЕО КАК НАСТРАИВАТЬ СКРИПТ:

Что нового на версии 1.1:

  • Более простая настройка скрипта
  • Бэкап выполняется путем копирования только файла базы 1Cv8.1CD

Что нового на версии 1.2:

  • Добавлена возможность корректного завершения сеансов 1С на веб сервере Apache

Что нового на версии 1.3:

  • Путь к лог файлу можно указать в переменной

Пишите в комментарии, что используете вы для резервного копирования баз 1С, конечно, буду рад предложениям по улучшению работы скрипта!

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>

Бот Odin в греппе https://t.me/odineski

Не нашли что искали?

Наш бот "Одинесник" найдёт бесплатно! Пишите ему в группе: телеграм

45 комментариев

Оставьте ответ

Нужна помощь ?