|
v7: Как правильно написать батник запуска 1с77 ? | ☑ | ||
---|---|---|---|---|
0
Z_Z
23.09.11
✎
11:24
|
Добрый день. Как правильно написать батник запуска 1с77, чтоб если база занята, то процесс не вис и вырубался.?
START /wait "Obmen" "C:\Program Files\1Cv77\BIN\1cv7s.exe" ENTERPRISE /DE:\BASE1C2\ /NFtp /Pftp /m |
|||
1
Azverin
23.09.11
✎
11:26
|
проверку окончания записи в txt я делал так, что если файл занят, то его нельзя скопировать. выгрузка звершилась - файл копирнулся, грузиться 1С-ка... как-то же можно прикрутить?))
|
|||
2
Z_Z
23.09.11
✎
11:27
|
Если б знал как, я бы сам прикрутил и сюда бы не писал))
|
|||
3
Sk0rp
23.09.11
✎
11:32
|
Я просто всех вырубаю ночью перед бакапом.
|
|||
4
Azverin
23.09.11
✎
11:33
|
(0) в режиме ENTERPRISE чем база занята, что не заходит?
|
|||
5
Troodon
23.09.11
✎
11:36
|
а база sql or dbf?
|
|||
6
Z_Z
23.09.11
✎
11:37
|
например я захожу монопольно ,а кто-то не вышел и выдается сообщение "Ошибка блокировки данных.." и весит пока не нажмешь "ок"
|
|||
7
Z_Z
23.09.11
✎
11:38
|
sql
|
|||
8
Azverin
23.09.11
✎
11:40
|
(6) сорри, 7.7 же )))
тогда (3) или есть необходимость в рабочее время запускать? |
|||
9
Z_Z
23.09.11
✎
11:40
|
Вырубать пользователей это не вариант. Надо дождаться пока все выйдут и тогда нормально запускается монопольно.
|
|||
10
ЧеловекДуши
23.09.11
✎
11:41
|
(9)Зачем тебе именно монопольный доступ?
|
|||
11
Z_Z
23.09.11
✎
11:43
|
Именно монопольный не надо, мне надо, чтоб когда идет "Ошибка блокировки данных..."процесс не вис и батник закрывался.
|
|||
12
Troodon
23.09.11
✎
11:50
|
(11) так если монопольный не нужен и в базе никто монопольно не работает, то в (0) в конце убери /m
и будешь запускать 1С-ку в разделенном режиме |
|||
13
Z_Z
23.09.11
✎
11:52
|
Хорошо, я оберу ,а базе кто-то монопольно перепроводится. И та же ошибка будет!
|
|||
14
Z_Z
23.09.11
✎
11:52
|
Разве в батникельзя ничего придумать, если ошибка то завершить процесс???
|
|||
15
Troodon
23.09.11
✎
11:53
|
(13) на эту проверку у меня есть батник, только для дбф базы
могу выложить правда придется переписать один блок в нем, вместо запроса к файлу дбф = на запрос к sql таблице |
|||
16
Z_Z
23.09.11
✎
11:56
|
А может как-то в батнике можно убивать процесс опредеоенного пользователя? и тогда я при следующем запуске буду прибивать свой предыдущий зависший процесс.
|
|||
17
Troodon
23.09.11
✎
11:58
|
(16) свой процесс, если нет других запущенных 1с-кой на этом компе, то может тебе поможет taskkill
|
|||
18
Z_Z
23.09.11
✎
12:00
|
В том и дело что, есть!
|
|||
19
Z_Z
23.09.11
✎
12:07
|
Свой процесс тоже не годится прибывать. При штатной ситуации он может еще не завершится и тогда новый запуск его прибьет((
|
|||
20
FN
23.09.11
✎
12:09
|
(0) Абрам ворочается в постели и никак не может уснуть. Сара спрашивает:
- Что случилось, Абрам? Почему не спишь? - Я задолжал Мойше 50 рублей и не знаю, как вернуть ему долг . Сара открывает окно и кричит: - Мойша!!! С той стороны улицы Мойша: - Чего, Сара? - Абрам должен тебе 50 рублей, так он сказал, что он их не отдаст! Закрыла окно и говорит Абраму: - Ты спи, пускай теперь он не спит. к чему это я... пусть твой робот всегда в 1С висит (например в терминальной сессии), и если кому-нибудь нужно будет монопольно - пусть это будет его проблема. ЗЫ перепроводки документов отлично делаются ночью в разделенном режиме |
|||
21
Sk0rp
23.09.11
✎
12:18
|
(20) Они и днем неплохо делаются, только с паузами, что бы людям не сильно работать мешать.
|
|||
22
Z_Z
23.09.11
✎
12:19
|
(20)Мой робот второстепенный , но тоже нужен.А перед моим монопольно робот перепроводит доки. И когда тот еще на закончил свою работу. Мой врубается и подвисает(
|
|||
23
FN
23.09.11
✎
12:21
|
(22) Зачем 2 робота? зачем монопольно?
сделай одного робота + справочник "Задания" и пусть висит и колбасит когда надо и что надо. |
|||
24
Z_Z
23.09.11
✎
12:22
|
Ладно, буду раздвигать во времени. Все спасибо!!
|
|||
25
Sk0rp
23.09.11
✎
12:26
|
Если бы я уперся именно в необходимость проверки из bat файла возможности монопольного запуска 1С, я бы проверял наличие и пробовал удалить 1Cv7.LCK из папки базы. Если нету или удалось удалить - значит можно входить.
|
|||
26
Troodon
23.09.11
✎
12:26
|
(24) держи батник для дбф базы, может перепишешь для sql
//батник run.js Path1С = "D:\\1Cv77\\BIN\\1cv7s.exe"; PathBD = "D:\\1CBD\\Baza\\"; PathFileLck = PathBD + "\\1Cv7.LCK" PathExchange = "D:\\1CBD\\#shedule\\"; Name = "obmen"; Pass = "obmen"; CommandReindex = "" +Path1С+ " config /D" +PathBD+ " /N" +Name+ " /P" +Pass+ " /@" +PathExchange+ "reindex"; CommandExchange = "" +Path1С+ " enterprise /D" +PathBD+ " /N" +Name+ " /P" +Pass; StatusFile = "Exist"; FSO=WScript.CreateObject("Scripting.FileSystemObject"); ResLog=FSO.FileExists(PathExchange + "log.txt"); if (ResLog==0) { FileLog=FSO.CreateTextFile(PathExchange + "log.txt", true); } FileLog=FSO.OpenTextFile(PathExchange + "log.txt",8,true); d=new Date(); ss=DateToStr(d); ss+=" "+TimeToStr(d); FileLog.WriteLine("--------------------------------------------------"); FileLog.WriteLine(PathBD + ", time: " + ss); Res=FSO.FileExists(PathFileLck); if (Res==0) { StatusFile = "NotExist"; } if (StatusFile=="Exist") { //Пробуем удалить его. F=FSO.GetFile(PathFileLck); StatusFile = "NotExist"; try { F.Delete(); } catch (e) { if (e != 0) { StatusFile="Exist"; } } } ExistUser=0; if (StatusFile=="Exist") { ExistUser=1; FileLog.WriteLine(" - В базе находятся пользователи, проверим, в монопольном или разделенном режиме."); StatusFile = "NotExist"; } if (StatusFile=="NotExist") { WshShell=WScript.CreateObject("WScript.Shell"); SSource = "SELECT * FROM 1SUSERS"; SConnect="Driver={Microsoft dBase Driver (*.dbf)};DriverID=277;Dbq=" + PathBD; Connect=WScript.CreateObject("ADODB.Connection"); Monopolno=0; try { Connect.Open(SConnect); RS=Connect.Execute(SSource); Reindex=1; while (!RS.EOF) { s=RS.Fields("USRSCNT"); if (s==0) { Reindex=0; } RS.MoveNext(); } RS.Close(); } catch (e) { if (e != 0) { FileLog.WriteLine(" - База используется монопольно."); FileLog.WriteLine(" - !!!ОБМЕН НЕ ПРОШЕЛ."); Monopolno=1; } } if (Monopolno==0) { if (Reindex==1) { if (ExistUser==0) { FileLog.WriteLine(" - Программа была завершена аварийно, выполняем переиндексацию."); WshShell.Run(CommandReindex, 1, true); } } FileLog.WriteLine(" - Запускаем обмен."); WshShell.Run(CommandExchange, 1, true); } } FileLog.Close(); // Вспомогательные функции function LeadZero(ll,ss) { var i,s,l1; s=ss.toString(); l1=s.length; if (l1<=ll) { for (i=1;i<=ll-l1;i++) s="0"+s; } return(s); } function DateToStr(dd) { var s; s=LeadZero(2,dd.getDate())+"/"; s+=LeadZero(2,dd.getMonth()+1)+"/"; s+=dd.getYear(); return(s); } function TimeToStr(dd) { var s; s=LeadZero(2,dd.getHours())+":"+LeadZero(2,dd.getMinutes()); return(s); } |
|||
27
Z_Z
23.09.11
✎
12:34
|
(26) ничего себе батник, ну спасибо, буду изучать:))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |