подскажите скрипт запуска 1С в Windows Script Host #229225


#0 by MaxS
ничего пока в WSH не понимаю, помогите пожалуйста с примерчиком.Нужен скрипт запуска 1С 8.0 в режиме ("V8.Application")Чтобы потом сунуть этот скрипт в назначенные задания для запуска каждые 15 минут.
#1 by gea
Set WshShell = Nothingкажется так, в файле c:auto.txt содержатся настройки автозапуска
#2 by gea
Сорри, вместо /D надо /F если база в файле и /S<Адрес>, где<Адрес> = <имя компьютера, работающего сервером приложений><Ссылочное имя инф.базы, известное в рамках сервера 1с:Предприятия>А на самом деле параметров настроек запуска куча
#3 by Young
Вот здесь много чего найдёшь по WSH:http://www.script-coding.info/В "файлах для скачивания" есть справочный CHM-файл по WSH на русском с кучей примеров кода.
#4 by MaxS
это как? мне нужен файл (с каким расширением?) в котором нужно написать команду запуска 1С, которая должна запуститься без взаимодействия с рабочим столом. Спасибо, буду изучать, но дайте чтобы начать? ;)
#5 by Young
То, что написано в (1,2) нужно написать в текстовый файл с расширением VBS. После этого его можно запускать просто двойным щелчком. Можно запускать и из командной строки:cscript.exe c:foldermyfile.vbsЗапуск двойным щелчком равносилен командной строке:wscript.exe c:foldermyfile.vbsИнтерпретаторы wscript.exe и cscript.exe у тебя в системе скорее всего есть.
#6 by Mitrich
А зачем обязательно вызов скрипта пихать в назначенные задания для такой фигни, как запуск 1С в режиме командной строки?Вариант 1, самый простой - пихай в поле "Выполнить" твоего задания сразу строкуc:progra~11cv8in1cv8.exe ну и далее по текстуВариант 2 - делай .bat файл со строкой c:progra~11cv8in1cv8.exe (создаешь текстовый файл и сохраняешь с расширением .bat), потом запускаешь из планировщикаВариант 3 - делаешь текстовый файл, пихаешь туды код из , даешь ему расширение .vbs ну и опять планировщик...PS Хотя варианты 2 и 3 смахивают на извращение с твоими вводными
#7 by MaxS
нужно на сервере запускать. если никто не залогинен, то 1С-ка отработает?В коде 1С сделаны обработки, выдача сообщений в окно сообщений и в журнал 1С и потом автоматический выход.
#8 by MaxS
Вот ещё доп условия.допустим запуск каждые 15 минут, не запускать если предыдущий запуск ещё работает. Если работает более, например часа, то принудительно завершить.Возможно что-то ещё появится....Это все можно настроить в шедуллере, но вдруг сервер умрет и нужно будет сточно восстановить эту задачу на другом сервере, а настраивать параметры и условия будет некому, поэтому если бы все условия и проверки были бы в одном файле, то админам было бы проще.Я им отдаю файл и говорю запускай каждые 15 мин, остальное мои заботы.
#9 by XpyM
Получилось сделать то, что требовалось? Мне вот тут тоже нужно автозапуск регламентных процедур, причем с проверкой, что 1С уже запущен и т.п.
#10 by Николаев Олег
Вообще тема интересная. Я тоже реализовал запуск регламентых процедур, но по образу и подобию идеи системных служб Windows. И запуск реализовал не на WSH а средствами самой 1С-ины. Т.е. утречком запускается 1С-ка под каким-нть специальным пользоватлем и пошло-поехало... Есть справочник "Службы", в нем все хранится, как часто запускать и т.п. Перед выполненнеием задачи службы проверяется запущен ли системный пользователь, службы можно запускать, останавливать, отсылать им сообщения. Есть очередь сообщений для каждой службы которая есть в справочнике "Службы". И таким образом зависимость от настроек винды возникает только один раз - при запуске 1С-ины под системным пользователем. На 8-ке правда енто написано, хотя и на 7-ке тож можно.
#11 by VV
Я про 7-ку. И как ты обрабатываешь такую ситуацию: запустилось восстановление ГП, еще не закончилось, но началось уже другое задание под тем же пользователем, или, если 1-ый монопольно - то под любым. Как бороться с окном "Каталог пользователя занят"? Оно же со временем не убирается, собака, и процесс 1С висит.
#12 by Николаев Олег
Такую ситуацию стандартными средствами не обработать никак. Необходимо вводить понятие "диспетчер". Например, это можно реализовать с помощью файла: перед началом восстановления ГП в файл добавляется отметка о том, что информационная база открыта в монопольном режиме, и все запуски должны предварительно проверять информацию из этого файла, с помощью того же WSH например. Как только появляется отметка о закрытии монопольного режима - можно запускать.
#13 by VZ
Все можно проще...............Далее комбинируем....
#14 by Николаев Олег
"...еще не закончилось, но началось уже другое задание под тем же пользователем, или, если 1-ый монопольно - то под любым. Как бороться с окном "Каталог пользователя занят"? Оно же со временем не убирается, собака, и процесс 1С висит".
#15 by VZ
Про стеклянный ... - читал инструкцию по применению? Пункт первый: Думай.
#16 by Николаев Олег
LOL
#17 by Николаев Олег
ПриНачалеРаботыСистемы вызывется когда конфгурация УЖЕ загружается но после проверки занят/не занят каталог пользователя. И код который ты написал не сработает никогда, потому как будет висеть именно это волшедбное окно "Каталог пользователя занят".
#18 by Бертыш
Млин не тупи Очисти поле каталог в списке юзеров у заданного юзера
#19 by Николаев Олег
А насчет инструкции к "стеклянному", извини, таких предметов нетути... без надобности они мне. :-)
#20 by VZ
Спасибо за раскрытие глаз. Может, объяснишь, почему эта конструкция у меня долго работает?
#21 by Николаев Олег
А если база открыта в монопольном режиме?
#22 by Николаев Олег
:-) Потому что у тебя есть инструкция к "стеклянному".
#23 by Бертыш
Ну тогда проверяй файл 1Cv8.1CL
#24 by Бертыш
Файл проверяй на запущенность 1Са при монопольном запуске формируй промежуточнеый файл и держи его открытым (залоченым) до окончания работы
#25 by Бертыш
:visimif exist gnoFail.dat then del gnoFail.datif exist gnoFail.dat Goto visimА файл создавай при монопольном запуске или под нужным акаунтомну не знаю я скриптовbatНик вот он
#26 by Бертыш
Восьмёрка уже исполняет ert файлы? В Восьмёрке есть КаталогИБНи фига не понял :(
#27 by VZ
Не, этот пример, конечно же, "семерошный" ;) Но примерно также можно поступить и с "восьмерой". "Стартовая" обработка есть в типовых, немного модифицировать и усё...Но это, ИМХО, стремно. Все-таки есть у "восьмеры" для "регламентных" работ (т.е. без интерактивного вмешательства) отдельный режим соединения.
#28 by XpyM
Нет - не катит. А если сервер перезагружен? Кто будет за этим следить?А если нужно конфигу обновить? А в этот момент проводится обработка? Потом опять на сервер заходить и запускать?Мне именно нужно, чтобы например раз в час проверялось - крутится-ли процесс 1С, или нет. Если не крутится, то запустить его. Если нужно вый
#29 by XpyM
Если нужно выйти из 1С, то ставится флажок, и обработчик сам завершает работу системы.
#30 by XpyM
Это какой-такой отдельный режим соединения???
#31 by smaharbA
скока можна ?!Показывал нираз как запускать обработки без изменений конфы ваапче...и Окно авторизации никому не мешает, совершенно, и для запуска остальных...
#32 by XpyM
Причем здесь это? Мне не нужно запустить одну обработку при запуске и закончить работу.Мне нужно, чтобы после запуска 1С выполняла по расписанию некоторые действия.
#33 by smaharbA
а что действия прописать в обработке сложна ?Кстати для 7.7 можна запустить подряд скока хошь действий/обработок, тока дейтвия не могут быть процедурами, но могут быть функциями/методами...(Без изменения конфы)(Зря неслушаешь меня, может и не ясно выражаюсь, но не дриндю)
#34 by smaharbA
а уж проверять наличие 1С процесса тышу и не один раз бывало...
#35 by XpyM
Иде??? Да и потом, а если у меня две разные базы?Все магические варианты с файлами не проходят.Потому, как 1С может упасть, а кто потом будет разбираться с тем, что файл остался в папке?
#36 by XpyM
мне не нужна 7.7 - мне нужна 8.0Думаю припахать ADO.NET - и то проще будет. :DПо-поводу действий. Еще раз повторяю что мне нужно: При запуске 1С запускаются 5-10 регламентных процедур с разными интервалами и разными действиями. Запускать под каждую из них отдельный 1С - слишком жирно. Поэтому запускается один 1С и там устанавливаются обработчики ожидания.
#37 by smaharbA
Зря ты меня не слушаешь... Уж в этом то, я неодну собаку съел...И ненада никаких АДО.НЕТ у тебя все есть подруками, особенно в восьмерке...
#38 by smaharbA
Короче -- Вы не знаете кто такой Паниковский ?- Нет, Вы не знаете кто такой Паниковский.!- Дак поезжайте в Киев и спросите...- Нет, Вы поезжайте и спросите...!(с)
#39 by XpyM
Ok. Пойдем еще раз - как ты предлагаешь решать мою задачу?
#40 by smaharbA
Ищущий да обрящет...(с)
#41 by Шухер
У Паниковского это звучало так: "пилите Шура, пилите" :)
#42 by XpyM
Мда... Блин, а по существу есть что сказать?
#43 by smaharbA
Тебе проста нада знать есть 1С или нет, или именно в конкерентной базе ?Для определения в конкерентной базе можна просто запустить по ОЛЕ и позырить есть кто или нет (в восьмерке есть средства вроде)А процесс - методов до и болееselect * Win32_process where name='1cv8.exe' - ну или как он там в восьмерке зовется...
#44 by XpyM
Угу... Через OLE из скрипта... Подключится к уже работающей проге. Что-то не представляю я себе, как это сделать.
#45 by smaharbA
Лениво мне втельмяшивать пока, может кто другой возьмется. можешь поинтересоваться у народа коль не веришь в правдивость моих слов...
#46 by XpyM
Мдя... Очень сомневаюсь я, что ты реализовывал что-то подобное в реальности.
#47 by smaharbA
Еще оди Фома-неверующий...А зря ты так думаешь......Могу сказать как определить ОЛЕ-неОЛЕ, без изменений конфы, для 7.7 и 8.0...Способ определять ПроцессИД из самой 1С тоже придуман Вашим покорным слугой...Соединить 7.7/8.0 с опенофисом никто иноя как Ваш покорный слуга......и многа еще чего...(ладно - "и тут Остапа понесло..." (с) :) )
#48 by smaharbA
+ чтение-запись бинарников, строк неимоверного размера и т.д. и т.п....И заметьте, все без ВК...
#49 by smaharbA
+ запуск внешних обработок при старте без какихбыто нибыло изменений конфы (для 7.7) (причем можна из батника)да многа еще чего, да не - больше...
#50 by Бертыш
Зря ты тупишь про файлыЕсли 1С ка упала файл удалится успешно и всего делов тоНо если тебе хочется людей подурачить дурачь
#51 by XpyM
Не надо предлагать того, что не нужно. Я же тебе не пишу того, что я делал и того, что я могу.Что, из того, что ты назвал мне пригодится для _МОЕЙ_ задачи? Чем мне поможет определение идентификатора процесса или запуск обработок не из конфы?Ты мне просто скажи, как определить, что 1С уже запущена для этой базы на этом компе. Есть решение менее кривое, кроме как блокировка файла? Я не говорю, что он не удалится, а говорю, что это не совсем прямо. И думал, что , который столько всего придумал для 1С нашел что-то свое.Тем более, что для случая десятка баз нужно придумывать где эти файлы хранить, а главное удалять при падении 1С - иначе они будут плодиться.
#52 by XpyM
Усе... Буду использовать COM. Через интерфейс IBConnections можно получить список пользователей системы, в том числе и через скрипт.
#53 by smaharbA
wmic /node:comp process where "name LIKE '1cv8%'" get commandline...А вот что я делал, дак врядли вы повторите...(еще посамохвалюсь)
#54 by smaharbA
"Чем мне поможет определение идентификатора процесса или запуск обработок не из конфы" какраз из конфы, минимум изменений и будешь знать кто где и чего запустил (базу)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С