Дождаться запуска 1С #769090


#0 by prostovityaz
Бобра всем! Я уже наверное сплю... Есть внешняя обработка. Конфёшку менять низя. В обработке, есть строка запуска 1С, что-то типа: Внимание вопрос: Как дождаться успешного запуска 1Сины, и потом продолжить выполнение кода? Вариант с таймером отпадает, т.к. время запуска всегда разное. Вариант загнять в цикл запись-чтение выгрузки ЖР на предмет события "Сеанс. Начало" гнустный. какие идеи есть?
#1 by zalexey
Ты не поверишь :) Параметры: Тип: Строка. Командная строка для запуска приложения либо имя файла, ассоциированного с некоторым приложением. <ТекущийКаталог> (необязательный) Тип: Строка. Задает текущий каталог запускаемого приложения. В режиме веб-клиента игнорируется. <ДождатьсяЗавершения> (необязательный) Тип: Булево. Истина - дожидаться завершения запущенного приложения перед продолжением работы.
#2 by prostovityaz
Мне не нужно дожидаться завершения 1С! В том то и дело!
#3 by Записьдампа
И что же такое "успешный запуск 1Сины"? Факт, что к тебе вернулось управление после ЗапуститьПриложение говорит о том, что процесс успешно был запущен.
#4 by prostovityaz
"что процесс успешно был запущен", наверное, Вы хотели написать "завершен"? в 3 параметре значение "Истина" отвечает за факт завершения запущеного прилоежения. А мне не нужно дожидаться, пока в этом экземпляре выполнится код, и вернет мне факт управления.
#5 by prostovityaz
успешный запуск = под пользователем, который указан в параметре "СтрокаЗапуска" был выполнен вход в 1С.
#6 by prostovityaz
грубо говоря, нужно НЕ запускать следующий экземляр приложения 1С, пока не откроется предыдущий...
#7 by Записьдампа
Еще раз и медленно. 1) Windows - многозадачная система. Линукс, впрочем, тоже. 2) ЗапуститьПриложение с третьим параметром равным Ложь стартует приложение и возвращает управление в следующую строчку сразу после запуска. Целевое приложение успешно запущено и выполняется параллельно. 3) ЗапуститьПриложение с третьим параметром равным Истина стартует приложение и возвращает управление в следующую строчку только после того целевое приложение завершится. Какого тебе надо?
#8 by Записьдампа
что такое "откроется"?
#9 by prostovityaz
намба 2. но след строка чтобы не выполнялась до тех пор, пока предыдущая строка, ЗапуститьПриложении, не откроется и не будет выполнен вход в 1С.
#10 by Записьдампа
Подбор пароля брутфорсом что-ли пишешь? =)
#11 by prostovityaz
гг, нет :)
#12 by prostovityaz
пароли у мну уже есть)))
#13 by Записьдампа
Нет такого события "откроется". Целевая 1С уже запущена и ковыряется внутри себя в установке параметров сеансов, перед началом системы и т.п. Если ты хочешь ловить момент "появления окошка", тебе придется сообщать об этом из целевой 1С каким-либо образом.
#14 by prostovityaz
ладно, спасибо! пошел спать. возможно завтра проянится что-либо. или у кого-то ещё появятся идеи.
#15 by zalexey
объясни лучше для чего это нужно, может другие варианты есть :)
#16 by pessok
#17 by pessok
просто можно использовать шелл много для чего
#18 by pessok
+ чета я плохо тему прочитал. у меня тут ожидает именно завершения работы pidа. Использовалось для многопоточного обновления баз
#19 by mistеr
>пока предыдущая строка, ЗапуститьПриложении, не откроется и не будет выполнен вход в 1С А какой момент считается "входом в 1С"?
#20 by prostovityaz
ЗапуститьПриложение(СтрокаЗапуска,,Ложь) под пользователем, который указан в параметре "СтрокаЗапуска" был выполнен вход в 1С. мне это необходимо, для: у пользователя ДО запуска не было определнных прав. Я ему их добавляю. запустилась 1С. вход под этим юзером выполнен. далее я эти права отбираю у этого юзера. иду дальше по другому пользователю, выполнить всё тоже самое что и с предыдущим.
#21 by vde69
используй COM соединение...
#22 by prostovityaz
#23 by patapum
Запускать 1с с ключом запуска внешней обработки. Внешней обработкой создавать файл. Для определения успешного запуска мониторить его наличие.
#24 by hhhh
какая цель этих странных манипуляций?
#25 by lEvGl
что надо сделать? если данные перекинуть то можно через ком подключаться как в , а если надо именно приложение запустить то можно опять же ком, только создавать application, строка, которая запускает КОМприложение не пустит указатель дальше, пока приложение не запуститься, если правильно помню
#26 by prostovityaz
нет более гуманного средства определения? спасибо, этот вариант есть у меня в списке как "оптимальный" запасной.
#27 by lEvGl
все как всегда зависит от цели, а так ваши действия пока выглядят странно, скорее всего приложение вообще запускать не надо
#28 by mistеr
С учетом дебилизма всей схемы вопрос гуманности отходит на десятый план.
#29 by prostovityaz
задача есть, я её выполняю. вопрос о дебилизме оставьте при себе :)
#30 by Записьдампа
Успехов вам в удалении гланд автогеном.
#31 by Cyberhawk
"Как дождаться успешного запуска 1Сины, и потом продолжить выполнение кода? " "какие идеи есть?" Идея номер 1: определиться, что будешь делать, если главное окно приложения 1С будет до бесконечности висеть с модальным диалогом
#32 by prostovityaz
мне пофиг что там после открытия 1С делается. пусть висит. вручную потом закрою.
#33 by Cyberhawk
А как тогда поймешь, что запуск успешен?
#34 by prostovityaz
вход под пользователем выполнился - мне этого достаточно. а то, что после входа выпадают модальные окна, мне пофиг.
#35 by hhhh
какой вообще смысл в этой фигне? права удалятся всё равно только в следующем сеансе. Зачем торопиться их удалять, проверять, запустилось или нет?
#36 by Aleksey
Не использовать стартер. А юзать нужный exe файл
#37 by prostovityaz
почему права удалятся только в след сеансе? обработку под полными правами открываю в одном сеансе. жму запустить, далее мне нужно их дать пользователю, которого я выбрал, запусить 1С, чтобы открылась обработка (права даю на открытие внешних обработок), затем убрать права этому пользователю и так дальше по остальным пользователем.
#38 by prostovityaz
я стартер не запускаю, а обращаюсь к файлу "1cv8.exe"
#39 by Aleksey
а если через start с ключем /wait?
#40 by Smallrat
Запускаешь 1С, через 30 секунд подключаешься по COM и смотришь список активных пользователей: ПолучитьСеансыИнформационнойБазы - если твой пользователь там, значит запустилось, если нет - ждем еще, если после n ожиданий не появился, значит фейл. ну до кучи можно проверить до запуска 1С что пользователь не залогинен.
#41 by Aleksey
start "" /wait "C:Program Files (x86)... путь к 1cv8.exe
#42 by Карупян
wait озночает ожидания завершения процесса
#43 by prostovityaz
ключ "wait" это "Запуск приложения с ожиданием его завершения." Мне это не нужно.
#44 by hhhh
права во время работы храняися в кеше. Если убираешь права, наверно перезапустить еще раз надо. А может и не надо.
#45 by prostovityaz
спасибо, попробую
#46 by Aleksey
#47 by prostovityaz
я думаю, вариантов достаточно, чтобы решить мою задачу. Всем спасибо за участие.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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