Имя: Пароль:
1C
1С v8
BATник для 1с
0 Labrador
 
03.04.13
08:10
В батнике блокируется база, затем выгружается, затем архивируется. По отдельности все работает замечательно. Проблема в том что бэкап создается одновременно с блокировкой. Пока задача решена с помощью Sleep'а(очень надеюсь что временно).

Вопрос, как заставить ждать командную строку выполнения Бэкапа? Заранее благодарен =)
1 ZanderZ
 
03.04.13
08:10
пакажи код
2 Крутил_
Вертел_1С
 
03.04.13
08:12
Циклом ?
3 Крутил_
Вертел_1С
 
03.04.13
08:13
Не знаю что за функция делает бэкап, но она навернео что то возвращает делать цикл While do
4 Галахад
 
гуру
03.04.13
08:14
Просто копируй CD файл и архивируй. Не надо выгружать.
5 Labrador
 
03.04.13
08:15
Тэкс, чур тапками не закидывать...


chcp 1251

MD C:\Backup2
MD c:\Backup1C


"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\DemoAcc" /N"Абдулов (директор)" /WA- /AU- /DisableStartupMessages /C"ЗавершитьРаботуПользователей"

Sleep 60

"C:\Program Files\1cv82\common\1cestart.exe" DESIGNER  /F"C:\DemoAcc" /N"Абдулов (директор)" /DumpIB "C:\BackUp2\Buh1-%date:~-10%.dt" /UC"КодРазрешения"

Sleep 180

"C:\Program Files\WinRAR\WinRAR.exe" A  c:\Backup1C\Buh1-%DATE%.RAR "C:\BackUp2\Buh1-%date:~-10%.dt"

del C:\BackUp2\Buh1-%date:~-10%.dt

"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\DemoAcc" /C"РазрешитьРаботуПользователей" /UC"КодРазрешения"

Sleep 180



"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\DemoAcc2" /N"Абдулов (директор)" /WA- /AU- /DisableStartupMessages /C"ЗавершитьРаботуПользователей"

Sleep 60

"C:\Program Files\1cv82\common\1cestart.exe" DESIGNER  /F"C:\DemoAcc2" /N"Абдулов (директор)"  /DumpIB "C:\BackUp2\Buh2-%date:~-10%.dt" /UC"КодРазрешения"

Sleep 180

"C:\Program Files\WinRAR\WinRAR.exe" A  c:\Backup1C\Buh2-%DATE%.RAR "C:\BackUp2\Buh2-%date:~-10%.dt"

del C:\BackUp2\Buh2-%date:~-10%.dt

"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\DemoAcc2" /C"РазрешитьРаботуПользователей" /UC"КодРазрешения"

Sleep 180



"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\DemoAcc3" /N"Абдулов (директор)" /WA- /AU- /DisableStartupMessages /C"ЗавершитьРаботуПользователей"

Sleep 60

"C:\Program Files\1cv82\common\1cestart.exe" DESIGNER  /F"C:\DemoAcc3" /N"Абдулов (директор)"  /DumpIB "C:\BackUp2\ZUP-%date:~-10%.dt" /UC"КодРазрешения"

Sleep 180

"C:\Program Files\WinRAR\WinRAR.exe" A  c:\Backup1C\ZUP-%DATE%.RAR "C:\BackUp2\ZUP-%date:~-10%.dt"

del C:\BackUp2\ZUP-%date:~-10%.dt

"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\DemoAcc3" /C"РазрешитьРаботуПользователей" /UC"КодРазрешения"


exit
6 Labrador
 
03.04.13
08:16
(4) Это указание руководства, хотят так сделать.
7 makfromkz
 
03.04.13
08:16
если не подводит память то строчка:
call имя_батника_сБэкапом

в батнике будет ждать окончания бэкапа
8 Галахад
 
гуру
03.04.13
08:17
(6) Ну, если им 1С не указ...
9 Labrador
 
