Постоянно вижу обсуждения о способах архивации баз 1С. Люди и обработки какие-то придумывают, и исходный код изменяют. В свое время тоже был крайне озадачен этим вопросом. Решение лежало на поверхности. Не претендую на оригинальность, но хотелось бы напомнить о самом простом способе архивации баз средствами командной строки 1С и планировщика Windows. Данный метод успешно работает в нашей организации уже более года с 8-ю отдельными базами 1С на системе Windows Server 2003.
При всей кажущейся сложности настройка не занимает больше 10 минут.
Итак, настройка в три шага:
1. Создадим два исполняемых файла *.bat. Первый файл назовем, например, "finish1C.bat", второй "share1C.bat". Соответственно первый файл будет содержать команды для запрета доступа к базам на время архивации, а во втором файле будут команды на открытие доступа после выполнения архивации.
Текст первого файла: START /D"C:\Program Files\1cv81\bin\" 1cv8.exe ENTERPRISE /F"<X:\Trade>" /N"<ИМЯ_ПОЛЬЗОВАТЕЛЯ>" /P"<ПАРОЛЬ>" /CЗавершитьРаботуПользователей
где <X:\Trade> - полный путь к каталогу базы 1С (без кавычек <>)
<ИМЯ_ПОЛЬЗОВАТЕЛЯ> - имя пользователя с административными правами (без кавычек <>)
<ПАРОЛЬ> - пароль этого пользователя (без кавычек <>)
Если система у вас находится не на диске С, или оболочка 1С установлена не в папку по умолчанию, замените путь "C:\Program Files\1cv81\bin\" на соответствующий.
Текст второго файла: идентичен первому. Только вместо /CЗавершитьРаботуПользователей нужно написать /UCПакетноеОбновлениеКонфигурацииИБ /CРазрешитьРаботуПользователей
Естественно, если у вас несколько рабочих баз 1С, то для каждой базы нужно прописать отдельную строку в первом и втором файлах. У меня в каждом файле по 8 строк.
2. Настраиваем WinRAR. Собственно сам процесс архивации. Я пользуюсь WinRAR (лицензия) поскольку ценю его за простоту, надежность и функциональность. Поэтому текст командного файла "arhiv1C.bat" содержит следующую строку:
rar a -sfx -agYY-MM-DD X:\Arhiv\Trade_ X:\Trade
думаю, разобраться с параметрами WinRAR не составит труда. Тут все дело, в результате, который вы хотите получить. В данном случае архивируется вся папка с базой и создается архив вида "Trade_10-01-05.exe", т.е самораспаковывающийся архив с указанием даты архива. Мне этого достаточно, вы можете настроить по своим потребностям, вплоть до задания пароля на архив.
3. Настраиваем планировщик Windows: создаем три задачи планировщика – первую на исполнение файла "finish1C.bat". Настроим ее на запуск в час ночи. Незакрытые сеансы 1С отключатся максимум через 5 минут. Поэтому вторую задачу на выполнение файла "arhiv1С.bat" ставим на время 1:10 (дадим 10 минут на всякий случай). Третью задачу на запуск файла "share1C.bat" ставим с отставанием по времени, достаточным для выполнения архивации. Я рассчитываю время запуска третей задачи раз в полгода по принципу <время на архивацию> * 2.
Вот и все. Не забудьте установить запуск задач от имени администратора. Повторяю, что данный способ безотказно работает уже более года, легко настраивается, легко переносится на любой компьютер и легко применяется к разным базам.
Один нюанс: для баз "1С:Управление торговлей" используются вышеописанные ключи в файле "share1C.bat". Для баз "1С:Бухгалтерия Предприятия" и "1С:Зарплата и Управление персоналом" вместо /UCПакетноеОбновлениеКонфигурацииИБ /CРазрешитьРаботуПользователей нужно использовать /CРазрешитьРаботуПользователей /UCКодРазрешения
Для баз, работающих круглосуточно, можно объединить состав файлов "arhiv.bat" и "share1C.bat". Например, ввести поочередно команды создания архива и открытия доступа к базе. Тогда и не нужно будет заморачиваться на на измерение времени архивации. Базы станут доступны сразу после создания архива.
Надеюсь данный материал поможет кому-то.