Выгрузка базы из 1С (*.bat)

Внимание !
Фирма 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 и пробуем запустить, если что-то не так - исправляем до получения однородной массы желаемого результата.

Рекомендации:

При копировании кода с сайта замените кавычки на стандартные !!!

Все пути, имена, пароли желательно, во избежание проблем - латиницей!

Заметил один косяк - если установлено много версий программы - может произойти откат на предыдущую версию конфигурации.. - рекомендую убрать (удалить версии не совместимые с данной конфигурацией) или же переписывать скрипт для последней версии программы, после каждой установки ...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.