03.04.13
08:18
нет, к сожалению даже start /b не ждет =( Когда база выгружается, процесс выполняется фоново, а командная строка дальше себе делается=)
10 Крутил_
Вертел_1С
 
03.04.13
08:19
Labrador
Скачай Effector saver 3(?)

У нас стоит всё идеально делает, бэкапы по расписанию, в любое место и в любом количестве.
11 ZanderZ
 
03.04.13
08:19
(5) стартер  - это отдельная программа которая ищет нужную версию и запускает. соответственно она запустила и отработала.
Используй exe конкретной версии
12 Крутил_
Вертел_1С
 
03.04.13
08:19
(10) + там русский язык и беспл. версия есть
13 PiterPrg
 
03.04.13
08:20
Я не понял вопрос. Нужно подождать пока отработает одна программа, а затем запустить другую?
если так, тогда

start /wait [Программа.exe]
14 ZanderZ
 
03.04.13
08:20
(13) не спасет если стартер запускать
15 Feunoir
 
03.04.13
08:21
(9) Запускай не 1cestart, а конкретный релиз:
"D:\Program Files (x86)\1cv82\8.2.18.61\bin\1cv8.exe"
16 Labrador
 
03.04.13
08:23
(10) Спасибо, посмотрю! В следующий раз попробую уговорить на неё.

(11), (13), (15) И вам большое спасибо, сейчас попробую так =)
17 PiterPrg
 
03.04.13
08:23
А вообще (10) - самое то. Сам юзаю очень доволен
18 Cyberhawk
 
03.04.13
08:27
Хм, бесплатная версия Effector saver не умеет выгонять пользователей. Тогда вопрос к тем, кто ею пользуется: вы запускаете ее в связке с ручным выгоном пользователей (т.е. в батнике) или платную версию используете?
19 DasTPID
 
03.04.13
08:57
У меня копия выгружается в dt ночью. Пользователи, случайно оставшиеся в системе, выходят сами:

Процедура АНеПораЛиОтдохнуть() Экспорт
   Если Час(ТекущаяДата()) = 2 Тогда
       ЗавершитьРаботуСистемы(ложь);
   КонецЕсли    
КонецПроцедуры



Процедура ПриНачалеРаботыСистемы()
....
ПодключитьОбработчикОжидания("АНеПораЛиОтдохнуть",600, Ложь);
КонецПроцедуры

В 2:30 можно штатными средствами ОС запустить выгрузку
20 kosts
 
03.04.13
09:13
(0) Все не читал. Не нужно блокировать базу. Отрезаешь все сеансы. Выгружаешь базу. Архивировать (сжимать) не нужно, т.к. dt уже и так сжат.
21 Крутил_
Вертел_1С
 
03.04.13
09:26
(28) не выгоняю))) копирует файл из папки 1CD и норм
22 Крутил_
Вертел_1С
 
03.04.13
09:27
(28) +(21) просто бэкап делается ночью когда ни кто не работает точно и не должен
23 kosts
 
03.04.13
09:30
(20)+ Хотя для файлового несколько иначе может быть.
Для серверного вот такой вариант хорошо подходит:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=507764&msg=7102328
24 Labrador
 
03.04.13
09:40
(19) А куда это процедуру впихивать? Просто в 1с совсем недавно =) Идея мне нравится!

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

(21) ...выгрузка тоже =)

(23) Спасибо, почитаю =)
25 Cyberhawk
 
03.04.13
09:50
(24) впихивай туда, где уже лежит процедура "ПриНачалеРаботыСистемы"
26 lucifer
 
03.04.13
09:51
(0) тут выход по моему очевиден, отказаться от батников )
27 Labrador
 
03.04.13
10:03
(26) Отказаться к сожалению не могу. Решение вот такое получилось, все вроде довольны. Единственный минус - жесткая привязка. Чуть позже прикручу параметры.

