Внимание !
Фирма 1С рекомендует делать резервные копии для:
1. файловой версии БД — копирование файла 1Cv8.1CD
2. серверной БД — средствами используемого SQL-сервера.
Итак, для 1Сv8:
Создаём *.bat файл с вашим названием, и загоняем приблизительно такой текст:
cd ″C:\Program Files (x86)\1cv8\common″
start 1cestart.exe CONFIG /F D:\1C\IN /NRobot /Ppass /DumpIB R:\IN\kino_i_nemcy.dt
Далее, в зависимости от версии вашей операционной системы, и версии программы подставляем свои пути:
C:\Program Files (x86) — зависит от разрядности системы
1cv8 — от версии установленной программы 1С
common — если нет желания каждый раз править скрипт после обновления дистрибутива 1С (если же есть такое желание, можно прописать пути до конкретных версий например:
″C:\Program Files (x86)\1cv8\8.3.5.1186\bin\1cv8.exe″ )
CONFIG — запуск в режиме конфигуратора
/F D:\1C\IN — файловая версия и путь до базы
(/S serv_1C\base_1C — SQL-версия и путь к ней (сервер\база)
/NRobot — имя пользователя «Robot»
/Ppass — пароль «pass» (если пользователь без пароля — не пишем этот параметр вообще — т.е. /P — не нужен)
/DumpIB — команда выгрузить ИБ
R:\IN\ — путь куда выгружаем
kino_i_nemcy.dt — как обзываем файл выгрузки (можно вставить %date%)
Пробуем запускать при открытом диспетчере задач (вы не увидите запуска программы на рабочем столе), по завершении процесса 1cv8.ехе — смотрим в папку выгрузки, если есть наш файл — лучше всего проверить — это создать новую базу, и загрузить в неё наш *.dt-файл. Если после этого новая база запускается и работает без проблем — можете пускать в работу ваш скрипт.
Для своей базы написал следующее (предварительно выгнав пользователей):
CHANGE LOGON /DISABLE — запрещаем новые терминальные подключения
timeout /t 2
start C:\Progra~2\1cv8\common\1cestart.exe CONFIG /S SERV_1C\TSQL /NRobot /DumpIB \\COMP\D$\ARH\1Cv8_%DATE:~0,2%_%DATE:~3,2%_%DATE:~8,2%g.dt — Robot у меня без пароля, COMP — любой компьютер с прямым доступом админу, название файла будет вроде такого: 1Cv8_21_02_19g.dt
timeout /t 2
:wait — тут ожидаем когда закончится выгрузка
TASKLIST | find ″1cv8.exe″ >nul
if %errorlevel%==0 goto wait
timeout /t 2
CHANGE LOGON /ENABLE — разрешить подключения
Забыл написать про грабли на серверах 2008R2 и выше (сам же на них снова натктнулся) — запуск файла bat/cmd отрабатывает как надо, а через планировщик не работает:
Добавив в задания данный bat/cmd-файл и попробовав запустить — получаем висящий в диспетчере задач cmd.exe, но реально ни чего не происходит, т.е. 1cv8.exe не запускается, соответственно выгрузки тоже нет.
Решение:
Входим под локальным администратором, меняем в файле пути вида ″C:\Program Files (x86)\1cv…..″ на ″C:\Progra~2\1cv….″ , т.е. убираем таким образом все пробелы в путях…
Если есть запуск цепной реакции (вызовы других скриптов из этого файла) — прописываем каждый вызов вышеуказанным способом, т.е — с полными путями.
Запускаем cmd от админа, переходим cd C:\WINDOWS\SYSTEM32, копируем строку запуска из планировщика задач в cmd и пробуем запустить, если что-то не так — исправляем до получения однородной массы желаемого результата.
Рекомендации:
При копировании кода с сайта замените кавычки на стандартные !!!
Все пути, имена, пароли желательно, во избежание проблем — латиницей!
Заметил один косяк — если установлено много версий программы — может произойти откат на предыдущую версию конфигурации.. — рекомендую убрать (удалить версии не совместимые с данной конфигурацией) или же переписывать скрипт для последней версии программы, после каждой установки …