chcp 1251
echo off

MD C:\Backup2
MD c:\Backup1C

cls
echo Opening Accounting base 1
echo Disable users...
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe ENTERPRISE /F"C:\DemoAcc" /N"Абдулов (директор)" /WA- /AU- /DisableStartupMessages /C"ЗавершитьРаботуПользователей"

echo Backup database...
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe DESIGNER  /F"C:\DemoAcc" /N"Абдулов (директор)" /DumpIB "C:\BackUp2\Buh1-%date:~-10%.dt" /UC"КодРазрешения"

echo Achivation...
"C:\Program Files\WinRAR\WinRAR.exe" A  c:\Backup1C\Buh1-%DATE%.RAR "C:\BackUp2\Buh1-%date:~-10%.dt"

echo Removing temporary files...
del C:\BackUp2\Buh1-%date:~-10%.dt

echo Enable users
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe ENTERPRISE /F"C:\DemoAcc" /N"Абдулов (директор)" /C"РазрешитьРаботуПользователей" /UC"КодРазрешения"

echo Archive in C:\Backup1C\

echo Accounting base 1 successfully saved
echo.


echo Opening Accounting base 2
echo Disable users...
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe ENTERPRISE /F"C:\DemoAcc2" /N"Абдулов (директор)" /WA- /AU- /DisableStartupMessages /C"ЗавершитьРаботуПользователей"

echo Backup database...
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe DESIGNER  /F"C:\DemoAcc2" /N"Абдулов (директор)"  /DumpIB "C:\BackUp2\Buh2-%date:~-10%.dt" /UC"КодРазрешения"

echo Archivation...
"C:\Program Files\WinRAR\WinRAR.exe" A  c:\Backup1C\Buh2-%DATE%.RAR "C:\BackUp2\Buh2-%date:~-10%.dt"

echo Removing temporary files...
del C:\BackUp2\Buh2-%date:~-10%.dt

echo Enable users
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe ENTERPRISE /F"C:\DemoAcc2" /N"Абдулов (директор)" /C"РазрешитьРаботуПользователей" /UC"КодРазрешения"
echo "Archive in C:\Backup1C\"

echo Accounting base 2 successfully saved
echo.


echo Opening HRM base
echo Disable users...
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe ENTERPRISE /F"C:\DemoAcc3" /N"Абдулов (директор)" /WA- /AU- /DisableStartupMessages /C"ЗавершитьРаботуПользователей"

echo Backup database...
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe DESIGNER  /F"C:\DemoAcc3" /N"Абдулов (директор)"  /DumpIB "C:\BackUp2\ZUP-%date:~-10%.dt" /UC"КодРазрешения"

echo Archivation...
"C:\Program Files\WinRAR\WinRAR.exe" A  c:\Backup1C\ZUP-%DATE%.RAR "C:\BackUp2\ZUP-%date:~-10%.dt"

echo Removing temporary files...
del C:\BackUp2\ZUP-%date:~-10%.dt

echo Enable users
start /wait /d"C:\Program Files\1cv82\8.2.17.143\bin\"  1cv8.exe ENTERPRISE /F"C:\DemoAcc3" /N"Абдулов (директор)" /C"РазрешитьРаботуПользователей" /UC"КодРазрешения"

echo Archive in C:\Backup1C\
echo HRM base successfully saved

exit
28 Labrador
 
03.04.13
10:04
ойойой... ну вобщем это все один сплошной .bat...
29 Labrador
 
03.04.13
16:02
+(27) Если кому интересно. Когда запущен только один экземпляр Предприятия(Запущенный через Батник), база блокируется довольно быстро. Если присутствуют другие подключения, то времени на их закрытие тратится довольно много(в моем случае 7-8 минут). Так что если будете пользоваться не удивляйтесь что система может "задуматься".

Всем спасибо за помощь, если кому-нибудь будет интересно, чуть позже закину вариант с параметрами =)